清除 Guice Servlet 中的会话范围对象
目前我有一个名为 MySessionData 的会话范围对象。最初,当注销时,我只是调用了
getThreadLocalRequest().getSession().invalidate();
问题是现在我们有多个会话范围的对象,注销只需要清除唯一的(MySessionData)。有谁知道在 Guice 中清除单个会话范围对象的方法吗?如果这是使用传统的会话对象,我只需在会话映射中将键值对设置为 null。
Currently I have a session scoped object called MySessionData. Originally when logging out I just called
getThreadLocalRequest().getSession().invalidate();
The problem is now we have multiple session scoped objects and logging out only really requires the ony (MySessionData) be cleared. Does anybody know of a way to clear a single Session scoped object in Guice. If this were using traditional session objects I would just set the key value pair to null in the session map.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我通常使用 guice 会话对象作为 Holders。如果您像这样实现 MySessionData,则只需在其上定义一个 clear() 方法即可删除或清除所有保留的对象。
如果还不够,您仍然可以使会话无效。如果您需要保留对会话的引用以实现此失效,则可以使用 ThreadLocal 变量并使用 ServletFilter 来设置它。
I usually use guice session objects as Holders. If you implements MySessionData like that, you just have to define a clear() method on it to remove or clear all the holded objects.
If it is not enough, you can still invalidate the session. If you need to keep a reference on the Session for this invalidation, you can use a ThreadLocal variable and set it using a ServletFilter.