単純なHttpSessionAttributeListenerの例
Webアプリケーションでセッションの属性を追跡する簡単な “HttpSessionAttributeListener”の例を次に示します。セッションの属性を監視したままにして、動作の追加、更新、削除を行いたい場合は、このリスナーを検討してください。
Javaソース
package com.mkyong;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
public class MyAttributeListener implements HttpSessionAttributeListener {
@Override
public void attributeAdded(HttpSessionBindingEvent event) {
String attributeName = event.getName();
Object attributeValue = event.getValue();
System.out.println("Attribute added : " + attributeName + " : " + attributeValue);
}
@Override
public void attributeRemoved(HttpSessionBindingEvent event) {
String attributeName = event.getName();
Object attributeValue = event.getValue();
System.out.println("Attribute removed : " + attributeName + " : " + attributeValue);
}
@Override
public void attributeReplaced(HttpSessionBindingEvent event) {
String attributeName = event.getName();
Object attributeValue = event.getValue();
System.out.println("Attribute replaced : " + attributeName + " : " + attributeValue);
}
}
web.xml
<web-app ...>
<listener>
<listener-class>com.mkyong.MyAttributeListener</listener-class>
</listener>
</web-app>
どのように動作するのですか?
HttpSession session = request.getSession();
session.setAttribute("url", "mkyong.com");//attributeAdded() is executed
session.setAttribute("url", "mkyong2.com");//attributeReplaced() is executed
session.removeAttribute("url");//attributeRemoved() is executed
すべてのメソッドは引数として “HttpSessionBindingEvent”を受け入れます。したがって、このイベントをトリガした属性の名前と値を取得できます。