| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

3.4 Webコンテナのライフサイクルイベント

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

リクエスト、セッション、Webアプリケーションに対するWebコンテナのライフサイクルイベント:各スコープのライフサイクルに対しリスナークラスを作成、設定する。スコープ属性リスナークラスを作成、設定する。ある状況において、適した属性リスナーを識別する

ServletContext

0094 servletcontext listener.jpg

種別 クラス名 備考
Listener ServletContextListener コンテキストの初期化、破棄時に呼ばれる
Listener ServletContextAttributeListener ServeltContextコンテナに対して、属性の追加や削除、変更が行われた場合に呼ばれる
Event ServletContextEvent ServeltContextを取得できる
Event ServeltContextAttributeEvent ServeltContext、属性のキー、値を取得できる

上記インターフェースを実装したクラスを作成し、配備記述子に以下のように登録する。

<listener>
  <listener-class>listener.ScwcdContextListener</listener-class>
</listener>

HttpSession

0095 session listener.jpg

種別 クラス名 備考
Listener HttpSessionListener セッションの生成、破棄時に呼ばれる
Listener HttpSessionActivationListener 分散環境にて、JVM間をセッションが移動する際に、セッションが活動状態、不活動状態になったときに呼ばれる
Event HttpSessionEvent セッションを取得できる
Listener HttpSessionAttributeListener HttpSessionコンテナに対して、属性の追加や削除、変更が行われた場合に呼ばれる
Listener HttpSessionBindingListener HttpSessionコンテナに追加するオブジェクトが実装し、属性の追加や削除、変更が行われた場合にそのオブジェクトに通知される。
Event HttpSessionBindingEvent HttpSession、属性のキー、値を取得できる

上記インターフェースを実装したクラスを作成し、配備記述子に以下のように登録する。 HttpSessionBindingListenerは、配備記述子ではなく、コンテナにセットするクラスに実装する。

<listener>
  <listener-class>listener.ScwcdHttpSessionListener</listener-class>
</listener>
<listener>
  <listener-class>listener.ScwcdHttpSessionAttributeListener</listener-class>
</listener>

ServletRequest

0093 request listener.jpg

種別 クラス名 備考
Listener ServletRequestListener リクエストの初期化、破棄時に呼ばれる
Event ServletRequestEvent ServletContext、ServletRequestを取得可能
Listener ServletRequestAttributeListener ServletRequestコンテナに対して、属性の追加や削除、変更が行われた場合に呼ばれる
Event ServletRequestAttributeEvent ServletContext、ServletRequest、属性のキー、値を取得可能

上記インターフェースを実装したクラスを作成し、配備記述子に以下のように登録する。

<listener>
  <listener-class>listener.ScwcdServletRequestListener</listener-class>
</listener>
<listener>
  <listener-class>listener.ScwcdServletRequestAttributeListener</listener-class>
</listener>

SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)