如何从JSESSIONID加载Java HttpSession?

如何从JSESSIONID加载Java HttpSession?,第1张

如何从JSESSIONID加载Java HttpSession?

你需要收集所有在

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值的问题是“解决方案”?在新问题中对此进行详细说明,您将获得正确方法的答案。

认真点 我们不是在取笑您,我们只是在尝试向您提供正确的方向,以避免您的项目/网络应用由于安全漏洞和不良做法而中断,并且/或者您将被解雇



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5564977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存