session追踪客户端状态,存一些数据,每个浏览器有一个session,而它有两种实现方式
cookie优先,encodeURL在后。由于每次打开的窗口的jsessionID不同,打开多个浏览器窗口就是在多线程访问

解决方案 »

  1.   

    多个用户会不会共享一个会话。你可以用session的getID()的方法看看在一个浏览器里的jsessionID是相同的
      

  2.   

    多个窗口共享一个session是存在的,你可以这样试验,首先打开一个IE浏览器,并登陆你的应用程序,这时候你的session应当被创建了。这时,你在IE浏览器中选择文件->新建->窗口,这是你会发现这次不需要登陆,因为session对象中已经有了登陆信息了。
      

  3.   

    多个浏览器里的session是不同的,就是因为cookie中保存的jsessionID不同啊
      

  4.   

    回复huoyin:
        我试过您这种方法,的确如此,但是有没有正常的方法呢,因为假如用户这样做,那他就是知道自己在做些什么,或者您的意思是书中“单用户打开多个浏览器窗口”就是按您这种意思打开的是吗?
      

  5.   

    一起火狐是多窗口共享session的。不过我觉得真没必要限制。
      

  6.   

    回复:mengweilil
    不想在家装火狐,我觉得IE7应该也差不多吧,限制一下还是有必要的吧,免得用户乱点把数据复原了
      

  7.   


    应该是吧,我也不确定。不过到底需要同步还是不需要同步,我觉得你可通过如果session中某个属性值改变后,会影响其他线程执行的属性进行同步即可,没有必要对整个session进行同步。