打开第一个网页,然后登录,用session保存用户名。然后点击登录后网页里一个链接,随后在网页中输出用户名(比如用户名为1,输出的就是1)
再打开一个网页,具体操作步骤如上,打印用户名(2个网页用不同的用户名和密码,假设用户名为2,然后输出2)但是在我在点击第一个网页中的链接时,问题就来了,它输出的也是2,我想问一下,我现在打开2个网页,应该是给servlet创建了2个线程,他们应该各自有个session的实例的,为什么第一个网页的session值会被覆盖呢?难道sessios在整个应用程序阶段,只被创建一次?并且也不是线程安全的吗?请各位大虾帮忙解释一下!谢谢了
再打开一个网页,具体操作步骤如上,打印用户名(2个网页用不同的用户名和密码,假设用户名为2,然后输出2)但是在我在点击第一个网页中的链接时,问题就来了,它输出的也是2,我想问一下,我现在打开2个网页,应该是给servlet创建了2个线程,他们应该各自有个session的实例的,为什么第一个网页的session值会被覆盖呢?难道sessios在整个应用程序阶段,只被创建一次?并且也不是线程安全的吗?请各位大虾帮忙解释一下!谢谢了
你要是感兴趣的话,可以查哈里面讲的还算详细。。
哪如果是这样,session的作用域到底还什么用?
对的。
sessionId保存在cookies里
当客户端发起请求的时候,会将客户端cookies中保存的sessionId发送都服务端
服务端根据客户端发送过来的sessionId寻找session,如果session存在则取相应的session,不存在则创建
lz用的是同个浏览器,取同个cookies,sessionId相同,所以两次请求都是取到同一个session