You are on page 1of 9

Como hacer una sesin en JSF de manera simple:

Qu es jsf?
JavaServer Faces (JSF) es un framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnologa que permite hacer el despliegue de las pginas, pero tambin se puede acomodar a otras tecnologas como XUL. JSF incluye:

Un conjunto de APIs para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegacin de las pginas y dar soporte para internacionalizacin y accesibilidad. Un conjunto por defecto de componentes para la interfaz de usuario. Dos libreras de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una pgina JSP. Un modelo de eventos en el lado del servidor. Administracin de estados. Beans administrados.

La especificacin de JSF fue desarrollada por la Java Community Process como JSR 127, que defina JSF 1.0 y 1.1, y JSR 252 que defina JSF 1.2.

Qu es una sesion?
En informtica, en particular en redes informticas, una sesin es la duracin de una conexin empleando una capa de sesin de un protocolo de red, o la duracin de una conexin entre un usuario (el agente) y un servidor, generalmente involucrando el intercambio de mltiples paquetes de datos entre la computadora del usuario y el servidor. Una sesin es tpicamente implementada como una capa en un protocolo de red (por ejemplo, telnet y FTP). En los casos de los protocolos de transporte en donde no se implementa una capa de sesin formal (por ejempo, UDP), o en donde las sesiones en la capa de sesin son generalmente de una vida corta (por ejemplo, HTTP), las sesiones pueden ser mantenidas por un programa de ms alto nivel, usando algn mtodo. Por ejemplo, un intercambio HTTP entre un navegador y un servidor remoto, puede incluir una cookie, que permite mantener una "sesin", con su identificador propio, datos del usuario, sus preferencias, etc. El login es la opcin y accin (logging in) de iniciar una sesin, generalmente empleando un nombre de usuario y contrasea.

USO DE SESIONES
las sesiones se usan como modo de determinar quien esta dentro de tu Web, y esto porque el protocolo HTTP no te dice nada acerca de quien o quienes navegan por tu site. Con las sesiones puedes validar un usuario y gurdalas en variables que luego puedes ir pasndola por las paginas de tu Web, de esta forma sabrs si el usuario esta autorizado a realizar determinadas consultas o lo que quieras exponer como informacin. Normalmente estas variables se guardan en coockies, que fueron inventadas por Netscape para guardar informacin del estado de navegacin ( por las carencias obvias del http). Otra forma es pasarlo por los mtodos get o post en el URL (esto si el cliente no acepta coockies). Cabe recalcar que el asunto de las coockies tiene su riesgo porque pueden guardar informacin confidencial como tarjetas de crdito, datos personales, etc. y los hackers siempre buscan sacar informacin de las coockies para atacar un servidor y apropiarse de datos confidenciales.

Cmo hacerlo con JSF?


Al contrario de lo que mucha gente supone esto es mas sencillo que en muchos otros lenguajes, ya que solo consiste en preguntar por la existencia de un dato en el bean de entidad. Antes de ver el ejemplo se ponen las tags de jsf para poder trabajar. La tabla muestra las core tags de jsf, que es donde uno tendr que poner cualquier elemento del Framework, la descripcin est en ingles.

Se aaden las HTML tags, que son las que se utilizan dentro de un core tag, tambin su descripcin est en ingles, a pesar de ellos, su comprensin de sencilla.

Ahora que conocemos todas las etiquetas necesarias para trabajar en JSF, podemos trabajar. Veamos un ejemplo sencillo:

1- lo primero es tener algn formulario para login

Las etiquetas de inputText tienen un valor algo extrao, el cual es, #{UserBean.login} valor que hacer referencia a un atributo del bean de entidad llamado UserBean.

El commandButton lanza su accin a UserBean.ir en este caso los comandbutton hacen referencia a un String, dependiendo de esta se tomaran las reglas de navegacin, cosa que analizaremos un poco mas adelante. Ahora es el turno de revisar el UserBean , el cual es un managed bean con la nica diferencia es que en su scope dice session en vez de request. Este java class (managed bean) debe tener los atributos que se apuntan en el archivo JSP que lo llama, adems un mtodo con nombre ir que devuelva un String (si no se quiere ningn mtodo podra eventualmente ser un String)

Los mtodos de get y set de cada atributo se crean con la funcin refactor de NetBeans.

A continuacin se muestra un ejemplo de un mtodo ir

Solo tomar en cuenta que la variable klaex es finalmente un String que puede ser error o ir, con lo cual se definir la regla de navegacin.

Suponiendo que tenemos esto listo y queremos agregarle session al sitio, basta solo con agregar una lnea encima de un JSF core tag, la cual preguntara por un atributo del managed bean

La lnea de rendered es la que hace la sesin posible, ya que pregunta si el atributo rut tiene algn valor, en caso de tenerlo muestra el cdigo contenido dentro del form.

Debe agregarse una sentencia contraria el rendered anterior, o sea el caso en que rut este vaco, y colocar el cdigo que se desea desplegar, cabe sealar que todo debe ir en un mismo view y en el mismo body de la pagina.