我想在我的应用程序中获取所有活动会话的地图。我正在使用struts和tomcat。
或者
我如何为我的应用程序创建一个只有活动会话的映射,其中会话 ID 作为键,会话对象作为值。谢谢
是的,你绝对应该去HttpSessionListener
实施。这将帮助您捕获会话创建和销毁事件。在那里您可以编写逻辑以相应地从映射中添加和删除会话对象。
例如
@Override
public void sessionCreated(HttpSessionEvent arg0) {
//get the session object from the event
//put the session id and session object to your map
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
//get the session object
//remove it from the map using it's session id
}
在 TOMCAT 中没有办法做到这一点。至少不是便携式解决方案。如果这是您存储会话的方式(这取决于您的 Tomcat 的配置),我想您可以在文件系统上搜索存储的会话。
另一种方法是注册 aHttpSessionListener
并自行计算和存储它们。