如何使用tomcat的catlina api访问会话管理。我需要从我的代码中使其他用户的会话无效。
问问题
316 次
2 回答
2
javax.servlet
出于显而易见的原因,我个人不喜欢绑定到 Tomcat 包并尽可能多地使用API。您可以通过创建会话侦听器并将所有会话保存在 中来完成您的任务WeakHashMap
,就像这样
<!-- your webapp's web.xml -->
<listener>
<listener-class>path.to.SessionListener</listener-class>
</listener>
class SessionListener implements HttpSessionListener {
private static final Map<String, HttpSession> sessions = Collections.synchronizedMap(new WeakHashMap<String, HttpSession>());
public void sessionCreated(HttpSessionEvent event) {
sessions.put(event.getSession().getId(), event.getSession());
}
public void sessionDestroyed(HttpSessionEvent event) {
sessions.remove(event.getSession().getId());
}
}
其余的就像添加另一种方法来遍历所有会话并使它们无效一样简单。
于 2012-09-14T10:31:52.507 回答
0
对特定用户使用 session.invalidate 方法,例如 .
如果您在 session.set 属性中设置用户,则从访问器方法中获取该特定方法。
使用 pojo bean 来访问它。
在使会话检查无效之前,它必须为真或有效。
于 2012-09-14T05:23:01.987 回答