Session和Cookie知識點注意事項

 
1 會話概念:簡單的理解,當你打開瀏覽器,然後點擊超鏈接,訪問服務器資源,最後斷開鏈接就是一次會話。
  
2 Cookie常用API:

     創建Cookie:Cookie cookie = new Cookie(String name,String value),

     設置Cookie存活時間:cookie.setMaxAge();

     添加cookie到客戶端:response.addCookie(cookie);【上面三個一般都是配套使用的】

     得到所有的Cookie: Cookie[] cookies = request.getCookies();【請注意返回的是Cookie[]】

     得到Cookie的名字和值:cookie.getName,cookie.getValue

    讓cookie死亡可以設置Cookie的存活時間爲0;

3 Cookie細節和缺點

      *   更新Cookie必須保證Cookie的名一致,否則爲添加新的Cookie

      *  一個瀏覽器可以接收多個Web站點的Cookie信息

      * 一個瀏覽器存發Cookie的數目和容器有限

      *  通過程序方式刪除Cookie的name和path要一致,其中path默認即當前web應用名,比例/day06

   Cookie的缺點:1.Cookie只能接受String類型的參數;2.安全級別低,用戶可以自行刪除Cookie

4 HttpSession常用API

    獲得HttpSession:  HttpSession session = request.getSession(),

    獲得session的ID:sessin.getId();

    綁定信息到session:session.setAttribute("Name",username)

    轉發:RequestDispatcher rd = request.getRequestDispatcher("/Demo42");
               rd.forward(request,response);

5 HttpSession細節和缺點

    a)在servlet中,只能request.getSession()才能在服務端創建與之對應的HttpSession
    b)request.getSession()有二義性:
            i)創建HttpSession,無->有
            ii)查詢已存在的HttpSession,有->有
            iii)創建HttpSession時,可以使用二種方式
                              * request.getSession():返回值必須有HttpSession(舊,新HttpSession)
                              * request.getSession(false) :返回值要麼爲舊HttpSession,要麼爲null值,但不會報錯
   c)在默認情況下,每個瀏覽器獨享HttpSession,關閉後再打開,不能共享原HttpSession中的數據
   d)可以以手工方式寫一個名爲JSESSIONID的Cookie,這樣可以在多個瀏覽器中共享原HttpSession中的數據
   e)HttpSession的底層可以基於二種方式
           >>Cookie形式
           >>?jsessionid=******(即URL重寫)

  缺點:
       a)HttpSession受限於web服務器的運行內存空間
           解決方案:使用web服務器自帶的掛起和激活功能來解決HttpSession空間受限的問題
       b)創建HttpSession的代碼具有二義性,慎用

 

  

6 案例
   1)顯示用戶最近瀏覽器過的圖書
   2)購物車系統V1版
   3)用戶登錄系統V1版

7 HttpSession如何銷燬

8 什麼樣的場景下選用不同的域對象[request/session/context]

發佈了34 篇原創文章 · 獲贊 5 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章