关于HttpSession的一点疑问

J2EE 码拜 8年前 (2017-04-28) 1313次浏览
本人首先清空了浏览器的cookie,首次请求发送给一个servlet,叫做A,A中会创建一个新的session,设置session的属性值,然后转发到servlet(叫做B)中,在B中取出session的属性值,本人的想法是取出来的是null,但是可以取到值,本人的想法是原因是第一次浏览器发请求给A,并没有带session的sessionId值,然后转发到B中,按理来说在B中没有sessionid应该是取不到这个session的,希望各位高手打醒。
解决方案

10

session的目的是会话跟踪,先把基本概念理清,每一个客户端,不管是浏览器,android设备还是其它任何设备发送请求到服务端都会产生一个sessionid,你用的浏览器针对服务端而言是一个固定的客户端而已,而请求转发又是服务端内部跳转,所以sesison自然会维持

20

session是由服务器创建的,在一次会话中(也就是不关闭浏览器)session是不会消失的,首次浏览器首次访问服务器,服务器会创建一个session值,并把sessionid回应给浏览器,浏览器再次访问服务器就可以在cookie中携带sessionid以便识别浏览器不是不是第一次访问(session中也可以赋值,下次浏览器访问携带session的值服务器就直接能读到了)所谓的第一次访问session不能是null,服务器在浏览器访问的时候就给session默认赋值了……本人的理解仅供参考

10

引用:
Quote: 引用:

session的目的是会话跟踪,先把基本概念理清,每一个客户端,不管是浏览器,android设备还是其它任何设备发送请求到服务端都会产生一个sessionid,你用的浏览器针对服务端而言是一个固定的客户端而已,而请求转发又是服务端内部跳转,所以sesison自然会维持

这个sessionId书上说是session对象发送给浏览器的,本人的请求一开始是怎么本人产生sessionId的,原因是本人只有一次请求发生,就是最开始的时候,还望详解解答!

是服务端接收到请求后才会产生sessionid,这个sessionid是服务端和你发送请求的这个客户端(浏览器)通信的标志,没了它服务端就找不到你这个客户端了,你再理解一下session机制

20

Session对象通过request对象来获得,获得之后,该对象中会有一个SessionID的值,用来标识不同的浏览器进程。同一个浏览器进程(同一个客户端)访问某网站的多个页面都算做一个Session。
不同的浏览器进程(不同的客户端)访问某网站的同一个页面也算做多个不同的Session。SessionID是服务器与客户端会话的标记

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于HttpSession的一点疑问
喜欢 (0)
[1034331897@qq.com]
分享 (0)