如何从其他线程访问用户会话对象?
我想定期删除一些用户。我可以从数据库中删除它们,但某些用户可以登录。所以我想让他的会话无效,如果它存在的话。如何使用userId找到并使其会话无效?
据我所知,servlet容器有一些类似哈希的结构来存储“sessionId”=> “UserSession”映射。我可以访问它们吗?我可以以某种方式将userIds存储为该结构中的键吗?
我不喜欢的替代方法是在每个用户请求的开头检查数据库中是否存在用户对象。
答案 0 :(得分:4)
由于安全问题,您正在寻找existed but was removed的功能。
您应该能够通过实施HttpSessionListener来创建自己的活动会话记录来重新创建它。
答案 1 :(得分:3)
您可以通过实施SessionListener并在web.xml中注册来跟踪会话。