8. リスナー2
サーブレット 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アプリケーションを利用しているクライアントの数をカウントすること。
- またクライアント数を表示するページを作成する事。