乙個客戶端為了實現某個功能和伺服器產生的多次請求和加在一起成為一次會話,會話不可避免的就會產生和會話相關的資料,這些資料如何儲存是會話技術討論的重點內容,可以使用cookie 和 session這兩種技術儲存會話相關的資料
sun公司提供了便捷的api去操作cookie:
(1)cookie c = new cookie(string name,string value); 建立cookie物件
response.addcookie(c);將cookie資訊加入響應中
(2)cookie cs = request.getcookies();從請求中獲取所有的cookie資訊組成的陣列
(3)setvalue() getvalue() 設定或獲取cookie的值
(4)getname() 獲取當前cookie的名字,沒有setname()方法,乙個cookie一旦被建立出來,名字就不能改了,如果你想改名字去建立乙個新的cookie
(5)setmaxage() getmaxage() 預設情況下,cookie資訊會被儲存在瀏覽器的記憶體中,cookie能夠儲存多長時間取決於瀏覽器什麼時候關閉,瀏覽器一旦關閉,隨著瀏覽器記憶體的銷毀,cookie也就銷毀了,像這樣的cookie我們稱之為會話級別的cookie。
如果希望cookie能夠存活指定的時間,此時可以設定cookie的maxage實行,這個屬性一旦被設定,cookie發到瀏覽器後就會被儲存在瀏覽器的臨時資料夾中,在指定的時間到來之前,這個檔案一直存在,即使多次開關瀏覽器,瀏覽器仍然可以從臨時資料夾中獲取cookie從而使用。
(6)setpath() getpath() 預設的情況下,path的值是傳送cookie的servlet的所在的路徑,在訪問這個路徑及其自路徑時會帶著cookie來訪問
http://localhost/day10/servlet/demo1 傳送cookie 沒有設定path
http://localhost/day10/servlet/這個路徑及其自路徑中會有cookie
我們也可以通過setpath()方法設定path的值,指定瀏覽器在訪問哪個位址時帶著cookie資訊來訪問
(7)setdomain與getdomain方法 設定訪問哪個網域名稱時,帶著這個cookie,像這樣的cookie我們稱之為第三方cookie,現代的瀏覽器只要是第三方cookie,預設拒絕接受,所以這方法只要設定過,瀏覽器就會識別為第三方cookie,拒絕接受
2.session是伺服器端技術:伺服器為每乙個使用者瀏覽器建立乙個獨享的session物件
session是乙個域物件
作用範圍:整個會話範圍內
生命週期:
在第一次呼叫request.getsession()方法時,建立出session,
超時:session超過一定時間(預設30分鐘,這個時間可設定)沒有人使用,則認為超時,乾掉這個session。
自殺:也可以明確的掉用session的invalidate()方法,手動的殺死session。
意外身亡:或者當伺服器非正常關閉時,伺服器中的session跟著消亡。
setattribute()
getattribute()
removeattribute()
03012 會話技術Cookie Session
1 會話技術簡介 1 儲存客戶端的技術 的購物系統,使用者將購買的商品資訊儲存到 因為http協議是無狀態的,也就是說每個客戶訪問伺服器端資源時,伺服器並不知道該客戶端是誰,所以需要會話技術識別客戶端的狀態。會話技術是幫助伺服器記住客戶端狀態 區分客戶端 2 會話技術 從開啟乙個瀏覽器訪問某個站點,...
學習會話管理
管理瀏覽器與伺服器之間的會話過程中產生的會話資料 經過分析,資料共享可以使用域物件,因為servletcontext只有乙個,導致每次向裡面放資料的時候,如果鍵相同,值就會覆蓋所以不可行.而request物件雖然是多個,但是如果要取到共享的資料,需要使用 所以也不可行.因此出現了會話管理技術 coo...
Spring Boot 會話管理
前情提要 本來專案用shiro可以用來作為會話管理,要配不少東西,且不一定有結果。並且用shiro會話管理會和devtools 熱部署包 衝突,需要剔除該包。此處不使用shiro進行會話管理,而是使用spring session redis實現session共享。1.新增依賴 org.springf...