會話技術的Cookie、Session介紹及Servlet域對象總結

會話技術的概述

  • 用戶打開一個瀏覽器,點擊多個超鏈接訪問服務器的web資源,然後關閉瀏覽器,整個過程成爲一次會話。
  • 每個用戶和服務器進行交互過程中,產生一些各自的數據,程序想要把這些數據進行保存,就需要使用會話技術。

在這裏插入圖片描述

會話技術的實現原理

  • cookie:cookie是客戶端技術,程序把每個用戶的數據以cookie的形式存到各自的瀏覽器中。當用戶使用瀏覽器再次訪問服務器中的web資源的時候,就會帶着各自的數據過去。這樣,web資源處理的就是用戶各自的數據了。
    在這裏插入圖片描述
  • session:session是服務器端技術,利用這個技術,服務器在運行的時候爲每一個用戶創建一個獨享的session對象。由於session爲用戶瀏覽器獨享,所有用戶在訪問服務器的時候,可以把各自的數據放在各自的session中,當用戶再次訪問服務器中的web資源時,其他web資源再從用戶各自的session中取出數據爲用戶服務。
    在這裏插入圖片描述

Cookie分類

  • 默認級別的Cookie
    指沒有設置有效時間的Cookie,默認的情況下只要關閉了瀏覽器,Cookie也會被銷燬。(Cookie存在於瀏覽器的內存中,當關閉了瀏覽器Cookie就銷燬了。)

  • 持久級別的Cookie
    指有有效時間的Cookie,這種Cookie的內容不是保存在瀏覽器的內存中,而是保存在本地硬盤上。

  • Cookie的使用細節

    • 一個cookie只用標識一種信息,至少含有一個標識該信息的名稱和值;
    • 一個web站點可以給一個瀏覽器發送多個Cookie,一個瀏覽器可以存儲多個web站點的Cookie;
    • 瀏覽器存放的cookie的大小和個數是有限制的;
    • 默認被創建的cookie是會話級別的,關閉瀏覽器則摧毀;
    • 需要手動刪除持久性的Cookie,可以將有效時長改爲0,注意:path需一致,否則無法刪除。

Session概述

  • Session與cookie的區別
    • Session沒有個數和大小的限制

    • 數據是保存在服務器上的(相對安全)

  • Session如何保存用戶數據
    Session對象由服務器創建,開發人員可以調用request對象的getSession方法得到Session對象。
    在這裏插入圖片描述
  • Session的實現原理
    是基於Cookie的,基與Cookie回寫了一個Session的id。
    在這裏插入圖片描述
  • Session做爲域對象存取數據
    • 存入:SetAttribute
    • 取出:GetAttribute
    • 移除:RemoveAttribute
    • 作用範圍:一次會話。指的是用戶打開瀏覽器訪問服務器資源,到最後關閉瀏覽器的過程。

Servlet的數據訪問範圍的總結

  • Servlet域對象的總結
    • 請求範圍(ServletRequest)
      • 何時創建和銷燬的:請求創建,響應銷燬。
      • 如何存取數據:傳值類型爲object。
      • 作用範圍:一次請求。
    • 會話範圍(HttpSession)
      • 何時創建和銷燬的:服務器端第一次調用getSession()方法即創建。銷燬:①Session過期,默認過期時間爲30分鐘;②非正常關閉服務器;③手動調用session.invalidate()。
      • 如何存取數據:傳值類型爲object。
      • 作用範圍:一次會話。
    • 應用範圍(ServletContext)
      • 何時創建和銷燬的:服務器啓動時創建,爲每個web項目創建一個單獨的ServletContext對象。銷燬:服務器關閉時,或者項目從服務器中移除。
      • 如何存取數據:傳值類型爲object。
      • 作用範圍:整個web項目。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章