0

目前我有一个名为 MySessionData 的会话范围对象。最初注销时我只是打电话

getThreadLocalRequest().getSession().invalidate();

问题是现在我们有多个会话范围的对象,而注销只需要清除其中的一个(MySessionData)。有谁知道在 Guice 中清除单个 Session 范围对象的方法。如果这是使用传统会话对象,我只需在会话映射中将键值对设置为 null。

4

1 回答 1

1

我通常使用 guice 会话对象作为持有者。如果您像这样实现 MySessionData,您只需在其上定义一个 clear() 方法即可删除或清除所有持有的对象。

如果还不够,您仍然可以使会话无效。如果您需要在 Session 上保留此失效的引用,您可以使用 ThreadLocal 变量并使用 ServletFilter 设置它。

于 2011-08-04T23:02:22.573 回答