我正在使用 JPA 构建 struts 2 应用程序。用户可以多次登录该应用程序。我想
- 用户能够在网格中查看他的所有会话,并可能突出显示当前会话,并且用户可以选择一个会话并终止它。
- 管理员还应该能够查看所有登录的用户,还可以查看每个登录用户的所有会话,还可以选择终止任何会话。
Thanks
I think HttpSessionBindingListener
就是你在寻找什么。
我不会写出完整的代码,只是建议您一种方法:
您可以将静态字段(Map)添加到您的User class (DTO)
您将在其中存储所有活动sessions of users
. :
e.g private static Map<User, HttpSession> usersSessions= new HashMap<User, HttpSession>();
然后使User class
实施HttpSessionBindingListener
。这样你就可以指定valueBound(HttpSessionBindingEvent event)
您可以获取实际创建的方法session
并将其放入你的usersSessions
像这样 :
usersSessions.put(this, event.getSession());
In valueUnbound(HttpSessionBindingEvent event)
那么方法:
usersSessions.remove(this);
去除users session
after logout
.
这样你就有了Map
你所有的active sessions
还有它属于哪个用户的信息。 IMO,你可以用这个轻松解决你的其他问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)