1. 程式人生 > >14-碼蟻JavaWeb之會話技術cookie

14-碼蟻JavaWeb之會話技術cookie

學習地址:
撩課-JavaWeb系列1之基礎語法-前端基礎
撩課-JavaWeb系列2之XML
撩課-JavaWeb系列3之MySQL
撩課-JavaWeb系列4之JDBC
撩課-JavaWeb系列5之web伺服器-idea
課程下載地址:
連結:https://pan.baidu.com/s/1qilY0kIpgnxuLELxjNIQxw 提取碼:4s9t


什麼是會話

使用者開一個瀏覽器
點選多個超連結,訪問伺服器多個web資源
然後關閉瀏覽器,整個過程稱之為一個會話。
和打電話一樣,電話接收,開始會話,電話 結束通話,結束會話

會話技術解決什麼問題

保持各個客戶端自己的資料
每個使用者在使用瀏覽器與伺服器進行會話的過程中,
不可避免各自會產生一些資料,
程式要想辦法為每個使用者儲存這些資料

學習Cookie

伺服器怎樣把Cookie寫 給客戶端

建立Cookie
Cookie cookie = new Cookie(String cookieName,String cookieValue);
cookie會以響應頭的形式傳送給客戶端
Cookie只能儲存非中文的字串

向客戶端傳送cookie

response.addCookie(cookie名稱)
訪問
第一次訪問時, 請求頭當中沒有cookie
第一次訪問時, 響應當中會看到set-cookie
再一次訪問時, 請求頭當中就能夠看到cookie資訊
訪問伺服器的任何資源,一般情況下都會把cookie帶去過
Cookie預設儲存時間
預設cookie的會話級別
開啟瀏覽器,關閉瀏覽器為一次會話
如果不設定持久化時間,cookie會儲存在瀏覽器的記憶體中,瀏覽器關閉	cookie資訊銷燬

設定Cookie在客戶端的儲存時間

cookie.setMaxAge(int seconds);
設定的時間為秒
如果設定持久化時間,cookie資訊會被持久化到瀏覽器的磁碟檔案裡
過期會自動刪除
設定Cookie的攜帶路徑
訪問某一個資源時,要不要帶cookie資訊
如何每一外資源都攜帶,會影響傳輸速度 
如果不設定攜帶路徑
預設情況下會在訪問建立cookie的web資源相同的路徑
都攜帶cookie資訊
在myxq/CookieServlet下建立的cookie
在myxq/下的index.jsp訪問時會攜帶cookie
不是在myxq下,不會攜帶cookie

設定攜帶路徑

cookie.setPath(String path);
cookie.setPath(“/CookiePro/cookieServlet”);
只有訪問cookieServlet才攜帶cookie資訊
cookie.setPath(“/CookiePro”);
訪問指定的工程時, 都會攜帶cookie資訊
cookie.setPath(“/”);
訪問伺服器下部署的所有工程時都會攜帶cookie

刪除Cookie

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

伺服器如何獲取客戶端攜帶的cookie
通過Request物件的getCookies()方法
獲取的是所有的cookie
要進行遍歷,找出自己名稱的那一個
示例程式碼

記錄上次登入時間

博文全套 視訊講解 點選以下連結檢視
https://study.163.com/course/courseMain.htm?courseId=1005981003&share=2&shareId=1028240359