一文讀懂之Cookie和Session

2021-10-02 04:13:06 字數 2228 閱讀 3256

cookie和session是為了解決http協議無狀態特性而產生的. 換句話講, cookie和session就是為了儲存請求和響應過程中的資料的. cookie是儲存在客戶端的, session是儲存在伺服器端的.

1.1 概念

cookie, 餅乾. 是儲存在客戶端的少量資訊. cookie是乙個類, 在servlet中建立, 儲存了一些少量的資訊, 之後傳送到客戶端瀏覽器, 瀏覽器進行儲存, 在後續的訪問中, 瀏覽器會自動攜帶cookie資訊傳送到伺服器端.

cookie資訊包含乙個名稱, 乙個值和若干可選的屬性. 有些瀏覽器處理可選屬性時可能由bug, 所有要謹慎使用, 常用的可選屬性有: 路徑, 域限定符和最大存活時間.

1.2 **實現

public

}

1.3 cookie的特點

1.4 獲取cookie

cookie[

] cookies = req.

getcookies()

;for

(cookie cookie : cookies)

2.1 概念

session, 會話. 用來在伺服器端儲存使用者資訊, 實現跨頁面和多次訪問時標識客戶. 而session的跟蹤需要依賴cookie, session建立時, 會自動建立乙個cookie叫jsessionid, 用來記錄session的編號, 傳送到客戶端瀏覽器進行儲存, 後續客戶端會攜帶cookie繼續訪問伺服器, 通過jsessionid可以定位到session.

2.2 session的生命週期

public

}

作用域, 指的是乙個儲存空間, 在不同情況下用來儲存一些資訊. 一共有三種作用域, 分別是: httpservletrequest, httpsession, servletcontext. 使用作用域時, 掌握三個方法即可: setattribute, getattribute, removeattribute.

3.1request作用域

對應的物件是httpservletrequest, 生命週期: 一次請求, 只有在這次請求中才有效. 當使用request作用域時, 頁面跳轉方式只能使用請求**.

// 向作用域存放資料

req.

setattribute

("reqid"

, reqid)

;// 從作用域取值

object attr = req.

getattribute

("reqid");

// 從作用域刪除值

req.

removeattribute

("reqid"

);

3.2session作用域

對應的物件是httpsession, 生命週期: 第一次請求到來時建立session, session失效分為三種情況:

// 向作用域存放資料

req.

getsession()

.setattribute

("sid"

, sid)

;// 從作用域取值

object attr = req.

getsession()

.getattribute

("sid");

// 從作用域刪除值

req.

getsession()

.removeattribute

("sid"

);

對應的物件是servletcontext, 生命週期: 應用部署時被建立, 應用解除安裝或伺服器關機時被銷毀. 被所有使用者共享.

// 向作用域存放資料

getservletcontext()

.setattribute(;

// 從作用域取值

object attr =

getservletcontext()

.getattribute()

;// 從作用域刪除值

getservletcontext()

.removeattribute()

;

一文讀懂Nginx

問 nginx的負載均衡演算法有什麼?預設是什麼演算法?答 1 輪詢 按請求的時間輪詢查空閒的後端伺服器 2 指定輪詢機率 機率的原因是後端伺服器的效能不均勻,好的多分點,差的少分點 3 固定ip繫結固定伺服器 預設是加權輪詢,就是優先訪問權重高的伺服器 問 nginx是單執行緒的嗎?答 是單執行緒...

一文讀懂SpringMVC

主要講的是dispatcherservlet這個類 ioc其實是乙個map,工程啟動後掃瞄路徑,根據類的全限定名建立bean 問 怎麼根據路徑找到方法?map還存key為 aaa value為該controller例項 問 autowired原理?自定義註解,在載入的時候,掃瞄controller層...

堆疊 一文讀懂

堆疊 stack 是一種先進後出的 操作受限的線性表,也可以直接稱為棧。可以把棧想象成乙個桶一樣,往這個桶裡面一層一層的放東西,先放進去的在裡面,後放進去的東西依次在外面。但取東西的時候就是先取靠近外面的,再依次一層層取裡面的。這就是 後進先出 last in first out 的原則。因此 棧 ...