下午同事发现了一个问题:同一个应用系统,在同一台电脑上,用不同的用户登录后,后面的用户会把前面用户信息覆盖掉!
代码如下:
....................................
_request.getSessionContext().add("user", user);
....................................
起初,我不以为然:应该如此啊!如果不这样,那反而不正常了!
同事接着问:要是客户要求后面的用户登陆后,不要冲掉前面的用户信息,咋处理?
由此产生了2个问题:
(1)在前面代码不变的情况下,你确定后面登陆用户会把前面登陆用户信息覆盖掉?
(2)如果不想后面用户覆盖前面用户,怎么处理?
为了严谨的证明,不是单靠嘴皮子,我决定写个小程序测试下。
建立一个J2EE工程,里面有一个jsp,用打印session.getId()的办法,来判断两次打开同一个页面是否同一个session!
结果出乎意料,竟然有种情况:
(1)如果两次用同一浏览器(注:ie9和搜狗浏览器不是同一个浏览器),两次打开的sessionid是一样的。
(2)如果两次用不同的浏览器(注:ie9和搜狗浏览器不是同一个浏览器),两次打开的sessionid是不一样的。
有了这个结论,问题的答案并迎刃而解了。