问题描述
现在做个单点登录的功能,通过传sessionid实现在同一个web应用中,有两个域名映射过来A www.laxbox.comB 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范围的,重新打开一个浏览器就又可以了 问题补充:liveHappy 写道
解决方案
你换种写法。在b中把request.getSession(false)换成request.getSession().然后去取你登录后放到session中的用户,判断是否有用户存在。你在不关闭浏览器的情况下,每次操作的cookie一定是相同的,要不如果去确定session。不要考虑sessionid,因为session的创建是在服务器端,你想的太多了。导致你操作失败的原因,可能就是你在判断session的时候没有处理好。