sessionTester1:核心代码<%
session.setAttribute("name","Lebron");

out.print("往session中添加了一个属性name,值为Lebron");
%>
sessionTester2:核心代码<% 
String name=(String)session.getAttribute("name");

out.print("获得session中的属性name的值为:"+name);

%>
打开第一个浏览器,访问sessionTester1,然后通过双击浏览器的快捷方式重新打开一个新的浏览器进程,访问sessionTester2,为什么能取到在session中存放的Lebron?我明明是重新打开一个新的浏览器啊求教。

解决方案 »

  1.   

    session是在同页面请求中共享的啊,如果你用其他浏览器就不共享了。
      

  2.   

    session是同一个进程共享(IE可配为不共享)。
      

  3.   

    浏览器  以标签形式打开的话  多个标签页面是共享一个session的, session里面用id进行区分标签。
    再开一个浏览器就不是共享了,则会 再创建一个session
      

  4.   

    session.setAttribute("name","Lebron");
    这个动作会在cookie里生成sessionId,服务端存具体session的内容。
    读session的值时根据cookie的sessionId去服务器读取内容
    换了浏览器cookie中 sessionId不同了,就找不到了。大牛们是这样吗....
     
      

  5.   

    首先谢谢你的回复。问题是你的回复和我遇到的问题没关系啊。你讲的我都知道。我的问题就是问为什么。我在第一个页面用session存取的属性,然后明明重新打开的浏览器(不是通过标签形式打开的),为什么第二个页面能取到之前存取的属性。这两个已经页面不是共享一个session了啊?
      

  6.   

    因为你第一次打开的浏览器已经创建session,你并没有关闭。你把你第一次打开的浏览器关了试试。。
      

  7.   

    Session共作原理没错的,将SessionID存储在会话cookie中(也就是浏览器中)用来跟踪用户会话数据。
    如果你使用IE6.0的话是没问题的,即一个窗口只能维持一个会话。
    但IE7.0以后好像做了改进,只要在本机上,所有IE共享同一个Session。这个好像没有太大影响吧