session混乱问题解决方案

本文属原创,如复制请加上: http://jnotnull.iteye.com
最近做了一个项目,设计到多用户登录,当然这也是很常见系统类型.在软件测试阶段出现了一个奇怪的问题,下面是对其的叙述:
基于多用户的系统中
我把用户在登录时的信息保存在session中,如
request.getSession().setAttribute("user",user);
当访问其它页面时,这些页面在从session中读出
以进行权限判断.
但现在有一个奇怪的问题,就是在其它的机器上登录另一个帐号时,刚才那个登录帐号也变成了后登录的这个帐号.
下面是代码:
这是登录代码
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();

其实出现session混乱,还是有不少的解决方法的,一个就是在用户登录的时候
记下用户的IP,并在以后的操作中反复的去判断这个IP是不是在数据库中,并且设置有效时间
第二个方法和这个差不多就是url重写,在每一个请求的url上加上登录时的一个id,可以是sessionid,以后每一次操作都判断这个id
当然这些方法都是在session混乱出现之后的的解决方法,如果在项目后期发现,工作量将会非常巨大.还有一个方法是不让这种现象产生,那就是把user定义成局部变量,不让其它用户公用.
这个问题的解决方案实在是巧妙!( http://jnotnull.iteye.com

你可能感兴趣的:(html,工作,软件测试)