%@page contentType="text/html" session="true" %>
Un servicio como el planteado anterior mente requiere de una alta escalabilidad y de la entrega de contenidos eficiente a la gran mayoría de potenciales usuarios. Es por estos que encontramos una piedra de tope en la posibilidad de usar Applets o peor aun un programa cliente servidor. A raíz de lo anterior nos aventuramos a aprender nuevas técnicas en Java que estuvieran más acorde con la solución requerida para este problema. Decidimos utilizar Java Servlets y otras tecnologías asociadas (.jsps, javascript, HTML, etc.).
Los Servlet son clases java que generan contenido dinámico HTML y corren del lado del servidor, por lo que el usuario ni siquiera necesita tener JRE en su computador. Esta tecnología pertenece a Java 2 Enterprice Edition.
Por otro lado, para administrar la información de nuestros potenciales usuarios nos vimos en la obligación de usar un servidor de bases de dato “MySQL”.
Sistema basado en internet al cual el usuario accederá mediante un browser (Mozilla Firefox, Explorer u otro). El usuario hará petición http a nuestro servidor, el cual le mostrara el contenido correcto gracias al procesamiento de que gestionaran las paginas .HTML, .jsps y clases java. Estas ultimas tendrán la propiedad de obtener la información de la base datos.
Un esquema sencillo de cómo funciona la tecnología Java Servlets se muestra a continuación:
De la figura podemos identificar el “Web Client” o usuario, el cual nos envía un objeto llamado HTTP Request al intentar acceder a nuestra Web mediante su browser.
El Web Container es nuestro servidor el cual tiene la capacidad de ejecutar y administra nuestras clases java, servlets, html, etc. Para nuestro proyecto utilizamos Apache Tomcat pues es uno de los más comunes y de código abierto.
Es necesario hacer hincapié en que las JSPs son archivos que lucen mas como un Html común, pero tiene la capacidad de invocar clases, usar métodos e incluir código Java. Todo lo anterior debido a que en realidad son servlets que tienen el encabezado escondido y uno se limita a escribir dentro de sus métodos esenciales. Las JSPs son tratadas como servlets por el contenedor.
El contenedor Web (Tomcat) tiene la siguiente estructura de archivos para facilitar el trabajo del administrador Web. Este orden es bastante sencillo y jerárquico. Se detalla en la siguiente figura:
Hemos asumido el conocimiento de los archivos *.class (versiones compiladas de clases comunes java, Servlets y jsps), *.jar, *.jsp (anteriormente explicados), *.HTML, y *.png (simplemente fotos). Sin embargo en la jerarquía de carpetas mostrada anteriormente existe un archivo llamado web.xml, que en su función mas básica se encarga de direccional los llamados a bases de datos, clases java, entre otros.
Por defecto un Servlet se compone de los siguientes métodos (ilustrados en la figura)
Estos métodos son explicados a continuación:
init(): Inicialización. Se carga en memoria una instancia del Servlet. La instanciación se produce la primera vez que el Servlet es cargado en memoria por parte del servidor de aplicaciones. Como consecuencia de este evento se ejecuta el siguiente método:
public void init(ServletConfig config) throws ServletException
Petición o como fue nombrado anteriormente HTTP Request: el cliente realiza la petición al Servlet en función del método de invocación usado en HTML (doGet() o doPost()) se ejecutará uno de los siguientes:
public void
doGet(HttpServletRequest peticion, HttpServletResponse respuesta)
throws ServletException, IOException
public void
doPost(HttpServletRequest peticion, HttpServletResponse respuesta)
throws ServletException, IOException
El objeto 'petición' (HTTP Request) es enviado por la JVM del servidor de aplicaciones y representa (encapsula) información de la petición HTTP.
Luego de la petición, la respuesta del servidor mediante el Servlet se realiza en el método service() mediante el objeto HTTP Response. Esto se ejecutara d la siguiente forma:
public void
service(HttpServletRequest peticion, HttpServletResponse respuesta)
throws ServletException, IOException
Destrucción o destroy() del Servlet: la contra imagen de init(), el Servlet va a ser destruido (normalmente por la detención del servidor). No se invoca cuando se termina la petición, sino cuando se va a descargar el servlet de memoria:
public void destroy()
Una observación importante es que la primera vez que invocamos al Servlet se crea una instancia de la clase en un hilo (thread) de ejecución, se llama a init() e inmediatamente después al método doXXX() correspondiente. Las siguientes peticiones generan un hilo independiente, pero no una nueva instancia.
Por ultimo mostramos la siguiente figura para terminar de aclarar el funcionamiento y ciclo de vida de un clases java Servlet ( o jsp).
Copyright © 2008. GATEforward se reserva todos los derechos.