Access all User Session in Struts 2(访问 Struts 2 中的所有用户会话)
问题描述
我正在使用 JPA 构建一个 struts 2 应用程序.用户可以多次登录应用程序.我想要
I am building a struts 2 application with JPA. A user can login into the application multiple times. I want
- 用户能够在网格中查看他的所有会话,并可能突出显示当前会话,并且用户可以选择一个会话并终止它.
- 管理员还应该能够查看所有登录用户,还可以查看每个登录用户的所有会话,还可以选择终止任何会话.
谢谢
推荐答案
我认为 HttpSessionBindingListener
就是你要找的.我不会写完整的代码,只是建议你一种方法:
I think HttpSessionBindingListener
is what are you looking for.
I won't write down the complete code, just suggest you a way you can do it:
您可以将静态字段(地图)添加到您的 用户类 (DTO)
中,您将在其中存储所有活动的 用户会话
.:
You can add a static field (Map) to your User class (DTO)
where you will store all active sessions of users
. :
例如私有静态Map
然后让User class
实现HttpSessionBindingListener
.这样,您可以指定 valueBound(HttpSessionBindingEvent event)
方法,您可以在其中获取实际创建的 session
并将其放入您的 usersSessions
中,如下所示:
Then make User class
implemets HttpSessionBindingListener
. This way you can specify valueBound(HttpSessionBindingEvent event)
method in which you can grab actually created session
and put it into your usersSessions
like this :
usersSessions.put(this, event.getSession());
在valueUnbound(HttpSessionBindingEvent event)
方法中然后:
usersSessions.remove(this);
在 logout
后删除 users session
.
这样您就拥有了所有 活动会话
的 Map
以及它属于哪个用户的信息.IMO,您可以通过此轻松找出您的其他问题.
This way you have Map
of all of your active sessions
also with information to which user it belongs to. IMO you can figure out your other problems easily with this.
这篇关于访问 Struts 2 中的所有用户会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:访问 Struts 2 中的所有用户会话
基础教程推荐
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- 降序排序:Java Map 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01