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

全國(guó)咨詢/投訴熱線:400-618-4000

JAVA培訓(xùn)之Cookie的使用

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

1.在JavaWeb中使用Cookie

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

2.Cookie練習(xí)

通過以上對(duì)Cookie的學(xué)習(xí),下面為了讓大家更加熟練的掌握Cookie技術(shù),我們來學(xué)習(xí)一個(gè)案例,具體如下:
(1)創(chuàng)建一個(gè)web應(yīng)用,Example18,在該應(yīng)用下的WebRoot根目錄下新建一個(gè)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中,新建了兩個(gè)Cookie,并使用addCookie()方法將兩個(gè)cookie發(fā)送給瀏覽器。其中response對(duì)象是jsp的九大內(nèi)置對(duì)象之一,所以在這里可以直接使用。
(2)再次在Example18應(yīng)用的WebRoot的根目錄下新建一個(gè)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時(shí)要先判斷它是否為null,避免出現(xiàn)空指針異常。
(3)將Example18發(fā)布到Tomcat服務(wù)器,然后啟動(dòng)服務(wù)器,在瀏覽器地址欄上輸入:http://localhost:8080/Example18/saveCookie.jsp,并使用HttpWatch工具進(jìn)行抓包,瀏覽器顯示結(jié)果如圖1-1所示:

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

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

圖1-3 HttpWatch抓取結(jié)果

本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://metathetuscanyresort.com/javaee
0 分享到:
和我們?cè)诰€交談!