javaweb學習之路(3)Cookie

俠客小飛發表於2020-05-16

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只儲存 英文數字,否則需要進行編碼、解碼。

 

相關文章