目次へ

8. リスナー2

8.1. セッションの生成/削除を検知する

「javax.servlet.http.HttpSessionListener」はセッションの生成/削除を検知するリスナーです。定義されているメソッドは以下の2つで、それぞれセッションが生成されたとき、削除されたときに呼ばれます。

// セッションが生成されたとき呼ばれるメソッド
void sessionCreated(javax.servlet.http.HttpSessionEvent event)
  
// セッションが削除されたとき呼ばれるメソッド
void sessionDestroyed(javax.servlet.http.HttpSessionEvent event)

HttpSessionEventは生成/削除されたセッションを管理するイベントオブジェクトで、「getSession」メソッドでそのセッションを返します。HttpSessionListenerはセッションにおいて必ず必要なオブジェクトを、予め登録しておくのに利用する事ができます。以下はその例です。

import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSession;
  
public class SessionInitializationListener implements HttpSessionListener{
  public void sessionCreated(HttpSessionEvent event){
    HttpSession session=event.getSession();
    session.setAttribute(...); // 必要なオブジェクトを登録
  }
  
  public void sessionDestroyed(HttpSessionEvent event){
  }
}

HttpSessionListenerも他と同じく、動作させるためには設定が必要です。その方法はServletContextListenerと同じく、web.xmlで<listener>タグを用いて行います。

(実習課題1)

以下のWebアプリケーションを作成しなさい。

  • セッションを利用して、現在、Webアプリケーションを利用しているクライアントの数をカウントすること。
  • またクライアント数を表示するページを作成する事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp