オブジェクトがHTTPのセッションオブジェクトにバインド/バインド解除されたときに通知を受け取るにはどうすればよいですか。
質問する
3822 次
1 に答える
7
オブジェクトのクラスにを実装させHttpSessionBindingListener
ます。
public class YourObject implements HttpSessionBindingListener {
@Override
public void valueBound(HttpSessionBindingEvent event) {
// The current instance has been bound to the HttpSession.
}
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
// The current instance has been unbound from the HttpSession.
}
}
オブジェクトのクラスコードを制御できず、コードを変更できない場合は、を実装することもできますHttpSessionAttributeListener
。
@WebListener
public class YourObjectSessionAttributeListener implements HttpSessionAttributeListener {
@Override
public void attributeAdded(HttpSessionBindingEvent event) {
if (event.getValue() instanceof YourObject) {
// An instance of YourObject has been bound to the session.
}
}
@Override
public void attributeRemoved(HttpSessionBindingEvent event) {
if (event.getValue() instanceof YourObject) {
// An instance of YourObject has been unbound from the session.
}
}
@Override
public void attributeReplaced(HttpSessionBindingEvent event) {
if (event.getValue() instanceof YourObject) {
// An instance of YourObject has been replaced in the session.
}
}
}
注:サーブレット2.5以前を使用している場合は@WebListener
、の<listener>
構成エントリに置き換えてweb.xml
ください。
于 2012-06-29T13:12:38.100 に答える