我有一个实现 HttpSessionAttributeListener
的对象,正如您所期望的,当在 session 中添加、替换和删除某些对象时,它会执行一些工作。
我认为如果 session 结束 [session.invalidate()
],该 session 中的每个对象都会从 session 中删除,以便调用 attributeRemoved()
方法?我没有看到那种行为,想知道我是否在做梦。
为了确保在 session 失效时我能够收到通知,我是否必须在我感兴趣的对象上实现 HttpSessionBindingListener
?或者还有其他方法吗?
最佳答案
当您调用session.invalidate()
时,您只是通知容器不应再使用该 session 。但是,它没有义务执行任何其他操作,例如删除 session 属性。它最终会执行此操作,但不能保证它会立即执行此操作,并且您的应用程序不应依赖于它及时发生。
关于java - session.invalidate 之后未调用 attributeRemoved,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1802833/