教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

JAVA培訓之Cookie的使用

更新時間:2016年08月26日13時58分 來源:傳智播客JAVA培訓學院 瀏覽次數(shù):

1.在JavaWeb中使用Cookie

Cookie介紹中,我們了解到Cookie是基于Set-Cookie響應頭和Cookie請求頭工作的,服務器通過response對象的addHeader()方法將cookie發(fā)送給瀏覽器,然后瀏覽器通過Cookie請求頭將cookie再送回服務器。
以上方式操作Cookie比較麻煩,現(xiàn)在我們學習一種簡便的方式來操作Cookie,如下所示:
  • 服務器發(fā)送Cookie
void addCookie(Cookie cookie):使用response對象調(diào)用該方法向瀏覽器端發(fā)送參數(shù)指定的Cookie;
  • 服務器獲取瀏覽器傳遞過來的Cookie
Cookie[] getCookies():使用request對象調(diào)用該方法獲取瀏覽器發(fā)送的所有Cookie,該方法的返回值是一個Cookie類型的數(shù)組。

2.Cookie練習

通過以上對Cookie的學習,下面為了讓大家更加熟練的掌握Cookie技術,我們來學習一個案例,具體如下:
(1)創(chuàng)建一個web應用,Example18,在該應用下的WebRoot根目錄下新建一個jsp文件,saveCookie.jsp,主要代碼如例1-1所示:
例1-1 savaCookie.jsp
  <body>
<h1>保存cookie<h1>
    <%
      Cookie cookie1=new Cookie("one","aaa");
      Cookie cookie2=new Cookie("two","bbb");
      response.addCookie(cookie1);
      response.addCookie(cookie2);
     %>
  </body>
例1-1中,新建了兩個Cookie,并使用addCookie()方法將兩個cookie發(fā)送給瀏覽器。其中response對象是jsp的九大內(nèi)置對象之一,所以在這里可以直接使用。
(2)再次在Example18應用的WebRoot的根目錄下新建一個jsp文件,getCookie.jsp,主要代碼如例1-2所示:
例1-2 getCookie.jsp
  <body>
<h1>獲取cookie<h1>
    <%
      Cookie[] cookies= request.getCookies();
      if(cookies!=null){
      for(Cookie c:cookies){
        out.print(c.getName()+"="+c.getValue()+"<br>");
      }
      }
     %>
  </body>
例1-2中,使用request調(diào)用getCookies()方法獲得瀏覽器歸還的所有cookie。如果瀏覽器沒有發(fā)送過來任何cookie,那么該方法的返回值是null,因此我們操作cookies時要先判斷它是否為null,避免出現(xiàn)空指針異常。
(3)將Example18發(fā)布到Tomcat服務器,然后啟動服務器,在瀏覽器地址欄上輸入:http://localhost:8080/Example18/saveCookie.jsp,并使用HttpWatch工具進行抓包,瀏覽器顯示結果如圖1-1所示:

圖1-1 發(fā)送cookie
由圖1-1可知,當在瀏覽器端訪問saveCookie.jsp頁面,瀏覽器一共收到三個cookie,其中一個名字為JSESSIONID的cookie會在后面的session課程中詳細講解。剩余兩個cookie是我們在saveCookie.jsp頁面中創(chuàng)建,然后向瀏覽器發(fā)送的。
(4)在瀏覽器端訪問getCookie.jsp,訪問地址為:http://localhost:8080/Example18/getCookie.jsp,瀏覽器顯示結果如圖1-2所示:

圖1-2 瀏覽器顯示結果
(5)使用HttpWatch工具抓取的結果,如圖1-3所示:

圖1-3 HttpWatch抓取結果

本文版權歸傳智播客Java培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:傳智播客Java培訓學院
首發(fā):http://xamj520.com/javaee
0 分享到:
和我們在線交談!