现在有个DRP系统,用户登录后如果再使用其他账号登录会把之前放在SESSION里面的初始数据给更新,这样很容易造成混乱,有什么办法可以解除这种顽疾。我在126邮箱里面登录一个再登录另一个126邮箱,刷新第一个的时候,会提示我失效,让我重新登录,不知道他是怎么处理的。有哪位大虾知道的指点指点。谢谢!

解决方案 »

  1.   

    登录的代码里session.invalidate(),把旧session销毁
      

  2.   

    你要的效果是什么啊 
    是不是第一个session失效提示失败就可以了啊
      

  3.   

    考虑过这样,但用户第一次登录的是自己的账号,第二次登录的是其他人都的如果销毁第一个的话,岂不是把数据的创建者记录在了第二个账号的信息上了。所以还是不能很好的解决,不过还是谢谢shine333。
      

  4.   

    163邮箱也是这样的。
    Java&Oracle学习交流群,知无不言,言无不尽。欢迎大家交流分享学习工作心得。QQ群:20378027。另寻常在线,爱帮助人的群主俩名。
      

  5.   

    有点不明白你的数据创建者,每次登录前,在验证完用户信息后,都应该先清楚session,然后再将新用户的信息写进session,不然可能会出大问题噢
      

  6.   

    是这样,用户登录后,会将一些组织人员的信息初始化到session中,但在同一个session中(例如现在的浏览器的标签新建一个页签)再次登录另一个人的账号,那之前的信息就会被第二次登录者给覆盖掉。怎么样解决这个问题呢,我的目前临时方案:是在登录的页面判断当前会话是否是一个新的会话如果不是就强制关闭页面。但我想做的跟好一点,看哪位还有更好的方案提供下
      

  7.   

    1 登录的时候先session.invalidate();
    2 登录成功后,往session里面放一个用户信息,比如叫userInfo
    3 增加一个filter,过滤出登录、登出或其他不必事先登录的功能,里面判断session中是否有userInfo,如果没有,重定向到登录页面,如果check ok, 继续后续处理。
      

  8.   

    判断一下当前页面的session中是否有值不就行了,有的话,你就不让它显示登录表单,而是显示一个链向主界面的链接,最好还要清空下缓存,不然每次都要手动刷新。
      

  9.   

    哈哈!! 这40分给我把!
    告诉你session是有缓存的,当你用到一次session之后,你就要对session进行清除!!!
      

  10.   

    可以在登录的时候把session销毁