Vea el CODIGO FUENTE de LogonForm.java |
Código Fuente LogonAction.java
package com.osmosislatina.struts; import javax.servlet.http.*; import org.apache.struts.action.*; import java.sql.*; import javax.sql.*; import javax.naming.*; public class LogonAction extends Action {
|
Primeramente se define la librería ("package") a la cual pertenecerá la Clase
com.osmosislatina.struts
.Posteriormente se importan las librerías que serán utilizadas por la Clase , se hace uso de las conocidas Clases
HttpServletRequest
yHttpServletResponse
(javax.servlet.http.*
) presentes en todo Servlet así como las Clases de la librería Struts (org.apache.struts.action.*
), las respectivas Clases para interactuar con Bases de Datos (java.sql.*
yjavax.sql.*
) yjavax.naming.*
para localizar recursos JNDI.La Clase hereda ("inherit") de la Clase
Action
proporcionada por Struts, esto permite acceder al funcionamiento definido en esta Clase Base diseñada para uso con Struts.Así como el método
service()
es parte central de un Servlet, el método execute() forma parte central en Clases del tipo Action (Struts). Dicho método toma como parámetros de entrada:Un Objeto del tipo
ActionMapping
que permite el redireccionamiento hacia determinados puntos definidos en Struts.Un Objeto
ActionForm
que contiene el Java Bean utilizado para transportar datos en Struts.Un Objeto
HttpServletRequest
y otroHttpServletResponse
que representan las solicitudes de entrada y salida, de la misma manera que un Servlet.
El primer paso dentro del método
execute()
es extraer el Java Bean que reside dentro del ObjetoActionForm
, nótese que al momento de extraerlo se debe realizar un Casting explicito hacia la Clase del Java Bean, en este casoLogonForm
.Posteriormente se definen variables para representar los datos extraídos de la Base de Datos así como los elementos de conexión en sí para la Base.
Se inicia un bloque try/catch/finally donde se realiza una búsqueda en la Base de Datos por el usuario solicitado; aquí se puede notar que la conexión es extraída a través de una búsqueda JNDI y la búsqueda a través de un
PreparedStatement
tal y como se realizó en los ejemplos anteriores de Bases de Datos .Una vez obtenidos los resultados de la Base de Datos, se define una condicional para revisar los valores con aquellos proporcionados por el usuario.
En base al resultado de validación descrito anteriormente se utiliza el método
findForward
del Objetomapping
para redireccionarse la solicitud hacia el nombre :exito
orechazo
, dichos nombres representan aquellos definidos en la sección de forwards globales en el archivo de configuración para Struts : struts-config.xml.