zoukankan      html  css  js  c++  java
  • jsessionid介绍及怎么产生

    Jsessionid就是sessionid;Tomcat容器中就是叫jsessionid。

    浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。它存储在服务器的内存中,tomcat的StandardManager类将session存储在内存中,也可以持久化到文件等保存

    客户端只保存sessionid到cookie中,而不会保存session,session销毁只能通过invalidate或超时,关掉浏览器并不会关闭session。


    (1)、在server没有关闭,并在session对象销毁时间内,当客户端再次来请求server端的servlet或jsp时, 将会将在第一次请求时生成的sessionId并附带在请求信息头中并向server端发送,server端收到sessionId后根据此 sessionId会去搜索server对应的session对象并直接返回这个session对象,此时不会重新去建立一个新的 session对象.

    (2)、当server关闭(之前产生的session对象也就消亡了),或session对象过了其销毁时间后, 浏览器窗口不关,并在本浏览器窗口再次去请求sever端的servlet和jsp时,此时同样会将sessionId(server关闭或 session销毁时生成的sessionId)发送到server端,server根据sessionId去找其对应的session对象,但此时 session对象已经不存在,此时会重新生成一个新的session对象,并生成新的sessionId并同样将这个新生成的sessionId以响应报文的形式送到浏览器内存中,重新更新
    cookie

    (3)、当server没有关闭,并session对象在其销毁时间内,当请求一个jsp页面回客户端后, 关闭此浏览器窗口,此时其内存中的sessionId也就随之销毁,在重新去请求sever端的servlet或jsp时,会重新生成一个 sessionId给客户端浏览器,并存在浏览内存中.

    总结,工作流程可以简单用下面的图表示:

     

  • 相关阅读:
    WCF开发入门的实例
    转:SQLHelper类,泛型+反射
    设置ASP缓存的几个语句
    ADO.NET总结
    通过反射来实现:DataTable 和List 相互转换
    十步完成windows服务的安装
    dhl:The request for security token could not be satisfied because authentication failed. 调用方未由服务进行身份验证。
    C#中的readonly(运行时常量)与const(编译时常量)的区别
    用do{}创建内联子程序
    用autodie简化错误处理
  • 原文地址:https://www.cnblogs.com/zhukaile/p/15612383.html
Copyright © 2011-2022 走看看