java基礎 會話技術Cookie Session

2021-08-06 01:25:05 字數 2778 閱讀 3395

從開啟乙個瀏覽器訪問某個站點,到關閉這個瀏覽器的整個過程,成為一次會話。會話技術就是記錄這次會話中客戶端的狀態與資料的。

會話技術分為cookie和session:

cookie:資料儲存在客戶端本地,減少伺服器端的儲存的壓力,安全性不好,客戶端可以清除cookie

session:將資料儲存到伺服器端,安全性相對好,增加伺服器的壓力

cookie技術是將使用者的資料儲存到客戶端的技術,我們分為兩方面學習:

第一,伺服器端怎樣將乙個cookie傳送到客戶端

第二,伺服器端怎樣接受客戶端攜帶的cookie

1.伺服器端向客戶端傳送乙個cookie

1)建立cookie:

cookie cookie = new cookie(string cookiename,string cookievalue);

示例:cookie cookie = new cookie("username","zhangsan");

那麼該cookie會以響應頭的形式傳送給客戶端:

注意:cookie中不能儲存中文

cookie.setmaxage(int seconds); ---

時間秒

注意:如果不設定持久化時間,

cookie

會儲存在瀏覽器的記憶體中,瀏覽器關閉

cookie

資訊銷毀(會話級別的

cookie

),如果設定持久化時間,

cookie

資訊會被持久化到瀏覽器的磁碟檔案裡

示例:cookie.setmaxage(10*60);

設定cookie資訊在瀏覽器的磁碟檔案中儲存的時間是10分鐘,過期瀏覽器自動刪除該cookie資訊

3)設定cookie的攜帶路徑:

cookie.setpath(string path);

注意:如果不設定攜帶路徑,那麼該

cookie

資訊會在訪問產生該

cookie

的web

資源所在的路徑都攜帶

cookie資訊

示例:cookie.setpath("/web16");代表訪問web16應用中的任何資源都攜帶cookie

cookie.setpath("/web16/cookieservlet");代表訪問web16中的cookieservlet時才攜帶cookie資訊

4)向客戶端傳送cookie:

response.addcookie(cookie cookie);

5)刪除客戶端的cookie:

如果想刪除客戶端的已經儲存的cookie資訊,那麼就使用

同名同路徑的持久化時

間為0的cookie進行覆蓋即可.

cookie資訊是以請求頭的方式傳送到伺服器端的:

1)通過request獲得所有的cookie:

cookie cookies = request.getcookies();

2)遍歷cookie陣列,通過cookie的名稱獲得我們想要的cookie

for(cookie cookie : cookies)

}

session技術是將資料儲存在伺服器端的技術,會為每個客戶端都建立一塊記憶體空間     儲存客戶的資料,但客戶端需要每次都攜帶乙個標識id去伺服器中尋找屬於自己的內 存空間。所以說session的實現是基於cookie,session需要借助於cookie儲存客戶的唯一性標識jsessionid。

在session這我們需要學習如下三個問題:

怎樣獲得屬於本客戶端的session物件(記憶體區域)?

怎樣向session中訪問資料(session也是乙個域物件)?

session物件的生命週期?

1.獲得session物件

此方法會獲得專屬於當前會話的session物件,如果伺服器端沒有該會話的session    物件會建立乙個新的session返回,如果已經有了屬於該會話的session直接將已有   的session返回(實質就是根據jsessionid判斷該客戶端是否在伺服器上已經存在  session了)

session也是儲存資料的區域物件,所以session物件也具有如下三個方法:

session.setattribute(string name,object obj);

session.getattribute(string name);

session.removeattribute(string name);

建立:第一次執行request.getsession()時建立

銷毀:1)伺服器(非正常)關閉時

2)session過期/失效(預設30分鐘)

問題:時間的起算點 從何時開始計算30分鐘?

從不操作伺服器端的資源開始計時

可以在工程的web.xml中進行配置 30

3)手動銷毀session

session.invalidate();

作用範圍:

預設在一次會話中,也就是說在,一次會話中任何資源公用乙個session物件

java會話技術

一次會話中包含多次請求和響應 一次會話 瀏覽器第一次給伺服器傳送請求,會話建立,直到有一方斷開為止功能 在一次會話範圍內的多次請求間,共享資料 方式 1 客戶端會話技術 cookie 2 伺服器端會話技術 session 概念 客戶端會話技術,將資料儲存在客戶端 快速入門 使用步驟 1 建立cook...

jQuery設定 獲取瀏覽器會話Cookie

jquery 段可為使用者會話設定 獲取瀏覽器cookie。當使用者單擊某些內容時,這可以用於儲存檢視狀態。下面的示例顯示cookie被儲存以儲存元素的可見性。event to hide element element hide cookie cookie name not in view even...

會話及其會話技術(三)

瀏覽器與伺服器建立一次請求與對話的過程。sesssionid 類似於診療卡 session基於cookie來實現的 sessionid產生過程 瀏覽器訪問web伺服器,servlet容器會建立乙個session物件和id屬性 session物件 病歷檔案 id 醫療卡 客戶端後續訪問伺服器,只傳遞標...