我正在使用 JPA 构建一个 struts 2 应用程序。用户可以多次登录应用程序。我想
- 用户能够在网格中查看他的所有会话并可能突出显示当前会话,并且用户可以选择一个会话并终止它。
- 管理员还应该能够查看所有登录用户,还可以查看每个登录用户的所有会话,还可以选择终止任何会话。
谢谢
我正在使用 JPA 构建一个 struts 2 应用程序。用户可以多次登录应用程序。我想
谢谢
我想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 你可以很容易地找出你的其他问题。