你需要收集所有在
Map用
HttpSessionListener你自己。
public class HttpSessionCollector implements HttpSessionListener { private static final Map<String, HttpSession> sessions = new HashMap<String, HttpSession>(); @Override public void sessionCreated(HttpSessionEvent event) { HttpSession session = event.getSession(); sessions.put(session.getId(), session); } @Override public void sessionDestroyed(HttpSessionEvent event) { sessions.remove(event.getSession().getId()); } public static HttpSession find(String sessionId) { return sessions.get(sessionId); }}
只需
web.xml按以下所示注册即可运行:
<listener> <listener-class>com.example.HttpSessionCollector</listener-class></listener>
然后,在任何您想做的地方都
HttpSessionCollector.find(sessionId)可以解决
HttpSession问题。
也就是说,这是一种 巨大的 气味。当然,解决 实际
功能需求的方法肯定比这更好;)正如我在您的后续问题中评论的那样:
这是您第二次询问一个在现实世界中永远不应该实践的问题。老实说,这一切都有味道。这是什么,您认为
HttpSession
在服务器端与JSESSONID关联并在客户端获得JSESSIONID值的问题是“解决方案”?在新问题中对此进行详细说明,您将获得正确方法的答案。
认真点 我们不是在取笑您,我们只是在尝试向您提供正确的方向,以避免您的项目/网络应用由于安全漏洞和不良做法而中断,并且/或者您将被解雇。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)