Session 
 
有效范围当前会话,从浏览器打开到浏览器关闭这个过程。  
 
HttpSession和Cookie的区别 
a)HttpSession数据存在服务器,Cookie数据存在浏览器上 
b)Cookie存放数据是有大小限制的,HttpSession没有 
        cookie得大小是最大4k,Cookie的个数每个浏览器不同 
c)Cookie不安全,HttpSession安全 
 
 
HttpSession何时创建和销毁?作用范围: 
        创建:服务器端第一次调用getSession()创建HttpSession. 
        销毁:三种情况销毁session: 
                1.session过期. 默认过期时间为30分钟. 
                2.非正常关闭服务器.如果正常关闭session序列化到硬盘. 
                        正常关闭服务器的话,session会被序列化到本地,在项目目录下会生成一个SESSIONS.ser文件,下次再打开服务器后,该文件会被反序列化. 
                3.手动调用session.invalidate(); 
        作用范围:浏览器没有被彻底关闭之前的请求 
         
         
服务器端一旦为浏览器创建session后,,浏览器端访问该页面时会携带一个cookie信息(请求头) 
Cookie        JSESSIONID=967DD636E09AF2E1D727A4FEAD6629E8 
 
 
HttpSession创建的注意事项 
        a)IE8文件选项里的新建会话的方式去打开新的窗口访问页面,服务器则会为新的浏览器窗口重新创建一个新的session 
        b)浏览器中的隐私浏览去打开新的窗口访问页面,服务器则会为新的浏览器窗口重新创建一个新的session 
        c)正常情况下,开启浏览器后只要不是彻底关闭浏览器的话,访问页面则会公用同一个session 
        d)注意:服务器正常关闭,再启动,Session对象会进行钝化和活化操作。同时如果服务器钝化的时间在session 默认销毁时间之内,则活化后session还是存在的。否则Session不存在。如果JavaBean 数据在session钝化时,没有实现Serializable 则当Session活化时,会消失。 
 
【HttpSession的问题】 
        访问Servlet会不会创建Session        : 不会 
        访问JSP会不会创建Session                :会.  
        访问html会不会创建Session                :不会         
 
         
 
作为域对象进行存取数据 
 
        a) 保存属性 
                void         setAttribute(String name,Object value); 
        b) 取出属性 
                Obejct         getAttribute(String name); 
        c) 移除属性         
                void         removeAttribute(String name); 
 
 
设置session过期时间 
 
        a)在web.xml配置seesion-config标签 
         
                销毁session的话需要在web.xml文件中配置 
                          <session-config> 
                                   <!-- session在1分钟之后就被销毁 --> 
                                   <session-timeout>1</session-timeout> 
                          </session-config> 
                           
        b)代码设置 
         
                HttpSession session = request.getSession(true);   
                session.setMaxInactiveInterval(900); 
 
        c)tomcat默认过期时间是30分钟 
 
        d)手动销毁seesion 
         
                HttpSession session = request.getSession(true);  
                session.invalidate();                 
                 |   
        
 
    
    
    
     
 
 |