Servlet
Un servlet es una clase de Java que se utiliza para extender
las capacidades de lo servidores que alojan aplicaciones accesibles a través de
un modelo de programación request-response.
Aunque los servlets pueden responder a cualquier tipo de solicitud, se
utilizan comúnmente para extender las aplicacioens alojadas en servidores web.
Los paquetes javax.servlet y javax.servlet.http proveen
interfaces y clases para escribir servlets. Todos los servlets deben
implementar la interface Servlet que define los métodos del ciclo de vida. Cuando
implementamos un servicio genérico, se puede utilizar o extender la clase
GenericServlet con la API Java Servlet. La clase HTTPServlet proporciona
métodos, tales como doGet y doPost, para el manejo de los servicios específicos
de HTTP.
Ciclo de
vida del Servlet
El ciclo de vida del servlet está controlado por el
contenedor en donde el servlet ha sido desplagado. Cuando una solicitud es
mapeada a un servlet, el contenedor realiza los siguientes pasos:
1. Si una instancia del servlet no existe, el
contenedor web
a.
Carga la clase servlet
b.
Crea una instancia del servlet
c.
Inicializa la instancia del servlet llamando al
método init.
2. Invoca al método service,
pasando objetos request y response.
Si el contenedor necesita remover el servlet, llama al
método destroy.
Manejando
eventos en el ciclo de vida del Servlet
Se puede monitorear y reaccionar ante los eventos en el ciclo
de vida del servlet, definiendo objetos
listener cuyos métodos sean invocados cuando el evento ocurra. Para usar estos
objetos listener, se debe definir y especificar la clase listener.
Definiendo
la clase Listener
Se define una clase listener como una implementación de una
interfaz listener. La siguiente tabla muestra los eventos que pueden ser
monitoreados y las correspondientes interfases que deben ser implementadas. Cuando un método listener es invocado, se le
pasa un evento que contiene información apropiada para el evento. Por ejemplo,
los métodos en la interfase HttpSessionListener son pasados a HttpSessionEvent,
que contiene a HttpSession.