在session.invalidate之后没有调用attributeRemoved

时间:2009-11-26 10:21:22

标签: java session servlets

我有一个实现HttpSessionAttributeListener的对象,正如您所期望的那样,当某些对象被添加,替换并从会话中删除时,它会起作用。

我认为如果会话结束[session.invalidate()],会话中的每个对象都会从会话中删除,因此会调用attributeRemoved()方法吗?我没有看到这种行为,并想知道我是否梦见过它。

为了确保在会话失效时我可以收到通知我是否必须对我感兴趣的对象实施HttpSessionBindingListener?还是有另一种方式。

2 个答案:

答案 0 :(得分:1)

当您致电session.invalidate()时,您只是通知容器不再使用该会话。但是,它不必执行任何其他操作,例如删除会话属性。它最终会这样做,但不能保证它会立即执行,并且您的应用程序不应该及时依赖它。

答案 1 :(得分:0)

HttpSessionListener,实施方法sessionDestroyed