session域對象

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();                

更多免費技術資料可關注:annalin1203

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章