关于session
刚才老师再最后演示了一下,把浏览器关闭了,然后再打开输入地址之后,依旧访问到之前再会话对象 也就是session中设置的值,但是地址栏打印的sessionid也不一样了,我想问一下,是不是新打开之后页面 中的值是从另外一个新的会话空间拿到的。因为这个sessionid不一样了。当我们重写打开浏览器输入地址 之后,他会重新执行代码,在新session对象中设置同的属性和属性值,所以sessionid不一样了,而 我们取值的时候,也是在新得这个新的sessionid表示的会话空间取得的呢? 从第一遍执行到关闭浏览器再打开输入地址,这一趟下来,再服务端是否产生两个会话对象?还是说都是 从同一个会话对象设置和取出值,只不过再会话对象里面区分不同得地址区域呢?
12
收起
正在回答 回答被采纳积分+1
1回答
jia_蛙
2019-11-07 15:21:18
我知道了,因为刚才剩一点没看完就开始提出这些问题。 一开始介绍的时候就说了,session是用于保存“浏览器窗口"对应的数据 老师关闭浏览器之后,输入的地址是从/session/login开始,所以Tomcat会 接收到请求并转发给servlet,sevlet开始处理,所以等于重新执行了一遍 从而页面显示的结果和之前的一样,因为session是和当前浏览器窗口进行绑定的 当老师重新打开一个新的窗口的时候,已经是另一个新的session会话对象与之对应了。 所以sessionId自然不同,后面老师也演示了,当浏览器关闭并重新打开,输入/session/index 这个地址时,获取到的值时null。因为这个时候新的session对象中并没有存储值。 老师,我想再问一下,就是之前哪些sessionId对应的session对象,浏览器为他们提供的 内存空间是还在吗?只要没超过默认时效30分钟都一直在,是可以通过这个sessionId来获取吗
2. 从网页搭建入门JavaWeb
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星