WebLogic Server Web アプリケーションの開発
![]() |
![]() |
![]() |
![]() |
以下の節では、アプリケーション イベントとイベント リスナ クラスについて説明します。
アプリケーション イベントとは、サーブレット コンテキストのステートの変更 (各 Web アプリケーションは独自のサーブレット コンテキストを使用する)、または HTTP セッション オブジェクトのステートの変更を通知するものです。これらのステートの変更に応答するイベント リスナ クラスを作成して、Web アプリケーションでそれらをコンフィグレーションおよびデプロイします。サーブレット コンテナはイベント リスナ クラスに何らかの処理を実行させるイベントを生成します。つまり、サーブレット コンテナはイベント リスナ クラスのメソッドを呼び出します。
サーブレット コンテキスト イベントの場合、イベント リスナ クラスは、Web アプリケーションがデプロイされるときやアンデプロイされるとき (または WebLogic Server が停止するとき)、および、属性が追加、削除、置換されるときに、通知を受け取ることができます。
HTTP セッション イベントの場合、イベント リスナ クラスは、HTTP セッションがアクティブ化されるかパッシベーションされようとしているとき、および、HTTP セッション属性が追加、削除、置換されるときに、通知を受け取ることができます。
Web アプリケーション イベント リスナ クラスは次の目的で使用します。
次の表は、サーブレット コンテキスト イベントのタイプ、イベント リスナ クラスが個々のサーブレット コンテキスト イベントに応答するために実装すべきインタフェース、およびサーブレット コンテキスト イベントが発生したときに起動されるメソッドを示しています。
次の表は、イベント リスナ クラスが HTTP セッション イベントに応答するために実装すべき HTTP セッション イベントのタイプ、および HTTP セッション イベントが発生したときに起動されるメソッドを示しています。
注意 : サーブレット 2.3 仕様にも javax.servlet.http.HttpSessionBindingListener
インタフェースと javax.servlet.http.HttpSessionActivationListener
インタフェースが含まれています。これらのインタフェースは、セッション属性として格納されるオブジェクトによって実装され、web.xml
へのイベント リスナの登録を必要としません。詳細については、これらのインタフェースの Javadoc を参照してください。
イベント リスナ クラスをコンフィグレーションするには、次の手順に従います。
web.xml
デプロイメント記述子をテキスト エディタで開きます。web.xml
ファイルは、Web アプリケーションの WEB-INF
ディレクトリにあります。 <listener>
要素を使ってイベント宣言を追加します。イベント宣言は、イベントが発生するときに起動されるイベント リスナ クラスを定義します。<listener>
要素は、<filter>
要素と <filter-mapping>
要素のすぐ後ろで、<servlet>
要素のすぐ前に指定します。それぞれのイベント タイプに複数のイベント リスナ クラスを指定できます。WebLogic Server は、デプロイメント記述子に記述されている順にイベント リスナ クラスを起動します (停止イベントだけは、逆順で起動されます)。次に例を示します。
<listener>
<listener-class>myApp.MyContextListenerClass</listener-class>
</listener>
<listener>
<listener-class>myApp.MySessionAttributeListenerClass</listener-class>
</listener>
イベント リスナ クラスを作成するには、次の手順に従います。
次の便利なクラスは、イベント リスナ クラスのメソッドに渡されます。
次の例は、イベント リスナ クラスの基本的なテンプレートです。
package myApp;
import javax.servlet.http.*;
public final class MyContextListenerClass implements
ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
/* このメソッドは、サーブレット コンテキストが初期化されるとき
(Web アプリケーションがデプロイされるとき) に呼び出される。
この時点で、サーブレット コンテキストに関連するデータを初期化できる
*/
}
public void contextDestroyed(ServletContextEvent event) {
/* このメソッドは、サーブレット コンテキスト (Web アプリケーション) が
アンデプロイされるとき、または WebLogic Server が
停止するときに呼び出される
*/
}
}
package myApp;
import javax.servlet.*;
public final class MySessionAttributeListenerClass implements
HttpSessionAttributeListener {
public void attributeAdded(HttpSessionBindingEvent sbe) {
/* このメソッドは、属性がセッションに追加されるときに
呼び出される
*/
}
public void attributeRemoved(HttpSessionBindingEvent sbe) {
/* このメソッドは、属性がセッションから削除されるときに
呼び出される
*/
}
public void attributeReplaced(HttpSessionBindingEvent sbe) {
/* このメソッドは、属性がセッションで置き換えられるときに
呼び出される
*/
}
}
![]() ![]() |
![]() |
![]() |