Lebenszyklus-Listener und -ereignisse einer Anwendung

Mit Lebenszykluslistenern und -ereignissen für Anwendungen, die jetzt in der Servlet-API definiert sind, können Sie interessierte Listener darüber informieren, wenn sich Servlet-Kontexte und Sitzungen ändern. Es können z. B. Benutzer benachrichtigt werden, wenn Attribute sich ändern oder Sitzungen und Servlet-Kontexte erstellt oder zerstört werden.

Die Lebenszykluslistener geben dem Anwendungsentwickler bessere Steuerungsmöglichkeiten für Interaktionen mit ServletContext- und HttpSession-Objekten. Servlet-Kontext-Listener verwalten Ressourcen auf Anwendungsebene. Sitzungslistener verwalten Ressourcen, die einer Serie von Anforderungen von einem einzelnen Client zugeordnet sind. Listener sind für Lebenszyklusereignisse und für Attributänderungsereignisse verfügbar. Der Entwickler des Listeners erstellt eine Klasse, die die javax-Listener-Schnittstelle implementiert, die der gewünschten Listener-Funktionalität entspricht.

Beim Anwendungsstart erstellt der Container durch Introspektion eine Instanz Ihrer Listener-Klasse und registriert sie beim entsprechenden Event-Generator.

Beim Erstellen eines Servlet-Kontextes wird die Methode contextInitialized der Listener-Klasse aufgerufen, falls dieser Kontext für Ihre Anwendung bestimmt ist. Diese Methode stellt die Datenbankverbindungen für die zu verwendenden Servlets aus der Anwendung her. Alle Servlet-Kontext-Listener werden über die Kontextinitialisierung informiert, bevor ein Servlet in der Webanwendung initialisiert wird.

Wenn der Servlet-Kontext gelöscht wird, wird die Methode contextDestroyed aufgerufen, falls der Kontext für die Anwendung bestimmt ist. Diese Methode gibt die Datenbankverbindung frei. Sie müssen alle Servlets löschen, bevor die Servlet-Kontext-Listener über den gelöschten Kontext informiert werden.

Benachrichtigungen der Sitzungslistener haben Vorrang vor Benachrichtigungen der Kontext-Listener.

Listener-Klassen für Servlet-Kontext und Sitzungsänderung

Die folgenden Methoden sind in der Schnittstelle "javax.servlet.ServletContextListener" definiert:
  • void contextInitialized(ServletContextEvent)

    Benachrichtigung, dass die Webanwendung bereit ist, Anforderungen zu verarbeiten. Setzen Sie Code in diese Methode, um zu prüfen, ob der erstellte Kontext für Ihre Webanwendung vorgesehen ist. Falls ja, ordnen Sie eine Datenbankverbindung zu, und speichern Sie die Verbindung im Servlet-Kontext.

  • void contextDestroyed(ServletContextEvent)

    Benachrichtigung, dass der Servlet-Kontext heruntergefahren wird. Setzen Sie Code in diese Methode, um zu prüfen, ob der erstellte Kontext für Ihre Webanwendung vorgesehen ist. Falls ja, schließen Sie die im Servlet-Kontext gespeicherte Datenbankverbindung.

Die folgenden Methoden sind in der Schnittstelle javax.servlet.ServletRequestListener definiert:
  • public void requestInitialized(ServletRequestEvent re)
    • Benachrichtigung, dass die Anforderung in den Geltungsbereich eintritt.

      Eine Anforderung tritt in den Geltungsbereich ein, wenn der erste Filter in der Filterkette damit beginnt, die Anforderung zu verarbeiten.

  • public void requestDestroyed(ServletRequestEvent re)
    • Benachrichtigung, dass die Anforderung den Geltungsbereich verlässt.

      Eine Anforderung verlässt den Geltungsbereich, wenn sie den letzten Filter in der Filterkette verlässt.

Die folgenden Listener-Schnittstellen sind im Paket "javax.servlet" definiert:

  • ServletContextListener
  • ServletContextAttributeListener

Die folgende Filterschnittstelle ist im Paket "javax.servlet" definiert:

  • Schnittstelle "FilterChain" - Methoden: doFilter()

Die folgenden Ereignisklassen sind im Paket "javax.servlet" definiert:

  • ServletContextEvent
  • ServletContextAttributeEvent

Die folgenden Schnittstellen sind als Teil des Pakets "javax.servlet" definiert:

  • HttpSessionListener
  • HttpSessionAttributeListener
  • HttpSessionActivationListener

Eine folgenden Ereignisklassen sind im Paket javax.servlet.http definiert:

  • HttpSessionEvent

Beispiel: Mit com.ibm.websphere.DBConnectionListener.java einen Listener für Servlet-Kontexte erstellen

Das folgende Beispiel veranschaulicht die Erstellung eines Listener für Servlet-Kontexte:

package com.ibm.websphere;

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

public class DBConnectionListener implements ServletContextListener 
{
     // implement the required context init method
    void contextInitialized(ServletContextEvent sce)
    {
    }

     // Erforderliche Löschmethode für Kontext implementieren
    void contextDestroyed(ServletContextEvent sce)
    {
    }
}

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cweb_sctxl
Dateiname:cweb_sctxl.html