目前我有一个名为MySessionData的会话范围对象。最初退出时我刚刚调用
getThreadLocalRequest().getSession().invalidate();
问题是现在我们有多个会话作用域对象,只有登出时才需要清除ony(MySessionData)。有没有人知道在Guice中清除单个Session范围对象的方法。如果这是使用传统会话对象,我只需在会话映射中将键值对设置为null。
答案 0 :(得分:1)
我通常使用guice会话对象作为Holders。如果你像这样实现MySessionData,你只需要在它上面定义一个clear()方法来删除或清除所有的holded对象。
如果还不够,您仍然可以使会话无效。如果需要在Session上保留对此失效的引用,可以使用ThreadLocal变量并使用ServletFilter进行设置。