1. 程式人生 > 實用技巧 >javaWeb學習筆記之關於Cookie和Session

javaWeb學習筆記之關於Cookie和Session

1、儲存會話的兩種方式

  • cookie

    客戶端技術(響應,請求)

  • session

    服務端技術,可以儲存使用者的會話資訊

常見場景:登入一個網站,關掉時候下次進入可以不用登入

2、Cookie

  1. 從請求中拿到cookie資訊
  2. 服務端響應給客戶端cookie
Cookie[] cookies = req.getCookies(); //獲得Cookie 
cookie.getName(); //獲得cookie中的key 
cookie.getValue(); //獲得cookie中的vlaue 
new Cookie("lastLoginTime", System.currentTimeMillis()+""); //新建一個cookie cookie.setMaxAge(24*60*60); //設定cookie的有效期
resp.addCookie(cookie); //響應給客戶端一個cookie

cookie:一般會儲存在本地使用者目錄下appdata中

考點:一個網站的cookie是否會有上限

  • 一個cookie只能儲存一個資訊
  • 一個web站點可以給瀏覽器傳送多個cookie,最多存放20個
  • cookie的大小有限制(4kb)
  • 300個cookie是瀏覽器上限

刪除cookie

  • 不設定有效期,關閉瀏覽器,自動失效
  • 設定有效時間為0

編碼解碼

URLEncoder.encode("測試","utf-8"); 
URLDecoder.decode(cookie.getValue(),"UTF-8")

3、Session

什麼是session:

  • 伺服器會給每一個使用者(瀏覽器)建立一個Session物件;
  • 一個Seesion獨佔一個瀏覽器,只要瀏覽器沒有關閉,這個Session就存在;
  • 使用者登入之後,整個網站它都可以訪問,例如 儲存使用者的資訊;儲存購物車的資訊…..

Session和Cookie的區別

  • Cookie是把使用者的資料寫給使用者的瀏覽器(客戶端),由瀏覽器儲存
  • Session是把使用者的資料寫到使用者獨佔的Session中,伺服器端儲存(儲存重要的資訊,減少伺服器資源的浪費)
  • Session物件由伺服器建立

使用Session: