weixin_42402506
2010-10-28 09:34
浏览 808
已采纳

request.getSession(false)在什么时候返回null?

现在做个单点登录的功能,通过传sessionid实现

在同一个web应用中,有两个域名映射过来
A www.laxbox.com
B bbs.laxbox.com
从A中登录,在A中通过
http://bbs.laxbox.com/admin/index.do;jsessionid=DFDD4DA7B1D1040840BCE2CE5080F8F9
访问B,
在B 中通过判断 request.getSession(false)是否为空来判断是否已登录

第一次是可以的,没问题,退出登录后
第二次再从A登录访问B,B中的request.getSession(false)返回空

这时firefox中可以看到一个bbs.laxbox.com域名下的jsessionid的cookie ,删除后就可以从A登录B了
(cookie中的sessionid值是上一次的,跟A中链接传过来的肯定就不一样了)

cookie在的时候为什么request.getSession(false)会返回null?

这个问题该怎么解决,从A中退出时不能删除B域名下的cookie吧?

--cookie都是session范围的,重新打开一个浏览器就又可以了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • zgy52188 2010-10-28 12:32
    已采纳

    你换种写法。
    在b中把request.getSession(false)换成request.getSession().
    然后去取你登录后放到session中的用户,判断是否有用户存在。
    你在不关闭浏览器的情况下,每次操作的cookie一定是相同的,要不如果去确定session。
    不要考虑sessionid,因为session的创建是在服务器端,你想的太多了。
    导致你操作失败的原因,可能就是你在判断session的时候没有处理好。

    点赞 评论

相关推荐 更多相似问题