14-碼蟻JavaWeb之會話技術cookie

什麼是會話

用戶開一個瀏覽器
點擊多個超鏈接,訪問服務器多個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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章