リスナー、フィルター、およびサーブレットのプログラマチック構成

Servlet 3.0 仕様で導入された構成メソッド、addListener、addFilter、および addServlet について説明します。ServletContext インターフェースの一部であるこれらのメソッドは、ServletContainerInitializer または ServletContextListener から呼び出すことができます。

構成メソッド、addListener、addFilter、および addServlet について詳しく説明します。ServletContextListener が web.xml ファイルまたは web-fragment.xml ファイルで宣言されていない場合、または @WebListener のアノテーションが付いていなかった場合、ServletContextListener はサーブレット、フィルター、またはリスナーをプログラマチックに構成できません。そのため、そのようなプログラマチック構成を実行するために ServletContext を呼び出した場合、UnsupportedOperationException が発生します。

addListener

addGlobalListener メソッドは、WebSphere® Application Server バージョン 9.0 では推奨されていません。これは、addListener メソッドに置き換えられました。
  • リスナーをこのサーブレット・コンテキストに追加するには、次のメソッドを使用します。
    void addListener(java.lang.String className)
  • リスナーをこのサーブレット・コンテキストに追加するには、次のメソッドを使用します。
    <T extends java.util.EventListener> void addListener(T t)
  • リスナーをこのサーブレット・コンテキストに追加するには、次のメソッドを使用します。
    void addListener(java.lang.Class<? extends java.util.EventListener> listenerClass)
リスナー・クラスには、次のインターフェースの 1 つ以上を実装する必要があります。
  • ServletContextAttributeListener
  • ServletRequestListener
  • ServletRequestAttributeListener
  • HttpSessionListener
  • HttpSessionAttributeListener
  • javax.servlet.http.HttpSessionIdListener
  • javax.servlet.ServletContextListener
    注: javax.servlet.ServletContextListener の追加は、javax.servlet.ServletContainerInitializer の onStartUp メソッドからのみ実行できます。

addFilter

addMappingFilter メソッドは、WebSphere Application Server バージョン 9.0 では推奨されていません。これは、addFilter メソッドに置き換えられました。このメソッドは、所定の名前、説明、およびクラス名を持つフィルターを Web アプリケーション・コンテキストに追加します。登録済みのフィルターは、返された FilterRegistration オブジェクトを使用して追加構成することができます。
  • フィルターをこのサーブレット・コンテキストに追加するには、次のメソッドを使用します。
    addFilter(java.lang.String filterName, java.lang.Class<? extends Filter> filterClass)
  • フィルターをこのサーブレット・コンテキストに追加するには、次のメソッドを使用します。
    addFilter(java.lang.String filterName, Filter filter) 
  • フィルターをこのサーブレット・コンテキストに追加するには、次のメソッドを使用します。
    addFilter(java.lang.String filterName, java.lang.String className) 

addServlet

addServlet メソッドは、サーブレットを servletContext に動的に追加します。これらのメソッドは、特定のパラメーターを持つサーブレットを Web アプリケーション・コンテキストに追加します。登録済みのサーブレットは、返された ServletRegistration オブジェクトを使用して追加構成することができます。

  • サーブレットをこのサーブレット・コンテキストに追加するには、次のメソッドを使用します。
    addServlet(java.lang.String servletName, java.lang.Class<? extends Servlet> servletClass)
  • サーブレットをこのサーブレット・コンテキストに追加するには、次のメソッドを使用します。
    addServlet(java.lang.String servletName, Servlet servlet)
  • サーブレットをこのサーブレット・コンテキストに追加するには、次のメソッドを使用します。
    addServlet(java.lang.String servletName, java.lang.String className)

ServletContainerInitializer

共有ライブラリーの JAR ファイルを構成した場合に、JAR 内で ServletContainerInitializer が検出されると、ServletContainerInitializer は、共有ライブラリーが関連付けられているすべてのアプリケーションで呼び出されます。

Servlet 3.0 で推奨されないクラス

次のクラスは、com.ibm.websphere.servlet.context.IBMServletContext では推奨されません。
  • public void addDynamicServlet(String servletName, String servletClass, String mappingURI, Properties initParameters) は、ServletException の java.lang.SecurityException をスローします。
  • public void removeDynamicServlet(String servletName) は、java.lang.SecurityException をスローします。
removeDynamicServlet メソッドは置換されません。これは、サーブレットの削除時に、一方で要求がそのサーブレットを処理していると、タイミングの問題が発生する可能性があるためです。 addDynamicServlet メソッドは、addServlet メソッドと createServlet メソッドに置き換えられました。

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cweb_servlet30configmethods
ファイル名:cweb_servlet30configmethods.html