0

当我阅读文档时,两者似乎都是一样的。那么这两者有什么区别呢?请举例说明两者之间的区别,例如在哪个场景中使用。

问候,

4

2 回答 2

1

第一个是会话的通用侦听器。每当向会话添加或删除任何类型的属性时都会调用它。当您想要了解任何会话属性添加/删除时使用它。

第二个是回调接口,可以由特定的类实现。当该对象与会话绑定/解除绑定时,在实现此接口的对象上调用回调方法。当您希望一个对象被告知它自己在会话中的添加/删除时使用它。

于 2012-07-15T07:33:32.843 回答
0
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侦听任何添加、删除或替换的属性。

于 2014-05-22T06:23:43.657 回答