Escuchas y sucesos del ciclo de vida de las aplicaciones

Con las escuchas y sucesos del ciclo de vida de las aplicaciones, que ahora forman parte de la API de servlets, puede notificar a las escuchas interesadas cuando se modifican los contextos de servlets y sesiones. Por ejemplo, puede notificar a los usuarios cuando cambien los atributos, y si se crean o destruyen contextos de servlets o sesiones.

Las escuchas de ciclo de vida ofrecen a los desarrolladores de aplicaciones un mayor control sobre las interacciones con los objetos ServletContext y HttpSession. Las escuchas de contexto de servlets gestionan los recursos en el nivel de aplicación. Las escuchas de sesión gestionan los recursos que están asociados a una serie de solicitudes de un solo cliente. Las escuchas están disponibles para sucesos de ciclo de vida y para sucesos de modificación de atributos. El desarrollador de escuchas crea una clase que implementa la interfaz de escucha javax, correspondiente a la función deseada para la escucha.

En el momento del inicio de la aplicación, el contenedor utiliza la introspección para crear una instancia de la clase de escucha y la registra con el generador de sucesos adecuado.

Cuando se crea un servlet de contexto, se invoca al método contextInitialized de la clase de escucha que crea la conexión de base de datos para utilizar los servlets en la aplicación, si este contexto es para la aplicación. La inicialización del contexto se notifica a todas las escuchas de contexto de servlets antes de inicializar ningún servlet en la aplicación web.

Cuando se destruye el contexto de servlet, se invoca al método contextDestroyed, que libera la conexión de base de datos, si este contexto es para la aplicación. Debe destruir todos los servlets antes de notificar de la destrucción del contexto a ninguna escucha de contexto de servlets.

Las notificaciones a los escuchas de sesión precederán a las notificaciones a los escuchas de contexto.

Clases de escucha para el contexto del servlet y los cambios de sesión

Los métodos siguientes se definen como parte de la interfaz javax.servlet.ServletContextListener:
  • void contextInitialized(ServletContextEvent)

    Notificación de que la aplicación está preparada para procesar solicitudes. Incluya código en este método para comprobar si el contexto creado es para la aplicación web y si es así, asigne una conexión de base de datos y almacene la conexión de contexto de servlet.

  • void contextDestroyed(ServletContextEvent)

    Notificación de que el contexto de servlet se va a cerrar. Incluya código en este método para comprobar si el contexto creado es para la aplicación web y si es así, cierre la conexión de base de datos almacenada en el contexto de servlet.

Los métodos siguientes se definen como parte de la interfaz javax.servlet.ServletRequestListener:
  • public void requestInitialized(ServletRequestEvent re)
    • Notificación de que la solicitud está a punto de entrar en el ámbito.

      Se define como una solicitud que está a punto de entrar en el ámbito, cuando está a punto de entrar el primer filtro de la cadena de filtro que procesa la solicitud.

  • public void requestDestroyed(ServletRequestEvent re)
    • Notificación de que la solicitud está a punto de salir del ámbito.

      Se define como una solicitud que está a punto de salir del ámbito, cuando sale el último filtro de su cadena de filtro.

Como parte del paquete javax.servlet se definen las interfaces de escucha siguientes:

  • ServletContextListener
  • ServletContextAttributeListener

Como parte del paquete javax.servlet.http se define la interfaz de filtros siguiente:

  • Interfaz FilterChain - métodos: doFilter()

Como parte del paquete javax.servlet se definen las clases de sucesos siguientes:

  • ServletContextEvent
  • ServletContextAttributeEvent

Como parte del paquete javax.servlet.http se definen las interfaces siguientes:

  • HttpSessionListener
  • HttpSessionAttributeListener
  • HttpSessionActivationListener

Como parte del paquete javax.servlet.http se define la clase de suceso siguiente:

  • HttpSessionEvent

Ejemplo: Creación de un escucha de contexto de servlet con com.ibm.websphere.DBConnectionListener.java

En el siguiente ejemplo se muestra cómo crear una escucha de contexto de servlet:

package com.ibm.websphere;

import java.io.*;
import javax.servlet.*;

public class DBConnectionListener implements ServletContextListener 
{
     // implementar el método context init requerido
    void contextInitialized(ServletContextEvent sce)
    {
    }

     // implementar el método context destroy requerido
    void contextDestroyed(ServletContextEvent sce)
    {
    }
}

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cweb_sctxl
File name: cweb_sctxl.html