Programmgesteuerte Konfiguration der Listener, Filter und Servlets

Dieser Abschnitt enthält Informationen zu den Konfigurationsmethoden "addListener", "addFilter" und "addServlet", die in der Servlet-3.0-Spezifikation bereitgestellt werden. Sie können diese Methoden, die Teil der Schnittstelle "ServletContext" sind, über den "ServletContainerInitializer" oder den "ServletContextListener" aufrufen.

Die Konfigurationsmethoden "addListener", "addFilter" und "addServlet" werden nachfolgend detailliert beschrieben. Die programmgesteuerte Konfiguration von Servlets, Filtern oder Listenern durch den "ServletContextListener" ist unzulässig, wenn dieser nicht in der Datei web.xml oder in der Datei web-fragment.xml file deklariert bzw. mit @WebListener annotiert wurde. Daher wird bei jedem Versuch, mit "ServletContext" eine solche programmgesteuerte Konfiguration durchzuführen, eine Ausnahme des Typs "UnsupportedOperationException" zurückgegeben.

addListener

Die Methode "addGlobalListener" wird seit WebSphere Application Server Version 9.0 nicht weiter unterstützt. Sie wurde durch die Methode "addListener" ersetzt.
  • Verwenden Sie die folgende Methode, um einen Listener zu diesem Servlet-Kontext hinzuzufügen:
    void addListener(java.lang.String className)
  • Verwenden Sie die folgende Methode, um einen Listener zu diesem Servlet-Kontext hinzuzufügen:
    <T extends java.util.EventListener> void addListener(T t)
  • Verwenden Sie die folgende Methode, um einen Listener zu diesem Servlet-Kontext hinzuzufügen:
    void addListener(java.lang.Class<? extends java.util.EventListener> listenerClass)
Die Listener-Klasse muss mindestens eine der folgenden Schnittstellen implementieren:
  • ServletContextAttributeListener
  • ServletRequestListener
  • ServletRequestAttributeListener
  • HttpSessionListener
  • HttpSessionAttributeListener
  • javax.servlet.http.HttpSessionIdListener
  • javax.servlet.ServletContextListener
    Anmerkung: Ein "javax.servlet.ServletContextListener" kann nur mit der Methode "onStartUp" eines "javax.servlet.ServletContainerInitializer" hinzugefügt werden.

addFilter

Die Methode "addMappingFilter" wird seit WebSphere Application Server Version 9.0 nicht weiter unterstützt. Sie wurde durch die Methode "addFilter" ersetzt. Diese Methode fügt den Filter mit dem angegebenen Namen, der angegebenen Beschreibung und dem angegebenen Klassennamen zum Kontext der Webanwendung hinzu. Der registrierte Filter kann mit dem zurückgegebenen "FilterRegistration"-Objekt weiter konfiguriert werden.
  • Verwenden Sie die folgende Methode, um einen Filter zu diesem Servlet-Kontext hinzuzufügen:
    addFilter(java.lang.String filterName, java.lang.Class<? extends Filter> filterClass)
  • Verwenden Sie die folgende Methode, um einen Filter zu diesem Servlet-Kontext hinzuzufügen:
    addFilter(java.lang.String filterName, Filter filter) 
  • Verwenden Sie die folgende Methode, um einen Filter zu diesem Servlet-Kontext hinzuzufügen:
    addFilter(java.lang.String filterName, java.lang.String className) 

addServlet

Die Methode addServlet fügt Methoden dynamisch zu einem servletContext hinzu. Diese Methoden fügen das Servlet mit den angegebenen Parametern zum Kontext der Webanwendung hinzu. Das registrierte Servlet kann mit dem zurückgegebenen ServletRegistration-Objekt weiter konfiguriert werden.

  • Verwenden Sie die folgende Methode, um ein Servlet zu diesem Servlet-Kontext hinzuzufügen:
    addServlet(java.lang.String servletName, java.lang.Class<? extends Servlet> servletClass)
  • Verwenden Sie die folgende Methode, um ein Servlet zu diesem Servlet-Kontext hinzuzufügen:
    addServlet(java.lang.String servletName, Servlet servlet)
  • Verwenden Sie die folgende Methode, um ein Servlet zu diesem Servlet-Kontext hinzuzufügen:
    addServlet(java.lang.String servletName, java.lang.String className)

ServletContainerInitializer

Wenn Sie eine JAR-Datei für eine gemeinsam genutzte Bibliothek konfigurieren und in der JAR-Datei ein ServletContainerInitializer ermittelt wird, wird der ServletContainerInitializer für jede Anwendung, der die gemeinsam genutzte Bibliothek zugeordnet ist, aufgerufen.

Veraltete Klassen in Servlet 3.0

Die folgenden Klassen com.ibm.websphere.servlet.context.IBMServletContext:
  • public void addDynamicServlet(String servletName, String servletClass, String mappingURI, Properties initParameters) throws ServletException, java.lang.SecurityException;
  • public void removeDynamicServlet(String servletName) throws java.lang.SecurityException
Es gibt keinen Ersatz für die Methode removeDynamicServlet, denn das Entfernen eines Servlets kann zeitliche Probleme verursachen, wenn zeitgleich eine Anforderung auf das betreffende Servlet zugegriffen hat. Die Methoden addServlet und createServlet ersetzen die Methode addDynamicServlet.

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_servlet30configmethods
Dateiname:cweb_servlet30configmethods.html