session多用户问题

07-08-16 jiyanliang
基于多用户的系统中
我把用户在登录时的信息保存在session中,如
request.getSession().setAttribute("user",user);
当访问其它页面时,这些页面在从session中读出
以进行权限判断.
但现在有一个奇怪的问题,就是在其它的机器上登录另一个帐号时,刚才那个登录帐号也变成了后登录的这个帐号.
按理说,session是保存在客户端的,怎么会重了呢
在线等



现在我在一台机子上登录
request.getSession().setAttribute("user",user);
在再另一台机子上登录
request.getSession().setAttribute("user",user);


第一个用户再想通过user字符串去查找session就找不到自己的了(因为又有一个设置了user字符串),是不是要通过id来查找呢。

这是登录代码
user.setYhm(yhm);
user.setMm(mm);
user.setQxdo(qxdo);
user.setBm(bm);
request.getSession().setAttribute("user",user);
request.getSession().setAttribute("userpower",qxdo);



这是前台读取代码
Loginin login = new Loginin();
Object yhzobj = request.getSession().getAttribute("user");
User user = (User)yhzobj;
if(user==null)
{
response.sendRedirect("/zhaotoubiao/demo/login.html");
}
String name = user.getYhm();
String qx=user.getQxdo();


对于两台机子的不同用户登录:
及第一个用户在一台机子上登录后,如用户名是a ;
过一段时间另一个用户b再在另一个机子上登录,用户名是b;
这时a用户重新刷新页面得到的却是用户名b,不知道是怎么回事。

1
banq
2007-08-20 09:27
session不是保存在客户端的,你可能对Session机制不是很清楚。http://www.jdon.com/jivejdon/thread/18806.html

janwen
2010-06-02 11:10
request.getSession().setAttribute("user",user);这样当然会覆盖了,session默认是在服务器端保存的,

猜你喜欢