Cookie Session會話技術

2022-05-16 20:13:55 字數 3967 閱讀 4832

一.會話技術

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

2)會話技術分為cookie和session:

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

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

二、cookie技術

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

1)建立cookie:

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

注意:cookie中不能儲存中文 。

cookie.setmaxage(int seconds); ---時間秒

注意:如果不設定持久化時間,cookie會儲存在瀏覽器的記憶體中,瀏覽器關閉  cookie資訊銷毀(會話級別的cookie),如果設定持久化時間,cookie資訊會被持久化到瀏覽器的磁碟檔案裡

3)設定cookie的攜帶路徑:

cookie.setpath(string path);

注意:如果不設定攜帶路徑,那麼該cookie資訊會在訪問產生該cookie的 web資源所在的路徑都攜帶cookie資訊

4)向客戶端傳送cookie:

response.addcookie(cookie cookie);

5)刪除客戶端的cookie:

如果想刪除客戶端的已經儲存的cookie資訊,那麼就使用同名同路徑的持久化時間為0的cookie進行覆蓋即可;

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

cookie cookies = request.getcookies();

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

for(cookie cookie : cookies){

if(cookie.getname().equal(cookiename)){

string cookievalue = cookie.getvalue();

三、session技術

1.獲得session物件

* request.getsession()方法內部會判斷,該客戶端是否在伺服器端已經存在session;

* 如果客戶端在此伺服器不存在session,那麼就會建立乙個session物件;

* 如果客戶端在此伺服器存在session,獲取已經存在的該session返回(實質就是根據jsessionid判斷該客戶端是否在伺服器上已經存在 session了);

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

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

session.setattribute(string name,object obj);

session.getattribute(string name);

session.removeattribute(string name);

3.session物件的生命週期(面試題/筆試題)

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

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

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

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

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

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

303)手動銷毀session

session.invalidate();

作用範圍:

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

一.會話技術

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

2)會話技術分為cookie和session:

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

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

二、cookie技術

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

1)建立cookie:

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

注意:cookie中不能儲存中文 。

cookie.setmaxage(int seconds); ---時間秒

注意:如果不設定持久化時間,cookie會儲存在瀏覽器的記憶體中,瀏覽器關閉  cookie資訊銷毀(會話級別的cookie),如果設定持久化時間,cookie資訊會被持久化到瀏覽器的磁碟檔案裡

3)設定cookie的攜帶路徑:

cookie.setpath(string path);

注意:如果不設定攜帶路徑,那麼該cookie資訊會在訪問產生該cookie的 web資源所在的路徑都攜帶cookie資訊

4)向客戶端傳送cookie:

response.addcookie(cookie cookie);

5)刪除客戶端的cookie:

如果想刪除客戶端的已經儲存的cookie資訊,那麼就使用同名同路徑的持久化時間為0的cookie進行覆蓋即可;

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

cookie cookies = request.getcookies();

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

for(cookie cookie : cookies){

if(cookie.getname().equal(cookiename)){

string cookievalue = cookie.getvalue();

三、session技術

1.獲得session物件

* request.getsession()方法內部會判斷,該客戶端是否在伺服器端已經存在session;

* 如果客戶端在此伺服器不存在session,那麼就會建立乙個session物件;

* 如果客戶端在此伺服器存在session,獲取已經存在的該session返回(實質就是根據jsessionid判斷該客戶端是否在伺服器上已經存在 session了);

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

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

session.setattribute(string name,object obj);

session.getattribute(string name);

session.removeattribute(string name);

3.session物件的生命週期(面試題/筆試題)

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

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

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

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

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

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

303)手動銷毀session

session.invalidate();

作用範圍:

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

會話技術Cookie Session

1 儲存客戶端的狀態 由乙個問題引出今天的內容,例如 的購物系統,使用者將購買的商品資訊儲存到 因為http協議是無狀態的,也就是說每個客戶訪問伺服器端資源時,伺服器並不知道該客戶端是誰,所以需要會話技術識別客戶端的狀態。會話技術是幫助伺服器記住客戶端狀態 區分客戶端 2 會話技術 從開啟乙個瀏覽器...

會話技術Cookie Session

一 會話技術簡介 由乙個問題引出今天的內容,例如 的購物系統,使用者將購買的商品資訊儲存到哪 裡?因為http協議是無狀態的,也就是說每個客戶訪問伺服器端資源時,伺服器並 不知道該客戶端是誰,所以需要會話技術識別客戶端的狀態。會話技術是幫助伺服器 記住客戶端狀態 區分客戶端 從開啟乙個瀏覽器訪問某個...

會話管理 Cookie Session

乙個客戶端為了實現某個功能和伺服器產生的多次請求和加在一起成為一次會話,會話不可避免的就會產生和會話相關的資料,這些資料如何儲存是會話技術討論的重點內容,可以使用cookie 和 session這兩種技術儲存會話相關的資料 sun公司提供了便捷的api去操作cookie 1 cookie c new...