jsp中session对象

来源:互联网 发布:算法导论 知乎 编辑:程序博客网 时间:2024/05/24 06:48

session的概念与基本用法   
   概念:   
   当用户与服务器连接时,服务器给每个用户一个session,并设定其中内容。   
   这些session相互独立。   
   服务器可以借此来辨别用户信息,进而提供个别服务。   
   session有存在期限。   
    
   类:   
   javax.servlet.HttpSession   
    
   内容:用于生成会话信息。   
    
   作用域:session   
    
   seesion的建立:   
   request.getSession    (true);   
    
   在session中加入和删除数据:   
   setAttribute (String,    Object)        设定指定名字的属性,并且把它存储在session对象里

   removeAttribute (String)                 删除指定属性的属性值跟属性名  
    
   取得session中变量内容:   
   getAttribute(String)                         获得指定名字的属性,如果不存在,返回null   
   getAttributeNames( )                     返回session对象中存储的每一个对象属性  
    
  
   其他常用方法:   
   getId()                                         返回session    ID   
   isNew ()                                     判定session是否为新   
   invalidate()                                注销当前的session
   getCreactionTime()                 返回session创建时间   
   getLastAccessedTime ()        返回seesion最后访问时间   
    
   session的存在期限:   
   getMaxInactiveInterval    () 返回seesion存在期限   
   setMaxInactiveInterval    () 设定seesion存在期限

注意:session对象中保存和检索的信息不能是基本数据类型,如int,double等,而必须是java的相应对象,如Integer,Double等。

session的生命周期
    在以下情况下将会结束生命
      客户端关闭浏览器
      Session过期
      服务器调用invalidate()方法


  session跟踪
  1.利用cookie进行跟踪,就是说服务器会把sessionid写入cookie中
  2.再浏览器不支持cookie下还可以采用url回写的方法,就是将sessionid写入url中进行传递
   调用的方法是, resquet.encodeURl("*.jsp")
  
 session持久化
  好处:1.再访问量过大的时候,可以把不活动的session转移到文件或者数据库中,这样可以节省服务器内存
       2.如果web服务器突然中断,或者重新启动,客户端的影响也不大
  实现的办法主要是再服务器断进行配置.