個人學習之路_第三十三章_會話技術session&cookie

會話技術 cookie & session瀏覽器

會話技術:再一段時間內,讓服務器記得某個訪客,在此段時間內,能夠在不一樣的頁面上共享數據。就像是一通電話,只要不掛斷,在此
通電話內進行的對象(回答)就是客戶端瀏覽器和服務器之間的請求和響應。緩存


若是商店是服務器,客人是瀏覽器的話。會話就至關因而客人在商店裏註冊了會員,
發一張會員卡,會員信息都保存在卡里,卡在用戶手裏( Cookie )
商店保存會員的手機號,根據手機號能夠查找會員信息( 會員信息保存在商店的電腦裏 ) ( Session )安全


Cookie(服務器建立,客戶端使用)服務器

保存在瀏覽器磁盤上的一種會話技術cookie

寫入 Cookie : session

●Servlet中,建立Cookie對象(字符串的鍵值對)對象

Cookie cookie = new Cookie(String name,String value);生命週期

●設置Cookie 的相關參數(可省略)
路徑;在訪問本WEB項目中的哪一個路徑時攜帶Cookie(默認爲全部頁面)內存

有效期:Cookie在瀏覽器的磁盤中保存多久(默認是瀏覽器打開的期間)開發

●經過響應對象,把Cookie寫入的瀏覽器緩存(磁盤)

resp.addCookie(cookie)

Cookie在被寫入瀏覽器後,以後訪問此項目時,全部的請求中自動在請求頭中攜帶以前寫入的Cookie。(不管訪問本WEB項目中的
哪一個頁面,Cookie默認是都要攜帶的)

優勢:服務器壓力小,斷電不消失
缺點:不安全,不可靠

Cookie用法的總結:

寫: 建立對象 new Cookie(String name , String value)

設置屬性 cookie.setMaxAge()/cookie.setPath() , setMaxAge(0) 至關於刪除

寫入 resp.addCookie(cookie)

讀: Cookie[] req.getCookie() //有可能爲空

取得名和值 cookie.getName() / getValue()
其餘設置也能夠取得 getMaxAge/getPath


Session

保存在服務器內存的一種會話技術

優勢:速度快,能夠保存對象,安全可靠

缺點:項目關閉會消失,佔內存

Session生命週期:

建立:用戶第一次訪問時建立會話

銷燬:超過指定的時間內,用戶沒有再向項目發送請求(默認是30分鐘)

服務器如何區分請求是屬於哪個會話的:

經過一個叫JSESSIONID的cookie來識別的.瀏覽器在給服務器發請求時,會生成一個隨機且惟一的序列號,以JSESSIONID的名字,當成
cookie發給服務器,在某一個時間範圍內同一個瀏覽器發送給同一個WEB項目的JSESSIONID是相同的,因此對於服務器來講,只要請求中的cookie
中的JSESSIONID值相同,就表明這些請求時屬於同一個Session(會話)的.


注意:Session只有兩種狀況會銷燬:

第一種: 過時

第二種:項目的非正常關閉:正關閉項目時,Session會被寫入磁盤,下次正確啓動,保存在磁盤中的Session會被回覆到內存中.

如何使用:

如何取得Session:HttpSession req.getSession()

如何使用:Session是域對象

setAttribute()

getAttribute()

removeAttribute()

Session 所表明的範圍:某一個客戶和服務器之間的在某一段時間內的會話(在這段時間內的請求能夠用Session來共享數據)


session主要是 企業開發使用,不多用cookie

互聯網項目: 大量使用cookie(無關緊要的數據用cookie)

小總結

會話:某個訪客在一些請求之間共享數據的技術 Cookie:保存在瀏覽器磁盤 生命週期: 起始:服務器把Cookie加入響應頭髮回給瀏覽器,瀏覽器把Cookie寫入磁盤。 結束: 默認:瀏覽器關閉 設置了有效期:過時消失 瀏覽器清理Cookie 用法: 寫入: 建立Cookie對象:new Cookie( String name, String value ) 能夠設置屬性:cookie.setMaxAge( int 秒數 ) / cookie.setPath( String 客戶端的WEB路徑 ) 加入響應頭:resp.addCookie( cookie ) //不必定能寫入,由於瀏覽器能夠設置爲禁用Cookie的 讀取: Cookie是在路徑有效的狀況下在瀏覽器向服務器發請求時自動帶在請求頭中的 Cookie[] req.getCookies()//可能爲null cookie.getName() / cookie.getValue() / cookie.getPath() / cookie.getMaxAge() Session: 保存在服務器內存中的生命週期: 建立:用戶第一次訪問服務器時建立與服務器之間的會話(Session) 銷燬: 過時銷燬:項目正常關閉時,Session會被WEB服務器寫入磁盤,下次啓動時再從磁盤讀出,恢復到內存。(過時時間默認爲30分鐘) 項目非正常關閉:直接在內存中消失 使用方式: Session是域對象 setAttribute getAttribute removeAttribute

相關文章
相關標籤/搜索