当我阅读文档时,两者似乎都是一样的。那么这两者有什么区别呢?请举例说明两者之间的区别,例如在哪个场景中使用。
问候,
当我阅读文档时,两者似乎都是一样的。那么这两者有什么区别呢?请举例说明两者之间的区别,例如在哪个场景中使用。
问候,
第一个是会话的通用侦听器。每当向会话添加或删除任何类型的属性时都会调用它。当您想要了解任何会话属性添加/删除时使用它。
第二个是回调接口,可以由特定的类实现。当该对象与会话绑定/解除绑定时,在实现此接口的对象上调用回调方法。当您希望一个对象被告知它自己在会话中的添加/删除时使用它。
HttpSessionBindingListener:
如果一个对象实现了HttpSessionBindingListener
,它会在绑定到会话或从会话中解除绑定时收到通知。例如,
MyObject implements HttpSessionBindingListener
{
// class definition
}
如果我打电话
session.setAttribute ("Object", MyObject)
方法valueBound
和/或valueUnbound
(定义在HttpSessionBindingListener
,实现在MyObject
被调用)实现HttpSessionBindingListener
仅适用于实现它的对象
HttpSessionAttributeListener
:当任何类实现HttpSessionAttributeListener
接口时,当会话的属性列表发生任何变化时都会通知它。例如
MyClass implements HttpSessionAttributeListener
{
// implementations of methods
}
session.setAttribute ("anything", AnyObjectNotOnlyMyClass);
指示属性列表中的更改。实现HttpSessionAttributeListener
侦听任何添加、删除或替换的属性。