黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

JSP教程
JSP高級(jí)教程

JSP Cookies處理

Cookies是存儲(chǔ)在客戶(hù)機(jī)的文本文件,它們保存了大量軌跡信息。在servlet技術(shù)基礎(chǔ)上,JSP顯然能夠提供對(duì)HTTP cookies的支持。

通常有三個(gè)步驟來(lái)識(shí)別回頭客:

● 服務(wù)器腳本發(fā)送一系列cookies至瀏覽器。比如名字,年齡,ID號(hào)碼等等。

● 瀏覽器在本地機(jī)中存儲(chǔ)這些信息,以備不時(shí)之需。

● 當(dāng)下一次瀏覽器發(fā)送任何請(qǐng)求至服務(wù)器時(shí),它會(huì)同時(shí)將這些cookies信息發(fā)送給服務(wù)器,然后服務(wù)器使用這些信息來(lái)識(shí)別用戶(hù)或者干些其它事情。

本章節(jié)將會(huì)傳授您如何去設(shè)置或重設(shè)cookie的方法,還有如何訪(fǎng)問(wèn)它們及如何刪除它們。

Cookie剖析

Cookies通常在HTTP信息頭中設(shè)置(雖然JavaScript能夠直接在瀏覽器中設(shè)置cookies)。在JSP中,設(shè)置一個(gè)cookie需要發(fā)送如下的信息頭給服務(wù)器:

HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; 
                 path=/; domain=tutorialspoint.com
Connection: close
Content-Type: text/html

正如您所見(jiàn),Set-Cookie信息頭包含一個(gè)鍵值對(duì),一個(gè)GMT(格林尼治標(biāo)準(zhǔn))時(shí)間,一個(gè)路徑,一個(gè)域名。鍵值對(duì)會(huì)被編碼為URL。有效期域是個(gè)指令,告訴瀏覽器在什么時(shí)候之后就可以清除這個(gè)cookie。

如果瀏覽器被配置成可存儲(chǔ)cookies,那么它將會(huì)保存這些信息直到過(guò)期。如果用戶(hù)訪(fǎng)問(wèn)的任何頁(yè)面匹配了cookie中的路徑和域名,那么瀏覽器將會(huì)重新將這個(gè)cookie發(fā)回給服務(wù)器。瀏覽器端的信息頭長(zhǎng)得就像下面這樣:

GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz

JSP腳本通過(guò)request對(duì)象中的getCookies()方法來(lái)訪(fǎng)問(wèn)這些cookies,這個(gè)方法會(huì)返回一個(gè)Cookie對(duì)象的數(shù)組。

Servlet Cookies 方法

下表列出了Cookie對(duì)象中常用的方法:

序號(hào)

方法 & 描述

1

public void setDomain(String pattern)

設(shè)置cookie的域名,比如w3cschool.cn

2

public String getDomain()

獲取cookie的域名,比如w3cschool.cn

3

public void setMaxAge(int expiry)

設(shè)置cookie有效期,以秒為單位,默認(rèn)有效期為當(dāng)前session的存活時(shí)間

4

public int getMaxAge()

獲取cookie有效期,以秒為單位,默認(rèn)為-1 ,表明cookie會(huì)活到瀏覽器關(guān)閉為止

5

public String getName()

返回 cookie的名稱(chēng),名稱(chēng)創(chuàng)建后將不能被修改

6

public void setValue(String newValue)

設(shè)置 cookie的值

7

public String getValue()

獲取cookie的值

8

public void setPath(String uri)

設(shè)置cookie 的路徑,默認(rèn)為當(dāng)前頁(yè)面目錄下的所有URL,還有此目錄下的所有子目錄

9

public String getPath()

獲取cookie 的路徑

10

public void setSecure(boolean flag)

指明cookie是否要加密傳輸

11

public void setComment(String purpose)

設(shè)置注釋描述 cookie的目的。當(dāng)瀏覽器將cookie展現(xiàn)給用戶(hù)時(shí),注釋將會(huì)變得非常有用

