如何从SessionID获取HttpSession对象?

时间:2009-08-09 13:03:35

标签: java servlets httpsession

我希望根据某些事件使用户会话无效。我存储了他们的sessionID,如何从这个ID获取他们的HttpSession? 不推荐使用HttpSessionContext类,无需替换。

2 个答案:

答案 0 :(得分:6)

不推荐使用已经执行此操作的方法。 但是你可以实现你的想法使用HttpSessionListener,当创建一个新会话时,将它存储在一个HashMap中,其中session id作为键,对象是实际的HttpSessionObject。你可以通过这个获得参考。

答案 1 :(得分:3)

Servlet 2.2出于安全原因特别弃用了这一点,因此不应该有任何官方方法来执行此操作。不推荐,但如果您使用Tomcat,则可以尝试使用Manager.findSession()。

我刚从我的应用程序中删除了HttpSession。当许多服务器运行时,很难保持会话同步。我们尝试通过编写自己的经理来调整它,但永远不能让它正常工作。最后,我们用大约500行代码编写了自己的会话实现,它的工作效果要好得多。