如何javaEE通过sessionId获取HttpSession对象?


Servlet早就废弃了 getSession(String id) 这个方法了,这使得开发者无法通过 sessionId 字符串取得对应的会话对象了!

之所以有这个需求,是因为前后端请求时,不是根据cookie来传递sessionid的,而是自定义的请求头字段,这就需要在后端手动获取session对象。

可能你要问,为什么不用cookie?理由很多,比方说跨域,或者Rest化等等吧,总之,不知道目前大家是怎么解决的。

网上很多都是说自己提供一个监听器,然后保存sessionid和session对象的映射关系,个人觉得这么做很不好,尤其是这要求每次请求都绑定到固定服务器上,当后端是集群时,就无能为力了。

自己刚转到java web向,用springMVC写一个项目,还是那句话,想知道大家都是如何解决或规避这个问题的?

spring-mvc spring javaweb java-ee

夏沫那朵花 10 years, 2 months ago

我这里的解决思路是自己造一个类似session的东西。存在memcache里,然后用SSO服务器来管理这些数据。站点通过和SSO服务器交互同步登录信息。

有丝分裂间期 answered 10 years, 2 months ago

Your Answer