3

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

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

谢谢

4

1 回答 1

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 你可以很容易地找出你的其他问题。

于 2012-04-12T18:14:52.213 回答