本人首先清空了浏览器的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
是服务端接收到请求后才会产生sessionid,这个sessionid是服务端和你发送请求的这个客户端(浏览器)通信的标志,没了它服务端就找不到你这个客户端了,你再理解一下session机制
20
Session对象通过request对象来获得,获得之后,该对象中会有一个SessionID的值,用来标识不同的浏览器进程。同一个浏览器进程(同一个客户端)访问某网站的多个页面都算做一个Session。
不同的浏览器进程(不同的客户端)访问某网站的同一个页面也算做多个不同的Session。SessionID是服务器与客户端会话的标记
不同的浏览器进程(不同的客户端)访问某网站的同一个页面也算做多个不同的Session。SessionID是服务器与客户端会话的标记