jueves, 17 de mayo de 2012

Login en JSF Y Mysql

Bien luego de una primera vista a esta tecnologia haremos un ejemplo con una base de datos en Mysql Usando JDBC Directo sin usar ningun ORM.

No entrare en detalle como funciona JDBC en java ya que eso esta en post anteriores los cuales se trabajaba con JSP y que es lo mismo solo que aca lo trabajaremos desde una clase java y no desde un JSP que mesclaba diseño y operaciones en fin un desorden.

Seguiremos con el Ejemplo Anterior solo que le haremos unos pequeños agregados como el driver de Mysql hay agregarlo a nuestras librerias y crear una clase conexion.

Esta clase sera la encargada de conectarnos al servidor de base de datos es la que tendremos que instanciar en nuestro Bean.

Lo primero que haremos es validar los dos InputText del Login anterior la validacion en JSF es mas accesible ya que lo trae nativo el lenguaje podemos usar validadores comunes como que sea requerido y que muestre un conjunto de mensajes o advertencias tambien trae los que son los Converter que son muy utiles para convertir datos que son enviados desde la vista.Pero eso lo tienen que leer esta en el manual de la entrada anterior.

 En nuestro caso solo es necesario que no vallan vacios los campos y muestre las advertencias respectivas con la propiedad required igual a true y el mensaje a mostrar en pantalla que es el requiredMessage.
Ya cuando tenemos validado nuestra vista tenemos que agregar una propiedad privada tipo String a nuestro bean con el nombre tipoUsuario con sus respectivos get y set que sera le encargada de almacenar el tipo de usuario registrado.

Luego agregamos una nueva regla de navegacion en nuestro facesConfig el cual tendra la pagina primaria sera Principal y la pagina resultante sera Index cuando nuestro metodo devuelva cerrar.
Luego en nuestra pagina Principal agregaremos las siguientes lineas las cuales es la informacion del usuario y el boton de cerrar sesion que debera de borrar el objeto en sesion creado.
Si vemos es el mismo LoginBean utilizado en en el login solo que desde otra vista lo que hara aca es luego de que pase correctamente por el login el objeto se guarda en sesion y se podra acceder en cualquier vista y mostrara la informacion que se recogio en el login.

Ahora creamos los metodos que nos hacen falta uno el login que va hacia la base de datos y el otro de cerrar la sesion de usuario.

Ya teniamos un metodo login solo creamos uno privado el cual se conectara a la base de datos y ejecutara la consulta(la consulta no la explicare)si encontro el usuario lo recorrera y llenara el tipo de usuario sino retornara false.
El metodo cerrar sesion usaremos el contexto de java server faces deben investigar para que se usa y que es porque se usara bastante,lo unico que hago aca es obtener el contexto externo para tener acceso al objeto HttpSession y se realiza el casteo ya que el faces context regresa un tipo object.Luego solo hacemos un removed del objeto en sesion que tiene el nombre del bean declarado en el faces config.

Bien ya tenemos listo nuestro Login lo probamos logeandonos con las credenciales correctas y veremos esta pantalla.
La informacion del usuario si presionamos el boton de cerrar sesion destruira el objeto en sesion y nos llevara al login.Eso es todo aca quedan el proyecto esta en Netbeans.

Descargar Achivo.

Mas adelante veremos  hibernate a nivel practico y luego los integraremos a JSF.Espero que sea de mucho conocimiento.

comenten no sean bayuncos.

7 comentarios:

  1. Muy buen tutorial, sencillo y muy bien explicado (para los que estamos familiarizados con el lenguaje claro).. ¡¡¡¡No sabes de la que me salvaste hermano!!!! Mañana tengo una defensa de proyecto y no había podido hacer el modulo de Login (Me dediqué primero al resto del sistema). Mi proyecto es un sistema web de pedidos para Subway El Salvador, usando JSF + PrimeFaces + JPA y MySql. De nuevo gracias!! Algún día voy a ayudar a otros como lo haces vos,

    Saludos.

    ResponderEliminar
  2. que bueno que te sirvio para eso es este blog, y el post es muy reciente ya que esta semana me propuse a enseñar como hago yo estas cuestiones ahi hace falta integrarlo con algun ORM que creo que fue lo que realizaste.

    Me alegro que estemos usando estas tecnologias relativamente nuevas como Primefaces tambien tengo mucho que contar sobre esta implementacion de JSF muy buena.Al rato espero tener tiempo para postear sobre eso.Pronto vere ese sistema me gusta ir a Subway jeeee

    ResponderEliminar
  3. Sr. Bayunco:

    Excelente tu aporte, no me hubiera quedado pelon si lo hubiera encontrado antes.
    Saludos!!!

    ResponderEliminar
  4. Muchisimas gracias compañero!! Justo lo que necesitaba!! +100

    ResponderEliminar
  5. Hola es muy importante hacer esta ayuda significa mucho para nosotros gracias ojalá puedas seguir con este tema.

    ResponderEliminar