创建所有活动会话的地图?

时间:2013-11-15 10:42:27

标签: java session sessionid

我想在我的应用程序中获取所有活动会话的地图。 我正在使用struts和tomcat。

如何为我的应用程序创建仅活动会话的映射,其中会话ID为关键,会话对象为值。 感谢

2 个答案:

答案 0 :(得分:1)

是的,你一定要去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
  } 

答案 1 :(得分:0)

在TOMCAT中无法做到这一点。至少不是便携式解决方案。我猜你可以搜索文件系统上存储的会话,如果这是你存储会话的方式(这取决于你的Tomcat的配置)。

另一种方法是注册HttpSessionListener并计算并存储你自己。