12

public String getComment()

返回描述cookie目的的注釋?zhuān)魶](méi)有則返回null

使用JSP設(shè)置Cookies

使用JSP設(shè)置cookie包含三個(gè)步驟:

(1)創(chuàng)建一個(gè)Cookie對(duì)象: 調(diào)用Cookie的構(gòu)造函數(shù),使用一個(gè)cookie名稱(chēng)和值做參數(shù),它們都是字符串。

Cookie cookie = new Cookie("key","value");

請(qǐng)務(wù)必牢記,名稱(chēng)和值中都不能包含空格或者如下的字符:

[ ] ( ) = , " / ? @ : ;

(2) 設(shè)置有效期:調(diào)用setMaxAge()函數(shù)表明cookie在多長(zhǎng)時(shí)間(以秒為單位)內(nèi)有效。下面的操作將有效期設(shè)為了24小時(shí)。

cookie.setMaxAge(60*60*24); 

(3) 將cookie發(fā)送至HTTP響應(yīng)頭中:調(diào)用response.addCookie()函數(shù)來(lái)向HTTP響應(yīng)頭中添加cookies。

response.addCookie(cookie);

實(shí)例演示

<%    
  // 為 first_name 和 last_name設(shè)置cookie          
  Cookie firstName = new Cookie("first_name", request.getParameter("first_name"));    
  Cookie lastName = new Cookie("last_name",request.getParameter("last_name"));     
  // 設(shè)置cookie過(guò)期時(shí)間為24小時(shí)。    
  firstName.setMaxAge(60*60*24);     
  lastName.setMaxAge(60*60*24);      
  // 在響應(yīng)頭部添加cookie    
  response.addCookie( firstName );    
  response.addCookie( lastName ); 
%>
<html>
<head>
<title>Setting Cookies</title>
</head>
<body>
<center>
<h1>Setting Cookies</h1>
</center>
<ul>
<li><p><b>First Name:</b>
<%= request.getParameter("first_name")%>
</p></li>
<li><p><b>Last  Name:</b>
   <%= request.getParameter("last_name")%>
</p></li>
</ul>
</body>
</html>

將上面的文件放在/webapps/ROOT目錄下,然后訪(fǎng)問(wèn)http://localhost:8080/hello.jsp,將會(huì)得到如下輸出結(jié)果:

試著輸入First Name和Last Name,然后點(diǎn)擊提交按鈕,它將會(huì)在您的屏幕中顯示first name和last name,并且設(shè)置first name和last name兩個(gè)cookie,下一次點(diǎn)擊提交按鈕時(shí)會(huì)發(fā)給服務(wù)器。

使用JSP讀取Cookies

想要讀取cookies,您就需要調(diào)用request.getCookies()方法來(lái)獲得一個(gè)javax.servlet.http.Cookie對(duì)象的數(shù)組,然后遍歷這個(gè)數(shù)組,使用getName()方法和getValue()方法來(lái)獲取每一個(gè)cookie的名稱(chēng)和值。

讓我們來(lái)讀取上個(gè)例子中的cookies。

<html>
<head>
<title>Reading Cookies</title>
</head>
<body>
<center>
<h1>Reading Cookies</h1>
</center>
<%    
  Cookie cookie = null;    
  Cookie[] cookies = null;    
  // 獲取cookies的數(shù)據(jù),是一個(gè)數(shù)組    
  cookies = request.getCookies();    
  if( cookies != null ){       
    out.println("<h2> Found Cookies Name and Value</h2>");
    for (int i = 0; i < cookies.length; i++){          
      cookie = cookies[i]; 
         
      out.print("Name : " + cookie.getName( ) + ",  ");          
      out.print("Value: " + cookie.getValue( )+" <br/>");
    }
  }else{
      out.println("<h2>No cookies founds</h2>");
  }
%>
</body>
</html>

