成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細介紹Jsp中的Cookies

開發 后端
本文介紹的是JSP中的cookies,希望對你有幫助,一起來看。

在開發網站應用程序的過程中,使用cookie記錄用戶的一些信息是比較常用的一種方法,而cookie的使用也非常簡單。

一、Cookie是通過HttpServletResponse的addCookie方法加入到Set-Cookie應答頭中的

例如:

  1. Cookie userCookie = new Cookie("user""admin");   
  2. response.addCookie(userCookie); 

和設置有關系的還有以下兩個重要方法

1.setMaxAge

設置Cookie過期之前的時間,以秒計。如果不設置該值,則Cookie只在當前會話內有效,而且這些Cookie不會保存到磁盤上。

注意:刪除cookie就是通過該方法實現的。將要刪除的cookie的過期之前的時間指定為0就可以達到刪除該cookie的目的。

2.setPath

設置Cookie適用的路徑。如果不指定路徑,Cookie將返回給當前頁面(jsp(SUN企業級應用的***)頁面或者Servlet的映射)所在目錄及其子目錄下的所有頁面。

注意:

A:所有的cookie都是有路徑的

B:該方法設置的路徑為客戶端路徑,即“/”代表服務器根目錄,而不是WEB應用根目錄

C:該方法設置路徑時,“/myWeb/”與“/myWeb”是不同的,要特別注意;前者可以關聯到服務器的myWeb目錄下,而后者則不可以。

D:該方法設置路徑時,沒有相對目錄可言,即不論在哪個目錄下設置setPath(“/myWeb/”),該cookie都將關聯到服務器的myWeb目錄下(setPath(“/myWeb”)則不可以),而不是當前目錄的myWeb的子目錄下;同樣,設置setPath(“myWeb/”)和setPath(“myWeb”)也不能關聯到當前目錄的myWeb的子目錄下。

這里有個奇怪的例子,就是在一個web應用下設置的cookie可以在另一個web應用下獲得(兩個web應用在同一個服務器下)
目錄結構:在服務器根目錄上有web1和web2兩個目錄,在web1下有setcookie.jsp(SUN企業級應用的***)和getcookie.jsp(SUN企業級應用的***)、在web2下有getcookie.jsp(SUN企業級應用的***)

web1下的setcookie.jsp(SUN企業級應用的***)

  1. <%  
  2. Cookie userCookie = new Cookie("user""admin");   
  3. userCookie.setMaxAge(24*60*60);  
  4. userCookie.setPath("/web2/");  
  5. response.addCookie(userCookie);  
  6. %> 

web1下的getcookie.jsp(SUN企業級應用的***)

  1. <%  
  2. Cookie[] cookie = request.getCookies();  
  3. String user = new String();  
  4. if ( cookie != null ) {  
  5. for (int i = 0; i < cookie.length; i++) {  
  6. Cookie myCookie = cookie[i];  
  7. if (myCookie.getName().equals("user")) {  
  8. user = myCookie.getValue();  
  9. }  
  10. }  
  11. }  
  12. out.println("user = " + user);  
  13. %>  
  14. web2下的getcookie.jsp(SUN企業級應用的***)  
  15. <%  
  16. Cookie[] cookie = request.getCookies();  
  17. String user = new String();  
  18. if ( cookie != null ) {  
  19. for (int i = 0; i < cookie.length; i++) {  
  20. Cookie myCookie = cookie[i];  
  21. if (myCookie.getName().equals("user")) {  
  22. user = myCookie.getValue();  
  23. }  
  24. }  
  25. }  
  26. out.println("user = " + user);  
  27. %> 

先訪問web1下的setcookie.jsp(SUN企業級應用的***),然后分別訪問web1和web2下面的getcookie.jsp(SUN企業級應用的***)文件,你會發現奇怪的現象,web1下的getcookie.jsp(SUN企業級應用的***)中user為空而web2下的getcookie.jsp(SUN企業級應用的***)中user卻有值,這就實現了從一個web應用下設置的cookie在另一個web應用下獲得。

大多數人刪除cookie不成功都是因為目錄原因。一個典型的原因是在某一個目錄中設置了cookie(沒有調用setPath方法)卻在另一個目錄中刪除該cookie(其實是調用setMaxAge方法)

3、跨域共享cookie的方法:設置

  1. cookie.setDomain(".jszx.com"); 

A機所在的域:home.langchao.com,A有應用cas

B機所在的域:jszx.com,B有應用webapp_b

1)在cas下面設置cookie的時候,增加cookie.setDomain(".jszx.com");,這樣在webapp_b下面就可以取到cookie。

2)這個參數必須以“.”開始。

3)輸入url訪問webapp_b的時候,必須輸入域名才能解析。比如說在A機器輸入:http://lc-bsp.jszx.com:8080/webapp_b,可以獲取cas在客戶端設置的cookie,而B機器訪問本機的應用,輸入:http://localhost:8080/webapp_b則不可以獲得cookie。

4)設置了cookie.setDomain(".jszx.com");,還可以在默認的home.langchao.com下面共享。

二、讀取

從客戶端讀取Cookie時調用的是HttpServletRequest的getCookies方法。該方法返回一個與HTTP請求頭中的內容對應的Cookie對象數組。得到這個數組之后,一般是用循環訪問其中的各個元素,調用getName檢查各個Cookie的名字,直至找到目標Cookie。然后對這個目標Cookie調用getValue,根據獲得的結果進行其他處理。

注意:若jsp(SUN企業級應用的***)和Servlet所在目錄(Servlet為其映射目錄)的父目錄中有同名cookie,則request.getCookie()方法得到的Cookie數組中保存的是其父目錄中的cookie的信息;

三、說明

我們知道,對于一個頁面中的request和response,是一次http請求產生的,request是http請求中的所有參數,因此包含了發出這次http請求時cookie的值,而response是對于這次http請求webapplication產生的反應,所以它可以寫cookie的值,這樣看來,request得到的cookie的值,和response要寫的cookie的值可以說是完全不同的。

簡單地說request得到的cookie的值是在這次http請求之前的cookie的值,而response要寫得值是這次http請求之后的cookie的值。所以,在同一個request和response中,如果response中增加了新的cookie,request中并不能得到。

【編輯推薦】

  1. jsp開發技術應用的29個注意事項
  2. JSP虛擬主機使用中的亂碼問題
  3. jsp速度優化七種方法
  4. 詳細了解JSP中九個隱含對象
  5. 詳細介紹JSP技術的兩種架構模型
責任編輯:于鐵 來源: 互聯網
相關推薦

2011-07-08 11:19:51

jspaction

2009-07-03 11:21:43

Servlet和JSPJSP路徑

2009-07-01 10:12:40

JSP環境配置JSP引擎

2009-09-02 09:44:01

JSP和JavaBea

2009-07-03 18:31:04

JSP表達式

2011-06-07 11:14:51

JAVAJSP

2011-06-21 14:25:44

JavaScriptcookie

2011-06-15 13:07:10

JSP和JavaBea

2011-06-08 16:05:34

VB數組

2011-07-20 15:58:53

C++引用

2011-07-11 11:02:12

JAVA集合框架

2009-06-17 16:01:28

2011-07-11 15:02:54

枚舉

2011-07-21 15:44:33

Java內部類

2011-07-13 15:47:18

MFC

2009-07-06 15:31:42

JSP Action

2011-06-15 15:16:54

Session

2011-07-14 11:08:30

C#繼承

2011-07-22 16:50:05

JAVA

2010-03-10 19:25:04

python多線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人天堂噜噜噜 | 欧美成人精品一区二区男人看 | 国产亚洲精品精品国产亚洲综合 | 91精品导航 | 久久精品成人 | 中文字字幕在线中文乱码范文 | 国产乱码精品一区二区三区中文 | 在线欧美a | 欧美综合网 | 伊人久久综合 | 日本午夜在线视频 | 欧美一级毛片免费观看 | 免费在线成人 | 久久久网| 亚洲综合在线视频 | 色姑娘综合网 | 日本精品视频 | 国产免费av在线 | 神马福利| 99精品欧美一区二区三区综合在线 | 91se在线| 亚洲精品欧美 | 国产精品久久二区 | 亚洲aⅴ一区二区 | 久久激情视频 | 可以免费观看的av片 | 国产美女网站 | 日本成人在线免费视频 | 欧美性猛交 | 亚洲一区亚洲二区 | 一级黄色录像毛片 | 黄色欧美在线 | 综合久久av | 国产成人精品一区二区三区网站观看 | 日韩一级精品视频在线观看 | 国精产品一区一区三区免费完 | 日韩美香港a一级毛片免费 国产综合av | 特黄色毛片 | 欧美不卡视频 | 天天夜夜人人 | 成人免费视频网站在线观看 |