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

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

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

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

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

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

阅读 13.3k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题