cookie與會話session

會話概述

  • 如同一次電話通話,屢次交談就是請求和響應,一旦斷開就結束了瀏覽器

  • 會話中要解決的問題,屢次請求數據的的保持問題緩存

客戶端技術Cookie

  • 一、HTTP協議的消息頭服務器

    • 請求消息頭:Cookie 客戶端向服務器端傳遞信息cookie

    • 響應消息頭:Set-Cookie 服務器端向客戶端傳遞信息session

  • 二、Cookie詳解:dom

    • 屬性:網站

      • name:Cookie的名稱,必要的屬性code

      • value:Cookie的取值(不能爲中文),必要的屬性對象

      • -------------------如下爲可選屬性內存

      • path:Cookie的路徑

      • 默認值就是寫cookie的那個資源的訪問路徑
        好比:http://localhost:8080/day09_0... path就是/day09_00_cookie/servlet/

- 注意:
- 若是一個存在瀏覽器緩存中的cookie的路徑是/day09/servlet/,當訪問http://localhost:8080/day09/CookiePathDemo1時,瀏覽器根本不帶Cookie給服務器。瀏覽器比對的是cookie的路徑和當前訪問的資源的路徑。

- 瀏覽器知足一下條件就會帶cookie給服務器:
- 當前訪問的地址的路徑.startWith(已存cookie的路徑)。
- 即:若是一個Cookie的路徑設置爲了當前應用,說明訪問該網站的任何資源時瀏覽器都帶該cookie給服務器。(開發中常常作的)

- maxAge:Cookie的最大生存時間。默認是在瀏覽器的內存中。
- domain:Cookie的域名(網站)。默認就是寫cookie的那個資源所屬的網站。http://localhost:8080/day09_00_cookie/servlet/CookieDemo1域名就是localhost

- version:版本號
- comment:註釋

把Cookie寫給客戶端:

  • HttpServletResponse.addCookie(Cookie c):實際上就是向客戶端發送了一個響應消息頭。

  • 注意:客戶端只能保存一個網站最多20個Cookie數據,總共最多300個。每一個Cookie的大小不能超過4kb。

服務器端獲取客戶端帶來的Cookie:

  • Cookie [] HttpServletRequest.getCookies();

  • 注意:domain+path+name惟一肯定一個Cookie。

服務器端技術HttpSession

  • HttpSession是一個域對象

  • HttpSession的原理(藉助cookie)

  • HttpSession.getSession() :先查(按照session的id來查), 沒有再建立

  • 案例

    簡單購物車
    用戶登陸和驗證碼驗證
    防止表單的重複提交

客戶端禁用cookie後會話數據保持問題

  • URL重寫

相關文章
相關標籤/搜索