jsessionid什么时候生成的,jsessionid是什么意思

  jsessionid什么时候生成的,jsessionid是什么意思

  Jssessionid只是tomcat对sessionid的称呼,实际上是session id;在其他容器中,可能不叫jsessionid。

  首先讲一下web开发中session对象的创建以及生成sessionId并返回给客户端的运行机制。

  如何解决写爬虫IP受阻的问题?立即使用。

  Session对象当客户端第一次访问它的时候,创建一个新的session对象,同时生成一个sessionId,并且在这个响应中,将sessionId以响应消息的形式返回到客户端浏览器内存或者以重写url的形式发回给客户端,这样就可以保持整个会话,只要服务器端的session对象不被破坏, 以后调用request.getSession()时,服务器生成的Session对象会直接根据客户端的sessionId检索并返回,不会重新创建,除非不是根据这个sessionId检索session对象。

  下面是在IE下的测试,因为IE6.0的一个BUG是,即使屏蔽了所有cookie,IE的隐私设置还是会保存sessionId和session cookies。所以下面都是用会话cookies来讨论的。

  (1)当服务器没有关闭,session对象被销毁时,当客户端再次请求服务器端的servlet或jsp时,第一次请求中生成的sessionId会被附加在请求头中发送到服务器端。服务器收到sessionId后,会根据这个sessionId搜索服务器对应的session对象(这个过程是透明的),直接返回这个session对象。此时,它不会重新建立新的会话对象。

  (2)当服务器关闭时(之前生成的session对象会消亡),或者session对象过了它的销毁时间后,浏览器窗口没有关闭,在这个浏览器窗口中再次请求服务器端的servlet和jsp,这时sessionId(服务器关闭或session被销毁时生成的)也会发送到服务器, 并且服务器会根据sessionId找到其对应的session对象,但此时session对象已经不存在了,会产生新的session对象,新产生的sessionId也会以响应消息的形式发送到浏览器内存中。

  (3)当服务器没有关闭,session对象在其时间内被销毁,当一个jsp页面被请求回客户端时,浏览器窗口被关闭,然后其内存中的sessionId就会被销毁。当服务器端的servlet或jsp再次被请求时,一个sessionId将被重新生成到客户端浏览器并存储在浏览内存中。

  综上所述,jsessionid的工作流程可以简单的用下图来表示:

  以上是jsessionid如何产生的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: