大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

JSP教程
JSP高級教程

JSP Cookies處理

Cookies是存儲在客戶機的文本文件,它們保存了大量軌跡信息。在servlet技術基礎上,JSP顯然能夠提供對HTTP cookies的支持。

通常有三個步驟來識別回頭客:

● 服務器腳本發送一系列cookies至瀏覽器。比如名字,年齡,ID號碼等等。

● 瀏覽器在本地機中存儲這些信息,以備不時之需。

● 當下一次瀏覽器發送任何請求至服務器時,它會同時將這些cookies信息發送給服務器,然后服務器使用這些信息來識別用戶或者干些其它事情。

本章節將會傳授您如何去設置或重設cookie的方法,還有如何訪問它們及如何刪除它們。

Cookie剖析

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

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

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

如果瀏覽器被配置成可存儲cookies,那么它將會保存這些信息直到過期。如果用戶訪問的任何頁面匹配了cookie中的路徑和域名,那么瀏覽器將會重新將這個cookie發回給服務器。瀏覽器端的信息頭長得就像下面這樣:

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腳本通過request對象中的getCookies()方法來訪問這些cookies,這個方法會返回一個Cookie對象的數組。

Servlet Cookies 方法

下表列出了Cookie對象中常用的方法:

序號

方法 & 描述

1

public void setDomain(String pattern)

設置cookie的域名,比如w3cschool.cn

2

public String getDomain()

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

3

public void setMaxAge(int expiry)

設置cookie有效期,以秒為單位,默認有效期為當前session的存活時間

4

public int getMaxAge()

獲取cookie有效期,以秒為單位,默認為-1 ,表明cookie會活到瀏覽器關閉為止

5

public String getName()

返回 cookie的名稱,名稱創建后將不能被修改

6

public void setValue(String newValue)

設置 cookie的值

7

public String getValue()

獲取cookie的值

8

public void setPath(String uri)

設置cookie 的路徑,默認為當前頁面目錄下的所有URL,還有此目錄下的所有子目錄

9

public String getPath()

獲取cookie 的路徑

10

public void setSecure(boolean flag)

指明cookie是否要加密傳輸

11

public void setComment(String purpose)

設置注釋描述 cookie的目的。當瀏覽器將cookie展現給用戶時,注釋將會變得非常有用

12

public String getComment()

返回描述cookie目的的注釋,若沒有則返回null

使用JSP設置Cookies

使用JSP設置cookie包含三個步驟:

(1)創建一個Cookie對象: 調用Cookie的構造函數,使用一個cookie名稱和值做參數,它們都是字符串。

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

請務必牢記,名稱和值中都不能包含空格或者如下的字符:

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

(2) 設置有效期:調用setMaxAge()函數表明cookie在多長時間(以秒為單位)內有效。下面的操作將有效期設為了24小時。

cookie.setMaxAge(60*60*24); 

(3) 將cookie發送至HTTP響應頭中:調用response.addCookie()函數來向HTTP響應頭中添加cookies。

response.addCookie(cookie);

實例演示

<%    
  // 為 first_name 和 last_name設置cookie          
  Cookie firstName = new Cookie("first_name", request.getParameter("first_name"));    
  Cookie lastName = new Cookie("last_name",request.getParameter("last_name"));     
  // 設置cookie過期時間為24小時。    
  firstName.setMaxAge(60*60*24);     
  lastName.setMaxAge(60*60*24);      
  // 在響應頭部添加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目錄下,然后訪問http://localhost:8080/hello.jsp,將會得到如下輸出結果:

試著輸入First Name和Last Name,然后點擊提交按鈕,它將會在您的屏幕中顯示first name和last name,并且設置first name和last name兩個cookie,下一次點擊提交按鈕時會發給服務器。

使用JSP讀取Cookies

想要讀取cookies,您就需要調用request.getCookies()方法來獲得一個javax.servlet.http.Cookie對象的數組,然后遍歷這個數組,使用getName()方法和getValue()方法來獲取每一個cookie的名稱和值。

讓我們來讀取上個例子中的cookies。

<html>
<head>
<title>Reading Cookies</title>
</head>
<body>
<center>
<h1>Reading Cookies</h1>
</center>
<%    
  Cookie cookie = null;    
  Cookie[] cookies = null;    
  // 獲取cookies的數據,是一個數組    
  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設置成"John",last name設置成"Player",訪問 http://localhost:8080/main.jsp,將會得到如下輸出結果:

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

使用JSP刪除Cookies

刪除cookies非常簡單。如果您想要刪除一個cookie,按照下面給的步驟來做就行了:

● 獲取一個已經存在的cookie然后存儲在Cookie對象中。

● 將cookie的有效期設置為0。

● 將這個cookie重新添加進響應頭中。

實例演示

下面的程序刪除一個名為"first_name"的cookie,當您下次運行main.jsp時,first_name將會為null。

<html>
<head>
<title>Reading Cookies</title>
</head>
<body>
<center>
  <h1>Reading Cookies</h1>
</center>
<%    
  Cookie cookie = null;    
  Cookie[] cookies = null;    
  // 獲取當前域名下的cookies,是一個數組    
  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>

訪問它,將會得到如下輸出結果:

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

再次訪問http://localhost:8080/main.jsp,將會得到如下結果:

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

您也可以手動在瀏覽器中刪除cookies。點擊Tools菜單項,然后選擇Internet Options,點擊Delete Cookies,就能刪除所有cookies了。

全部教程
主站蜘蛛池模板: 特级一级毛片视频免费观看 | 日本一区二区三区不卡在线视频 | 悠久久| 久久精品中文字幕第一页 | 久久精品免观看国产成人 | 一级国产20岁美女毛片 | 国产精品久久久久三级 | 中文精品视频一区二区在线观看 | 国产成人精品本亚洲 | 欧美在线观看视频网站 | 国产亚洲欧美成人久久片 | 色88888久久久久久影院 | 国产亚洲精品自在久久不卡 | 这里只有精品视频 | 国产精品入口麻豆午夜 | 99热久久国产精品这里有全部 | 久草最新 | 欧美一级毛片欧美毛片视频 | 夜色成人免费观看 | 日日爽夜夜爽 | jizzjizz中国丝袜美女 | 午夜精品成年片色多多 | 国产成+人欧美+综合在线观看 | 91手机看片国产永久免费 | 欧美成人免费香蕉 | 日产国产欧美视频一区精品 | 久久免费精彩视频 | 99尹人香蕉国产免费天天在线 | 免费国产不卡午夜福在线观看 | 奇米影视777在线播放 | 久久99热精品 | 色在线国产 | 欧美xx毛片免费看 | 奇米777四色影视 | 久久在线看 | 特黄女一级毛片 | 四虎影视在线影院在线观看 | 成人午夜性a一级毛片美女 成人午夜性视频欧美成人 成人午夜亚洲影视在线观看 | 四虎视频在线 | 国产香蕉视频 | 精品综合久久久久久98 |