清除 Guice Servlet 中的会话范围对象

发布于 2024-11-27 22:05:21 字数 246 浏览 0 评论 0原文

目前我有一个名为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡墨 2024-12-04 22:05:21

我通常使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文