Manejo de Sesiones con Struts en NetBeans 6.1

Retomando el blog luego de un pequeño receso, seguiremos viendo alguna formas simples de poder trabajar con sesiones, como vimos en un post anterior lo trabajamos de manera basica con servlets, ahora veremos como es que podemos trabajarlo utilizando Struts, no detallo la teoria sobre este framework dado que lo podemos encontrar en la web, pasaremos defrente a la parte práctica.

Bueno para eso ya sabemos que hacer, abrimos nuestro Netbeans y creamos un proyecto web al cual llamaremos LoginStruts, seleccionamos el server con el que trabajaremos (Apache Tomcat) y luego en la parte donde dice seleccionar framework, escogemos Struts 1.29 nos mostrara un detalle como este:

loginstruts_01

Para este pequeño articulo no tocaremos esta parte, solo lo dejaremos por defecto y finalizamos. Una vez realizado este proceso tendriamos la siguiente estructura creada.

loginstruts_02

Al abrir el archivo “index.jsp” nos damos cuenta que tenemos solo la siguiente linea: <jsp:forward page=”Welcome.do”/>, el cual indica que lo unico que haria es un redireccionamiento a la pagina “Welcome.do”, pero se preguntaran ¿de donde sale la pagina “Welcome.do”?, alli es donde entra a tallar el archivo de configuración “struts-config.xml”:

loginstruts_03

En el circulo de color rojo que muestro en la figura es lo que nos interesa. Alli podemos obervar la accion que se realiza al utilizar “Welcome.do“, el de redireccionar a la pagina “welcomeStruts.jsp”. Para que no haya confusion podemos borrar el forward que dentro de los tags “<global-forwards>”, dado que es suficiente con el action.

Ya sabemos como parte inicial para que sirve el action en el archivo de configuracion, ahora pasamos a  crear una pagina jsp a la que llamaremos “menu.jsp” la que nos servira como pagina de carga luego del logueo correcto.

Luego pasamos a crear nuestra primera clase (Bean), la que manejaria las variables de usuario y password, las cuales la  “seteariamos” utilizando etiquetas struts desde el archivo “welcomeStruts.jsp”. A esta clase la llamaremos “LoginForm.java” y la crearemos dentro del paquete que se creo por defecto o de lo contrario creamos nuestros propios paquetes y lo creamos alli, para este caso utilizare el paquete por defecto, quedando la clase de la siguiente manera.

loginstruts_042

Fijense en la parte superior que esta con el recuadro de color rojo, eso es muy importante dado de que esta manera haremos que los valores que se “seteen” desde la pagina principal “welcomeStruts.jsp” puedan ser utilizados desde nuestra clase que haria el action.

Bueno, ya creamos el bean que almacenaria la informacion inicial, ahora lo que tenemos que hacer es registrar este bean dentro del archivo de configuracion “struts-config.xml” y lo ubicamos dentro de los tags “<form-beans>”. Para eso podemos hacer manualmente o tambien dentro del archivo de configuracion hacemos click derecho y elegimos el menu struts y luego escogemos “Add ActionForm Bean” de la siguiente manera:

loginstruts_06

Y luego nos aparecera la siguiente ventana en la cual agregaremos el nombre del bean y la clase que lo contiene.

loginstruts_07

Una vez realizado este proceso ya tendriamos el bean registrado en el archivo de configuracion quedando de la siguiente forma:

<form-beans>
<form-bean name=”LoginForm” type=”com.myapp.struts.LoginForm”/>
</form-beans>

Ahora, nos toca crear la clase que haria la accion, para eso nos ubicamos en el proyecto y le damos click derecho; seleccionamos “Struts Action” de la siguiente forma:

loginstruts_05

Se nos abrira un ventana en la cual nos pedira que agreguemos el nombre de la clase que haria la accion, para este caso le pondremos “LoginAction.java” y en el Action Path le pondremos “/Login”. Este ultimo parametro lo utilizaremos para registrarlo en archivo de configuracion y tambien para utilizarlo en action del formulario de nuestra pagina principal.

loginstruts_08

Le damos click en siguiente y tendremos el siguiente cuadro

loginstruts_09

En donde pueden observar que en el “ActionForm Bean Name” esta seleccionado nuestro bean “LoginForm”, en la opcion “Input Resource” borramos el “/” y listo le damos click en finalizar; podemos ver que en el archivo de configuracion esta registrado nuestro “Struts Action” de la siguiente forma

