Java中的會話Cookie&&Session

會話技術

  1. 會話: 一次會話中包含屢次請求和響應.
    • 一次會話:瀏覽器第一次給服務器資源發送請,會話創建,直到有一方斷開爲止
    • 功能:在一次會話的範圍內的屢次請求之間共享數據
    • 方式:
      1. 客戶端會話技術:cookie
      2. 服務器端和會話技術:sessionweb

  2. 概念: 客戶端會話技術,將數據保存在客戶端
  3. 快速入門:
    • 使用步驟
      1. 建立cookie對象,綁定數據
        • new Cookie(String name,String value)
      2. 發送cookie對象
        • response.addCookie(Cookie cookie)
      3. 獲取cookie拿到數據
        • Cookie[] request.getCookies()
  4. 實現原理:
    • 基於響應頭的set-cookie和請求頭cookie實現
  5. cookie的細節
    1. 一次可不能夠發送多個cookie?
      • 能夠建立多個Cookie對象,使用response調用屢次addcookie方法發送cookie便可;
    2. cookie在瀏覽器中保存時間?
      1. 默認狀況下,當瀏覽器關閉後,cookie對象即銷燬
      2. 設置cookie的持久化存儲
        • setMaxAge(int seconds)
          1. 正數:將cookie數據寫到硬盤的文件中.持久化存儲,cookie存活時間
          2. 負數:關閉瀏覽器後cookie對象銷燬
          3. 0:銷燬cookie
    3. cookie中能不能存中文?
      • 在tomcat8以前不支持中文,須要轉碼
      • tomcat8支持中文
    4. cookie共享問題?
      1. 假設一個tomcat下部署多個web項目,那麼在這些web項目下cookie能不能共享?
        • 默認狀況下不能共享
        • setPath(String path):設置cookie的取值範圍.默認狀況下設置爲當前的虛擬目錄
        • 若是要共享,則能夠將path設置爲"/";
      2. 不一樣的tomcat服務器間cookie如何共享
        • setDomain(String path):若是設置一級域名相同,那麼多個服務器之間cookie能夠共享
    5. cookie的特色和做用
      1. cookie儲存數據在客戶端
      2. 瀏覽器對於單個cookie的大小有限制(4kb)以及同一個域名下的總cookie數量也有限制(20個)
      • 做用:
        1. cookie通常用於儲存少許不太敏感的數據
        2. 在不登錄的狀況下,完成服務器對客戶端的身份識別

Session

  1. 概念:服務器端會話技術,在一次會話的屢次請求之間共享數據,將數據保存在服務器的對象中
  2. 快速入門
    1. 獲取HttpSession對象
      • HttpSession session=request.getSession();
    2. 使用HttpSession對象
      • setAttribute(String name,Object object)
      • Object getAttribute()
      • removeAttribute(String name)
    3. 原理:session的實現是依靠cookie的
    4. 細節:
      1. 當客戶端關閉時服務器端不關閉,獲取的session是同一個嗎?
        • 默認不是,若是須要相同,則能夠建立cookie 設置鍵爲JESSIONID,存活時間
      2. 當服務器關閉,客戶端不關閉獲取的session是同一個嗎?
        • 不是同一個,可是要確保數據不丟失
        • session的鈍化
          • 在服務器正常關閉以前將session對象系列化帶硬盤
        • session的活化
          • 在服務器啓動後,將session文件轉化爲內存中的session對象
      3. session是麼時候被銷燬
        1. 服務器關閉時
        2. session對象調用invalidate().
        3. session默認失效時間:30分鐘

        • 30
  3. session的特色
    1. session用於存儲一次會話的屢次請求數據,存在服務器端
    2. session能夠存儲任意類型,任意大小的數據
  • Session與Cookie的區別
    1. session儲存數據在服務器端,cookie在客戶端
    2. session沒有數據大小限制,cookie有
    3. session數據安全,cookie相對於不安全
      d1b6b30c56f7c4bfac5f529942fd7de4.png
相關文章
相關標籤/搜索