访问Struts 2中的所有用户会话

时间:2012-04-12 17:22:05

标签: java jsp java-ee struts2

我正在使用JPA构建一个struts 2应用程序。用户可以多次登录该应用程序。我想要

  1. 用户能够在网格中查看他的所有会话,并可能突出显示当前会话,并且可选择用户可以选择会话并终止它。
  2. 管理员还应该能够查看所有已登录的用户,还可以查看每个登录用户的所有会话,还可以选择终止任何会话。
  3. 由于

1 个答案:

答案 0 :(得分:6)

我认为HttpSessionBindingListener正是您在寻找什么。 我不会写下完整的代码,只是建议你这样做:

您可以在User class (DTO)添加静态字段(地图),以便存储所有有效sessions of users。 :

例如private static Map<User, HttpSession> usersSessions= new HashMap<User, HttpSession>();

然后让User class实现HttpSessionBindingListener。这样,您可以指定valueBound(HttpSessionBindingEvent event)方法,您可以在其中抓取实际创建的session并将其放入usersSessions,如下所示:

usersSessions.put(this, event.getSession());

valueUnbound(HttpSessionBindingEvent event)方法中:

usersSessions.remove(this);users session之后移除logout

通过这种方式,您Map中的active sessions也可以获得其所属用户的信息。你可以通过IMO轻松找出其他问题。