Servlet(サーブレット)リファレンス(逆引き)

Servlet(サーブレット)リファレンス
 
Web struts.wasureppoi.com
セッションスコープへのオブジェクトのバインド/アンバインドイベント処理:HttpSessionBindingListener
スポンサード リンク

セッションスコープへのオブジェクトのバインド/アンバインドイベント処理には、インタフェースHttpSessionBindingListenerを実装します

HttpSessionBindingListenerを実装したクラスを、セッションに格納する格納/削除するタイミングで、処理を実行することができます。

HttpSessionBindingListenerの実装したクラスは、web.xmlの<listner>タグの定義は不要です。

●セッションスコープへのオブジェクトバインドイベント
構文
javax.servlet.http.HttpSessionBindingListener
  public void valueBound( javax.servlet.http.HttpSessionBindingEvent イベント )
説明
valueBoundメソッドは、HttpSessionBindingListenerを実装したオブジェクトがセッションスコープへの格納されるタイミングで呼び出されます

●セッションスコープからのオブジェクトアンバインドイベント
構文
javax.servlet.http.HttpSessionBindingListener
  public void valueUnbound( javax.servlet.http.HttpSessionBindingEvent イベント )
説明
valueUnboundメソッドは、HttpSessionBindingListenerを実装したオブジェクトがセッションスコープから削除されるタイミングで呼び出されます

  
例1) セッションスコープへのオブジェクトのバインド/アンバインドイベント処理を定義する。

package smp;
import java.io.Serializable;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;

public class SampleBindData implements HttpSessionBindingListener, Serializable{

  private String firstName;
  private String lastName;

  public String getFirstName() { return firstName; }

  public void setFirstName(String firstName) { this.firstName = firstName; }

  public String getLastName() { return lastName; }

  public void setLastName(String lastName) { this.lastName = lastName; }

  public void valueBound(HttpSessionBindingEvent ev) {
    HttpSession session = ev.getSession();
    ServletContext sc = session.getServletContext();
    sc.log("バインド属性名:" + ev.getName() + " バインドした属性値" + ev.getValue());
  }

  public void valueUnbound(HttpSessionBindingEvent ev) {
    HttpSession session = ev.getSession();
    ServletContext sc = session.getServletContext();
    sc.log("バインド属性名:" + ev.getName() + " バインドした属性値" + ev.getValue());
  }

}


サーブレット

public class SampleServlet extends HttpServlet {

  public void doGet( HttpServletRequest request, HttpServletResponse response )
              throws ServletException,IOException {

    HttpSession session = request.getSession();

    SampleBindData data = new SampleBindData();
    data.setFirstName("Taro");
    data.setLastName("Yamamoto");
    session.setAttribute("obj", data);  ・・・・・  SampleBindDataのvalueBound()実行
    session.removeAttribute("obj");  ・・・・・  SampleBindDataのvalueUnbound()実行
  }
}



スポンサード リンク


WEBアプリケーション起動/終了イベント処理:ServletContextListener
アプリケーションスコープへの属性追加/変更/削除イベント処理:ServletContextAttributeListener
セッション生成/破棄イベント処理:HttpSessionListener
セッションスコープへの属性追加/変更/削除イベント処理:HttpSessionAttributeListener
セッションスコープへのオブジェクトのバインド/アンバインドイベント処理:HttpSessionBindingListener
リクエスト処理開始/終了イベント処理:ServletRequestListener
リクエストコープへの属性追加/変更/削除イベント処理:ServletRequestAttributeListener

Servlet2へ
忘れっぽいエンジニアのJakarta Strutsリファレンス TOPへ