zoukankan      html  css  js  c++  java
  • Tomcat的session

    创建session 
    在具体说明session的创建过程之前,先看一下BS访问模型:  

    1. browser发送Http request;
    2. tomcat内核Http11Processor会从HTTP request中解析出“jsessionid”(具体的解析过程为先从request的URL中解析,这是为了有的浏览器把cookie功能禁止后,将URL重写考虑的,如果解析不出来,再从cookie中解析相应的jsessionid),解析完后封装成一个request对象(当然还有其他的http header);
    3. servlet中获取session,其过程是根据刚才解析得到的jsessionid(如果有的话),从session池(session maps)中获取相应的session对象;这个地方有个逻辑,就是如果jsessionid为空的话(或者没有其对应的session对象,或者有session对象,但此对象已经过期超时),可以选择创建一个session,或者不创建;
    4. 如果创建新session,则将session放入session池中,同时将与其相对应的jsessionid写入cookie通过Http response header的方式发送给browser,然后重复第一步。

    (Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密))
    以上是session的获取及创建过程。在servlet中获取session,通常是调用request的getSession方法。

    服务器端是怎么判断会话过期的呢?原理服务器会启动一个线程,一直查询所有的Session对象,检查不活动的时间是否超过设定值,如果超过就将其删除。

    Session会话信息不会一直在服务器端保存,超过一定的时间期限就会被删除,这个时间期限可以在 web.xml中进行设置,不设置的话会有一个默认值,Tomcat的默认值是60.

  • 相关阅读:
    一些关于HDFS的基本知识
    WordPress使用子主题继承和修改主题
    IQueryable、IQueryProvider接口详解
    FM并发编程练习:改写苏飞的C#多线程网站压力测试程序
    利用Webkit抓取动态网页和链接
    HTTP协议之代理
    PortalBasic Java Web 应用开发框架 v3.0.1 即将发布
    算法导论1.排序算法
    CSS题目 子元素决定父元素的大小
    使用solrj和EasyNet.Solr进行原子更新
  • 原文地址:https://www.cnblogs.com/gaoxiangde/p/4340339.html
Copyright © 2011-2022 走看看