同一服务器上不同的request请求为什么能取得相同的Session对象

Http请求通过Session和Cookie保持会话。

Session生成时机:request对象调用getSession方法时生成,服务器会为该Session对象生成一个唯一的ID。

服务器端响应客户端请求时会在报文头中设置Set-Cookie属性,该属性内容中有一个JSESSIONID即是Session对象的标识,返回后由浏览器进行处理。

客户端再次发送请求时,浏览器会在报文头中自动追加Cookie属性,该属性将JSESSIONID传到服务器端。在服务器端用request.getSession时会取得SessionId对应的对象而不会重新生成Session。

上述内容可用各种抓包工具自行查看。


Session销毁时机:

1、到达web服务设定的Session过期时间。

2、web服务停止。

3、手动调用session对象的invalidate方法。


Session的创建和销毁可以通过HttpSessionListener来监听,该监听器配置在web.xml中。

你可能感兴趣的:(同一服务器上不同的request请求为什么能取得相同的Session对象)