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

Uch*_*nwu 3 java jsp struts2 java-ee

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

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

谢谢

Fal*_*lup 6

我想HttpSessionBindingListener你正在寻找什么.我不会写下完整的代码,只是建议你可以这样做:

您可以将静态字段(Map)添加到User class (DTO)存储所有活动的位置sessions of users.:

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

然后让User classimplemets HttpSessionBindingListener.通过这种方式,您可以指定valueBound(HttpSessionBindingEvent event)实际创建的方法session,并将其放入您的usersSessions喜欢:

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

valueUnbound(HttpSessionBindingEvent event)方法中:

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

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