如果您把first name cookie設(shè)置成"John",last name設(shè)置成"Player",訪(fǎng)問(wèn) http://localhost:8080/main.jsp,將會(huì)得到如下輸出結(jié)果:

Found Cookies Name and Value
Name : first_name, Value: John 
Name : last_name, Value: Player

使用JSP刪除Cookies

刪除cookies非常簡(jiǎn)單。如果您想要?jiǎng)h除一個(gè)cookie,按照下面給的步驟來(lái)做就行了:

● 獲取一個(gè)已經(jīng)存在的cookie然后存儲(chǔ)在Cookie對(duì)象中。

● 將cookie的有效期設(shè)置為0。

● 將這個(gè)cookie重新添加進(jìn)響應(yīng)頭中。

實(shí)例演示

下面的程序刪除一個(gè)名為"first_name"的cookie,當(dāng)您下次運(yùn)行main.jsp時(shí),first_name將會(huì)為null。

<html>
<head>
<title>Reading Cookies</title>
</head>
<body>
<center>
  <h1>Reading Cookies</h1>
</center>
<%    
  Cookie cookie = null;    
  Cookie[] cookies = null;    
  // 獲取當(dāng)前域名下的cookies,是一個(gè)數(shù)組    
  cookies = request.getCookies();    
  if( cookies != null ){       
    out.println("<h2> Found Cookies Name and Value</h2>");
    for (int i = 0; i < cookies.length; i++){          
      cookie = cookies[i];          
      if((cookie.getName( )).compareTo("first_name") == 0 ){             
        cookie.setMaxAge(0);             
        response.addCookie(cookie);             
        out.print("Deleted cookie: " +              
        cookie.getName( ) + "<br/>");
       }
       out.print("Name : " + cookie.getName( ) + ",  ");
       out.print("Value: " + cookie.getValue( )+" <br/>");
      }
  }else{
      out.println(
      "<h2>No cookies founds</h2>");
  }
%>
</body>
</html>

訪(fǎng)問(wèn)它,將會(huì)得到如下輸出結(jié)果:

Cookies Name and Value
Deleted cookie : first_name
Name : first_name, Value: John
Name : last_name, Value: Player

再次訪(fǎng)問(wèn)http://localhost:8080/main.jsp,將會(huì)得到如下結(jié)果:

Found Cookies Name and Value
Name : last_name, Value: Player

您也可以手動(dòng)在瀏覽器中刪除cookies。點(diǎn)擊Tools菜單項(xiàng),然后選擇Internet Options,點(diǎn)擊Delete Cookies,就能刪除所有cookies了。

全部教程
主站蜘蛛池模板: 国产极品在线观看视频 | 国产成人综合久久精品红 | 精品国产成a人在线观看 | 97久久精品人人做人人爽 | 50岁老女人毛片一级亚洲 | 91免费网 | 欧美精品午夜久久久伊人 | 亚洲福利精品 | 日本全黄三级在线观看 | 国产欧美在线观看视频 | 欧美在线一区二区三区不卡 | 欧美亚洲国产一区 | 亚洲天天做日日做天天看 | 日本免费不卡视频一区二区三区 | 国产成人一区二区 | 激情综合六月 | 三级全黄的全黄三级三级播放 | 午夜成人影视 | 成人国产第一区在线观看 | 色在线影院 | 一本三道a无线码一区v小说 | 狠狠干97| 一级做a爰片久久毛片唾 | 国产麻豆精品入口在线观看 | 视频www| 视频一区二区三区在线观看 | 中国一级做a爰片久久毛片 中国一级做a爱片免费 | 91成人在线观看 | 午夜剧场普通用户 | 亚洲国产成人在线 | 日韩亚洲人成网站在线播放 | 男女性激烈动态图无遮挡 | 天天舔天天摸 | 毛片免费在线播放 | 免费成人午夜视频 | 日本人的色道免费网站 | 欧美日本一道高清免费3区 欧美日本一二三区 | 一区二区三区精品视频 | 带色视频 | 天天槽夜夜槽槽不停 | 五月婷婷久 |