关于session

关于session

刚才老师再最后演示了一下,把浏览器关闭了,然后再打开输入地址之后,依旧访问到之前再会话对象
也就是session中设置的值,但是地址栏打印的sessionid也不一样了,我想问一下,是不是新打开之后页面
中的值是从另外一个新的会话空间拿到的。因为这个sessionid不一样了。当我们重写打开浏览器输入地址
之后,他会重新执行代码,在新session对象中设置同的属性和属性值,所以sessionid不一样了,而
我们取值的时候,也是在新得这个新的sessionid表示的会话空间取得的呢?
从第一遍执行到关闭浏览器再打开输入地址,这一趟下来,再服务端是否产生两个会话对象?还是说都是
从同一个会话对象设置和取出值,只不过再会话对象里面区分不同得地址区域呢?


正在回答 回答被采纳积分+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来获取吗


  • 同学你好,对于前面的描述,你的理解是正确的,对于之前的sessionId对应的Session对象的在浏览器中还是存在的,也是可以通过这个sessionId来获取的。祝学习愉快~
    2019-11-07 17:59:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师