session多用户问题
基于多用户的系统中
我把用户在登录时的信息保存在session中,如
request.getSession().setAttribute( "user ",user);
当访问其它页面时,这些页面在从session中读出
以进行权限判断.
但现在有一个奇怪的问题,就是在其它的机器上登录另一个帐号时,刚才那个登录帐号也变成了后登录的这个帐号.
按理说,session是保存在客户端的,怎么会重了呢
在线等
------解决方案--------------------按理说,session是保存在客户端的,怎么会重了呢
首先你说的这句话不对,session是保存在服务器端的,服务器会为每个客户创建一个session.
你遇到的这个问题,好像不会出现把,请把你整个流程说一下。
------解决方案--------------------session的底层机制有两种
1、cookie,cookie中会有一个字段JSESSIONID来标示你这个会话,以从服务器内存中找到正确的session.
2、URL重写,就是把这个JSESSIONID写在URL请求参数里。
默认情况下是cookie机制。
你这种情况可能发生的一个原因就是JSESSIONID重复了,但这种事件的几率应该很小。
------解决方案--------------------request.getSession().setAttribute( "user ",user);
为什么要使用request对象获得session?request用来上下页面传值。
请问:对于全局的内置对象session来说,是否跟内置对象request有关?
试下用下方法:
session.setAttribute( "user ",user);
session.getAttribute( "user ");
------解决方案--------------------以前听说过这个问题。
就是第二个用户刷新时显示第一个用户的信息。
据说是服务器的一个什么设置有关系。
你用的是websphere或者weblogic吧。
------解决方案--------------------你debug一下,看看第二个用户request.getSession()和第一个用户get出来的session对象的id是否一样,应该是不一样的。
------解决方案--------------------这样的问题不少,两个用户共用一个session不是好办法.
其实应该一个登陆用户有他自己的一个session,当有相同的session时,要么将第一个session踢掉,要么不让第二个用户登陆.两个相同的session没什么意义.
------解决方案--------------------对啊
应该写成
session.setAttribute( "user ",user);
String user = session.getAttribute( "user ");
------解决方案--------------------用楼上说的方法应该没问题,我都是这样用的
------解决方案--------------------可能是request.getsession()的问题。
------解决方案--------------------session不会出这种问题吧。。。