loginstruts_12

Ahora lo que haremos seria agregar dos forward al action uno que indicaria que hacer cuando el login sera correcto y otro cuando es incorrecto. Para esto damos click derecho sobre el archivo de configuracion y vamos al menu “struts” -> “Add forward” al cual llenamos los campos segun la figura:

loginstruts_10

y lo mismo hacemos para cuando es incorrecto quedando el archivo de configuracion de la siguiente manera:

loginstruts_11

Ahora nos metemos en el archivo LoginAction.java y escribimos el siguiente codigo:

loginstruts_13

Como podran darse cuenta tengo dos variables, usuario y password, el cual sus valores lo obtego instanciando al bean “LoginForm” y asi poder validar.

Si el usuario y clave es correcto se realizaria el envio de la variable SUCESS o en caso contrario se enviaria FAILURE, para cualquiera de estos casos se sabria que hacer de acuerdo a lo indicado en el archivo de configuracion (con los forward).

Ahora para terminar, se tendria que ingresar esos valores al bean; recuerdan que teniamos una pagina llamada “welcomeStruts.jsp” aqui es donde enviaremos los datos modificando el codigo, borramos todo el contenido del body y agregamos lo siguiente:

loginstruts_141

hay que fijarse en la parte resaltada con los recuadros de color rojo, ya que es muy importante, vemos que en el action tenemos “/Login” que es lo que tenemos registrado en el archivo de configuracion. y los campos property del text y password deben ser los mismos que del bean. Ya dependera de uds. que poner en el archivo “menu.jsp” 😛

Bueno, hasta aqui llego con el manejo de sessiones con struts espero haberme explicado con esto, cualquier comentario o duda solo postearlo.

PD: Disculpen, los errores ortograficos son a proposito.

Manejo de Sesiones con Servlets en NetBeans 6.1

Regularmente cuando realizaba pequeños proyectos web y trabajaba con sesiones siempre todo lo manejaba en archivos JSP, pero esta vez decidi probar un servlet para el manejo de sesiones y mostrar lo facil que puede resultar. Lo que comunmente hacemos es trabajar con el famoso cuadro de logueo, en donde colocamos el usuario y el password para luego ser validado y crear la sesion. Bueno lo primero que tenemos hacer es crear el proyecto dentro de NetBeans (ya saben como aplicativo web) y luego escribir algo de código basico HTML dentro del archivo “index.jsp” creando el cuadro de logueo mas o menos quedando asi:

El diseño queda a disposicion de ustedes, ahora hay un sin fin de herramientas que permiten realizar este tipo de trabajo, esto es solo para uso didactico. obviamente esta tabla de logueo lo mantendremos dentro de un “form” dado que utilizaremos el metodo POST y en el action colocaremos el Servlet al cual llamaremos “GeneraSession”.

Una vez hecho esto, creamos el archivo “principal.jsp” el cual nos servira para mostrar el resultado luego de realizar el logueo.

Luego creamos nuestra clase que actuara como servlet. Hacemos click derecho sobre nuestro proyecto y elejimos New –> Servlet, le damos el nombre (GeneraSession.java) y se nos mostrara un cuadro en donde nos dice que este nombre del servlet sera añadido al archivo de configuración “web.xml” el cual servira para poder ubicarlo y luego le damos click en terminar

Una vez hecho esto solo quedaria agregar el codigo dentro del metodo “processRequest”, quedando algo como esto:

Podemos observar que estamos obteniendo los datos del formulario mediante el request para ser validado y asi poder generar la sesion, para luego enviarnos a la pagina principal. Ahora esto no quedaria alli; en la pagina “principal.jsp” que ha sido creada tendriamos que realizar tambien la validacion de la sesion, dado que como sabemos las sesiones tienen un tiempo de vida, si sobrepasa este tiempo la sesion automaticamente se destruye (a no ser que personalize el tiempo de vida), entonces en la pagina “principal.jsp” tendriamos algo como esto:

De esta forma validamos si la sesion persite, en caso contrario te enviaria a la pagina de inicio para volver ha realizar el logueo.

Como veran es una forma practica de trabajar con sesiones mediante un servlet; obviamente esto tendria que mejorarse, pero esto puede ser un punto de partida para muchos.