关于会话的作用范围,session的作用域范围比request大。有人说就是浏览器窗口,是用户在这个窗口中的一系列请求,当新建一个窗口的时候,就取不到session的内容了。
但是经过我的测试,发现如果是同一个浏览器,新建了一个窗口,还是能够从这个新建的窗口中访问到session的内容。我觉的这个原因是因为新建的这个窗口是继承自原来的那个窗口的,是一个子窗口。在以前版本的火狐浏览器 还没有标签式的窗口上测试的时候。发现只要不关闭,原来的那个火狐,即使新打开的一个火狐浏览器,还是能够访问的到session的内容。 这也可能跟浏览器的实现有关吧。
如果清除了缓存,关掉一个浏览器,重新启动一个,肯定是访问不到session的内容的,因为这一次的会话,已经随着你关闭浏览器结束了。
所以session的生命周期是:
(1)客户端关闭浏览器
(2)会话过期
(3)调用了invalidate()方法。
但是经过我的测试,发现如果是同一个浏览器,新建了一个窗口,还是能够从这个新建的窗口中访问到session的内容。我觉的这个原因是因为新建的这个窗口是继承自原来的那个窗口的,是一个子窗口。在以前版本的火狐浏览器 还没有标签式的窗口上测试的时候。发现只要不关闭,原来的那个火狐,即使新打开的一个火狐浏览器,还是能够访问的到session的内容。 这也可能跟浏览器的实现有关吧。
如果清除了缓存,关掉一个浏览器,重新启动一个,肯定是访问不到session的内容的,因为这一次的会话,已经随着你关闭浏览器结束了。
所以session的生命周期是:
(1)客户端关闭浏览器
(2)会话过期
(3)调用了invalidate()方法。