java - session.invalidate 之后未调用 attributeRemoved

标签 java session servlets

我有一个实现 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/

相关文章:

java - 尝试获取在android中绘制的每个随机圆的x,y坐标

java - RESTlet 启动初始化已弃用?

java - PipedInputStream 如何从 OutputStream 读取?

java - 包含所有 Drawable 的 Android Studio 对话框

node.js - 如何防止node.js应用程序中的 session 溢出?

php - paypal 快速结帐后缺少 session 数据

asp.net - 敏感的 ASP.NET Session 数据是否需要加密?

java - 自定义SessionListener,名称在此上下文中未绑定(bind),javax.naming.NameNotFoundException

java - 如何将字节数据从 C# 传递到 Java 中的 Servlet

java - 需要帮助计算 MaxHeap 中的交换数量