我正在使用JPA构建一个struts 2应用程序。用户可以多次登录该应用程序。我想要
由于
答案 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轻松找出其他问题。