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