我在用户登录的时候,将用户名保存到一个session中
HttpSession session=request.getSession
session.setAttribute("number",number);
在1.jsp中页面获取session中的值用EL${sessionScope.number}
或者用<%=session.getAttribute("number")%>
但是,当我用几个账号登陆的时候,获取用户名的时候却出现了错误。
比如:我用123登陆的时候1.jsp中获取的是123,页面不关闭;当我用321登陆的时候,页面上显示的是321,但未关闭的
1.jsp中却显示321而不是原来的123.请各位大侠们帮小弟解决一下,小弟感激万分~~~

解决方案 »

  1.   

    当你用321登陆的时候,为关闭的1.jsp你是不是刷新的,然后才出来321?其实验证这种问题,你可以试试如下方法:
    session.setAttribute("number",1);
    session.setAttribute("number",2);看看打印session.getAttribute("number")出来的是什么。如果你明白这个意思就OK了。
      

  2.   

    请教!!请教!!
    不知道你是不是用同一个页面登录的!!
    如果是同一个页面登录,那么服务器不会分配新的session,从而导致session中同key的覆盖。
    如果是这样的话,应该会出现上述情况。
    请教!!请教!!
      

  3.   

    我在登录的时候将登陆账号保存在一个session中,在以后的操作中需要保存操作人,
    操作人是用登陆账号来表示的,如果几个人都在线的话,这样从session中取到的值不是准确的,
    我如何控制才能满足要求。请耐心指教~~~谢谢
      

  4.   

    request.getSession(true);
    这个方法好像可以告诉服务器分配新的session
    但不知道是否会导致原来的session死掉!!
    人太懒了。没试过。
    请教!!请教!!
      

  5.   

    这可能是因为你的程序是在同一个浏览器窗口运行的,当你开启新的选项卡时,不会创建新的session的,是共用同一个session的,所以就会修改掉session里面的属性值啊。
    调试的时候是要用不同浏览器窗口或者同意浏览器打开不同的多个窗口分别运行测试的,不要放在同一窗口的选项卡中测试代码没问题的啊。。
      

  6.   

    试试,我用servlet是没有问题的
    HttpServletRequest req
    req.getSession().setAttribute(("number",number);
      

  7.   

    这个做法好像也不行,req.getSession()这个就是声名session的。不能彻底的解决问题,你可以尝试一下未关闭浏览器的话,打开新的选项卡仍然会存在这个问题。
      

  8.   

    是不是第一個登陸了把信息存到SESSION,頁面不動,在打開登陸頁面用另一個帳號登?
    你說的問題不存在啊,這做的系統有好多人在用,根本沒你說的那情況
      

  9.   

    如果你說的1.jsp會自動變,如果沒有手動更新的話根本不會變,可能的原因是頁面有自動刷新的或有清除緩存
      

  10.   

    浏览器没有关闭 SESSION 是和浏览器绑定的
      

  11.   

    开新标签公用session
    开新窗口不共用。。
    这是浏览器的设计。。方便你想通过自己的代码区改变浏览器的设置
    那是相当的
    纯属路过。
      

  12.   

    解决的办法很简单啊,是你后来放入的名为“number”的值把前面的覆盖掉了! 换个名字就可以了!但是我估计你不是要的这种效果! 
    HttpSession session=request.getSession 
    session.setAttribute("number",number); 
    这个是在登录验证成功后的代码吗?
      

  13.   

    你的意思是不是   打开一个登陆页面,以a用户名登陆后,不关闭!
    再打开一个页面,用b用户名成功登陆!这会使第一个页面里面显示的用户名变成b?????????
      

  14.   

    如果你要获取多个session的话,就要做个列表,并将它们放入APPLICATION中,只有这样才能出现你要多效果!!指教指教
      

  15.   

    昨天没看帖那么多人回,先谢过了,你们的回帖我都仔细看过 先回复17#的,页面不刷新,数据肯定不会自己变,我当然是指刷新过后保存在session中的被替换掉了! 21#楼的说话,我还没有想那么复杂,只是想每个用户登录都会自动分配一个特定的session,听朋友说用这个类ThreadLocal,写一个过滤类,在xml中过滤下,不过我没有测试成功。
    我用的是IE的版本,我也说过,如果不关闭当前浏览器,重新开启两外一个的话,不会出现帖子中的情况,只有新开选项卡的时候才会出现这种情况。
    22#的说话的确不是我要的效果,我的确也是你这样做的,帖子中也说明了,
    23#,大概是这个意思,不过是在后面的操作中取session中的值,
    24#的,这样好像太麻烦,而且要给每个session分配一个特定的字段,这样太麻烦,也不是我要的效果
    再次感谢各位~
      

  16.   


    在同一选项卡中,出现这种问题是正确的,因为这就相当于一个session的了.
    有的高版本浏览器好像在不同的窗口中,也会出现这样的问题,不好解决.
    不过,一台电脑基本上也就一个帐户在使用,所以,个人认为这样的问题影响不大.