Está en la página 1de 5

Composicin y sus Funciones.

A diferencia de un JSP un Servlet es un componente escrito puramente en Java, en trminos Java esto equivale a una Clase y como cualquier otra Clase Java sta se encuentra compuesta por diversosmtodos|funciones.Los tres mtodos que debe implementar un Servlet son:

service (Obligatorio): Este mtodo es la parte medular de todo Servlet ya que dentro de l se incluyen las tareas principales de ejecucin. init (Opcional) : Es un mtodo ejecutado antes del mtodo service, su labor principal es adquirir/inicializar algn recurso que ser empleado por service, estos recursos tpicamente son conexiones hacia Bases de Datos. destroy (Opcional) : Ejecutado una vez que ha terminado el mtodo service, su labor es liberar los recursos utilizados/adquiridos en el proceso de ejecucin los cuales generalmente son aquellos reservados por init.

HttpServlet y el Mtodo service() Para generar un Servlet es necesario que la Clase en cuestin herede ("inherit") el comportamiento de la clase llamada HttpServlet, a travs de dicha Clase se tiene acceso a los mtodos antes mencionados. Tambin vale mencionar que es posible heredar ("inherit") de la clase GenericServlet , sin embargo, para efectos de este curso y generalmente todo proyecto en ambientes Web, se opta por emplear HttpServletya que es una clase ms completa e idnea para ambientes HTTP (el protocolo utilizado en Internet), inclusive si observa la documentacin de dichas Clases notar que HttpServlet desciende (hereda) precisamente de GenericServlet. Para utilizar herencias ("inheritance") en Java se utiliza el vocablo extends; si no esta familiarizado con conceptos de lenguajes orientados a Objetos, a travs de herencias es posible accesar el comportamiento de Clases base, esto es, para el caso de Servlets al heredar de la Clase BaseHttpServlet nuestra propia Clase tendr acceso a los mtodos definidos en ella. Asumiendo que desea crear un Servlet llamado Saludos.java, ste se declarara de la siguiente manera:

import javax.servlet.*; import javax.servlet.http.*;

public class Saludos extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { // Lgica de Ejecucin } }

El Mtodo service() En la declaracin se puede notar que el denominado mtodo service toma dos parmetros (Objetos): uno llamado request del tipo HttpServletRequest y otro por nombre response del tipo HttpServletResponse, ambos representan el objeto de entrada y salida del Servlet respectivamente. Lo anterior significa que dentro de estos Objetos reside la informacin con que ser atendida la solicitud as como la informacin que ser enviada de respuesta, por decirlo de otra manera, son estos dos objetos con los que juega todo Servlet, y por ende un JSP tambin. A continuacin se ilustra el Servlet llamado Saludos.java con la respectiva lgica en el mtodo service :

import javax.servlet.*; import javax.servlet.http.*; public class Saludos extends HttpServlet { public void service(HttpServletRequest request,

HttpServletResponse response) throws IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<BODY>"); out.println("Pagina Basica"); out.println("</BODY>"); out.println("</HTML>"); } }
La primer linea del mtodo service invoca el mtodo setContentType sobre el objeto response, en otras palabras, se esta indicando que la respuesta de este Servlet ser en formato HTML. Posteriormente se indica que el objeto llamado out se formar del mtodo getWriter del objeto response, en otros trminos, todo valor asignado a out ser enviado a la impresin del Servlet (llevada acabo por getWriter). Al ejecutarse el Servlet anterior se producira el mismo resultado del JSP presentado al inicio . Para observar los diversos mtodos/funciones disponibles en Servlets se recomienda observar su documentacin, la cual se encuentra disponible en : http://localhost:8080/tomcatdocs/servletapi/index.html Lo anterior ilustra el uso del objeto response, pero que sucede con request ? , este Objeto contiene informacin acerca de la requisicin del Servlet, por lo que a travs de ellos se uniformiza que entra y que sale de cada Servlet/JSP. Adems de los Objetos request y response disponibles en todo JSP y Servlet, existe otro tipo de Objeto accesible para estos mismos componentes que facilita mantener informacin a lo largo de

determinado tiempo, conocido en trminos computacionales como : sesin. Sesiones en Java El uso de sesiones cobra mayor importancia conforme empieza a crecer un diseo con JSP's y Servlets, mientras en los Objetos request y response puede ser colocada informacin para ser enviada entre un JSP y/o Servlet, una vez terminada dicha solicitud la informacin se pierde; para los casos en que es necesario emplear informacin comn entre un grupo de JSP's/Servlets esta es colocada en el Objeto session. Este mecanismo de sesiones es ideal para mantener informacin de visitas sobre determinado usuario, una vez reconocido el usuario se pueden mantener en la sesin datos de cualquier tipo tales como nombre, direccin o preferencias , esto sin la necesidad de estar constantemente realizando bsquedas en Bases de Datos y/o solicitando informacin va HTML.

Uso de Sesiones en JSP's/Servlets

Objeto application para Sesiones Multiples. El mecanismo de sesiones ofrece una solucin para mantener el estado individual de diferentes usuarios, sin embargo, hay ocasiones en las que existen elementos/objetos que son ideales para compartirse entre diferentes sesiones/usuarios, para esto existe el Objeto application el cual permite compartir recursos entre diferentes sesiones/usuarios, su uso en JSP's es el siguiente:

application.setAttribute("poolDeMysql",pool);
La descripcin anterior coloca el Objeto pool bajo el nombre poolDeMysql para que ste sea accesible de cualquier JSP/Servlet residente en la aplicacin; para accesar el Objeto application dentro de un Servlet se utiliza la siguiente sintaxis:

ServletContext application = getServletContext(); IConexionPool pool = (IConexionPool) application.getAttribute("poolDeMysql");


En realidad el Objeto application es una instancia de ServletContext(), por lo que para usar el

objetoapplication dentro de un Servlet es necesario realizarlo a travs de esta Clase; en un JSP el Objetoapplication se encuentra disponible explcitamente como una facilidad, tal y como fue descrito en la seccin de JSP's Como se puede observar del cdigo anterior el uso del Objeto application es utilizado para mantener un "Pool" de conexiones que es compartido por los diferentes JSP's/Servlets de una aplicacin. An faltara por responder: Cuales y cuantos JSP's/Servlets pertenecen a una aplicacin ? La respuesta es: Todos aquellos que se encuentren dentro del mismo WAR ("WebArchive"). Un WAR ("Web-Archive") es la manera en que son agrupados y distribuidos tanto JSP's como Servlets, sus detalles son descritos en la siguiente seccin.

También podría gustarte