1.Cookies的原理
1)首先瀏覽器向伺服器發出請求。
2)伺服器就會根據需要生成一個Cookie物件,並且把資料儲存在該物件內。
3)然後把該Cookie物件放在響應頭,一併傳送回瀏覽器。
4)瀏覽器接收伺服器響應後,提出該Cookie儲存在瀏覽器端。
5)當下一次瀏覽器再次訪問那個伺服器,就會把這個Cookie放在請求頭內一併發給伺服器。
6)伺服器從請求頭提取出該Cookie,判別裡面的資料,然後作出相應的動作。
2.Cookie程式
建一個response_addCookie.jsp的檔案,主要程式碼為:
<% //服務端 Cookie cookie1 = new Cookie("name","mwf"); Cookie cookie2 = new Cookie("pwd","123456"); response.addCookie(cookie1); response.addCookie(cookie2); //頁面跳轉到客戶端(轉發、重定向) response.sendRedirect("result.jsp"); %>
建一個result.jsp檔案,獲取得到的Cookie值,主要程式碼為:
<% //客戶端 Cookie[] cookies = request.getCookies(); for(Cookie cookie:cookies){ out.print(cookie.getName()+"--"+cookie.getValue()+"<br/>"); } %>
3.執行結果和檢視網頁的Cookie值,在Natwork的respose header裡面可以看瀏覽器的快取,和輸出的一致。
5.總結:使用Cookie實現 記住使用者名稱 功能。
Cookie可以提高訪問服務端的效率,但是安全性較差。而session可以彌補這個缺點。
服務端準備Cookie:response.addCookie(Cookie cookie)頁面跳轉(轉發,重定向)
客戶端獲取cookie: request.getCookies();
要注意的地方:
服務端增加cookie :response物件;客戶端獲取物件:request物件。
不能直接獲取某一個單獨物件,只能一次性將 全部的cookie拿到。
通過F12可以發現 除了自己設定的Cookie物件外,還有一個name為 JSESSIONID的cookie。
建議 cookie只儲存 英文數字,否則需要進行編碼、解碼。