當前位置:首頁 » 密碼管理 » java訪問cookie

java訪問cookie

發布時間: 2024-03-22 10:00:56

① 怎麼用java獲取cookie

ookie實際上是一個存在你硬碟里的數據,但是這些數據很特殊,只能由web應用提交給瀏覽器幫助存儲,並且我們還能讀取瀏覽器存在本地的cookie
web應用一般只在cookie中存儲一些用戶信息等少量且暫時的數據,數據量大則不適合存儲在cookies
ava通過httpServletRequest介面來訪問瀏覽器請求中的cookies數據(這里先了解一下cookies來龍去脈,代碼待會一並給出)
每個cookie有兩個屬性:鍵 ,值(無特定格式字元串,所以可以diy存數據,不過要注意URL編碼問題,編碼問題待會和代碼一同講)
如果我們需要存儲新的cookie我們可以new一個cookie實例 並通過httpservletRsponse提交到瀏覽器,進而存儲到本地

② 怎麼在java中使用cookie

1、Cookie的來歷與作用
Cookie是WEB伺服器通過瀏覽器保存在WWW用戶端硬碟上的一個文本文件,這個文本文件中包含了文本信息。
文本信息的內容以「名/值」對(key/value)的形式進行存儲。
可以讓WEB開發者通過程序讀寫這個文本文件。
XP中保存Cookie的目錄是「C://Documents and Settings\用戶名\Cookies」
Cookie的作用
解決瀏覽器用戶與Web伺服器之間無狀態通信。
2Cookie編程
//創建對象
Date date = new Date() ;
Cookie c = new Cookie("lastVisited",date.toString()) ;
//設定有效時間 以s為單位
c.setMaxAge(60) ;
//設置Cookie路徑和域名
c.setPath("/") ;
c.setDomain(".zl.org") ; //域名要以「.」開頭
//發送Cookie文件
response.addCookie(c) ;
//讀取Cookie
Cookie cookies[] = request.getCookies() ;
Cookie c1 = null ;
if(cookies != null){
for(int i=0;i
c1 = cookies[i] ;
out.println("cookie name : " + c1.getName() + " ") ;
out.println("cookie value :" + c1.getValue() + "
");
}
}
//修改Cookie
Cookie cookies[] = request.getCookies() ;
Cookie c = null ;
for(int i=0;i
c = cookies[i] ;
if(c.getName().equals("lastVisited")){
c.setValue("2010-04-3-28") ;
c.setMaxAge(60*60*12) ;
response.addCookie(c) ; //修改後,要更新到瀏覽器中
}
}

//刪除Cookie,(將Cookie的有效時間設為0)
Cookie cookies[] = request.getCookies() ;
Cookie c = null ;
for(int i=0;i
c = cookies[i] ;
if(c.getName().equals("lastVisited")){
c.setMaxAge(0);
response.addCookie(c) ;
}
}

4、使用Cookie的注意事項
·Cookie的大小和數量是有限制的。
·Cookie在個人硬碟上所保存的文本信息是以明文格式進行保存的,沒有任何的加密措施。
·瀏覽器用戶可以設定不使用Cookie。

③ java操作cookie問題

建立一個無生命周期的cookie,即隨著瀏覽器的關閉即消失的cookie,代碼如下

HttpServletRequest request
HttpServletResponse response
Cookie cookie = new Cookie("cookiename","cookievalue");
response.addCookie(cookie);

下面建立一個有生命周期的cookie,可以設置他的生命周期

cookie = new Cookie("cookiename","cookievalue");

cookie.setMaxAge(3600);

//設置路徑,這個路徑即該工程下都可以訪問該cookie 如果不設置路徑,那麼只有設置該cookie路徑及其子路徑可以訪問

cookie.setPath("/");
response.addCookie(cookie);

下面介紹如何讀取cookie,讀取cookie代碼如下

Cookie[] cookies = request.getCookies();//這樣便可以獲取一個cookie數組
for(Cookie cookie : cookies){
cookie.getName();// get the cookie name
cookie.getValue(); // get the cookie value
}

上面就是基本的讀寫cookie的操作。我們在實際中最好進行一下封裝,比如增加一個cookie,我們關注的是cookie的name,value,生命周期,所以進行封裝一個函數,當然還要傳入一個response對象,addCookie()代碼如下

/**
* 設置cookie
* @param response
* @param name cookie名字
* @param value cookie值
* @param maxAge cookie生命周期 以秒為單位
*/
public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
Cookie cookie = new Cookie(name,value);
cookie.setPath("/");
if(maxAge>0) cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}

讀取cookie的時候,為了方便我們的操作,我們希望封裝一個函數,只要我們提供cookie的name,我們便可以獲取cookie的value,帶著這個想法,很容易想到將cookie封裝到Map裡面,於是進行下面的封裝

/**
* 根據名字獲取cookie
* @param request
* @param name cookie名字
* @return
*/
public static Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
return cookie;
}else{
return null;
}
}

/**
* 將cookie封裝到Map裡面
* @param request
* @return
*/
private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Cookie[] cookies = request.getCookies();
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}

④ java中 如何獲取cookie

綜述:Cookie是由伺服器端生成,發送給User-Agent(一般是瀏覽器),瀏覽器會將Cookie的key/value保存到某個目錄下的文本文件內,下次請求同一網站時就發送該Cookie給伺服器(前提是瀏覽器設置為啟用cookie)。Cookie名稱和值可以由伺服器端開發自己定義,對於JSP而言也可以直接寫入jsessionid,這樣伺服器可以知道該用戶是否合法用戶以及是否需要重新登錄等,伺服器可以設置或讀取Cookies中包含信息,藉此維護用戶跟伺服器會話中的狀態。

1.獲取Cookie的值:獲取Cookie值的標准代碼格為:myCookie.Values["auth"];
上句代碼可以獲取名為myCookie的Cookie對象鍵名為auth的鍵值。如果不存在,則返回null。
DateTime now=new DateTime.Now;
Response.Cookies["Info"].Expires = DateTime.Now.AddDays(1);
//設定Cookie過期時間下面的代碼示例演示刪除應用程序中所有可用 Cookie 的一種方法
2.代碼如下:
HttpCookie aCookie;
string cookieName;
int limit = Request.Cookies.Count;
for (int i = 0; i < limit; i++)
{
cookieName = Request.Cookies[i].Name;
aCookie = new HttpCookie(cookieName);
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);
}
3.以上就是Java程序開發中涉及到的獲取cookie方法

⑤ java cookie

1.設置Cookie

Cookie cookie = new Cookie("key", "value");
cookie.setMaxAge(60); //設置60秒生存期,如果設置為負值的話,則為瀏覽器進程Cookie(內存中保存),關閉瀏覽器就失效。
cookie.setPath("/test/test2"); //設置Cookie路徑,不設置的話為當前路徑(對於Servlet來說為request.getContextPath() + web.xml里配置的該Servlet的url-pattern路徑部分)
response.addCookie(cookie);

2.讀取Cookie

該方法可以讀取當前路徑以及「直接父路徑」的所有Cookie對象,如果沒有任何Cookie的話,則返回null
Cookie[] cookies = request.getCookies();

3.刪除Cookie

Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0); //設置為0為立即刪除該Cookie
cookie.setPath("/test/test2"); //刪除指定路徑上的Cookie,不設置該路徑,默認為刪除當前路徑Cookie
response.addCookie(cookie);

4.修改Cookie
首先讀取cookie
Cookie[] cks = request.getCookies();
for (int i = 0; i < cks.length; i ++){
Cookie cookie = cks[i];
if (cookie.getName().equalsIgnoreCase("cookiename")){
cookie.setValue("newvalue"); 設置新的值
response.addCookie(cookie);
}
}

5.注意:假設路徑結構如下

/

/test

/test/test2

/test345

/test555/test666

a.相同鍵名的Cookie(值可以相同或不同)可以存在於不同的路徑下。

b. 刪除時,如果當前路徑下沒有鍵為"key"的Cookie,則查詢全部父路徑,檢索到就執行刪除操作(每次只能刪除一個與自己最近的父路徑Cookie)

FF.必須指定與設定cookie時使用的相同路徑來刪除改cookie,而且cookie的鍵名不論大寫、小寫或大小混合都要指定路徑。

IE.鍵名小寫時,如果當前路徑為/test/test2,如果找不到再向上查詢/test、/test555、/test345,如果還找不到就查詢/ 。(/test555/test666不查詢)

鍵名大小寫混合或大寫時,不指定路徑則默認刪除當前路徑,並且不向上查詢。

c.讀取Cookie時只能讀取直接父路徑的Cookie。

如果當前路徑為/test/test2,要讀取的鍵為"key"。當前路徑讀取後,還要讀取/test,/test讀取後,還要讀取/

d.在做Java的web項目時,由於一般的Web伺服器(如Tomcat或Jetty)都用Context來管理不同的Web Application,這樣對於每個Context有不同的Path,

在一個Server中有多個Web Application時要特別小心,不要設置Path為/的Cookie,容易誤操作。(當然前提是域名相同)

⑥ java代碼如何讀取到瀏覽器中的cookie值

第一:開啟瀏覽器對Javascript1、打開IE瀏覽器之後,點擊菜單中的」工具「選項
2、點擊工具選項中的」Internet選項
3、在彈出的對話框中點「安全」 選項卡
4、點擊「自定義級別」按鈕
5、在彈出的對話框中找到「腳本」設置項,選擇「啟用」然後確定
第二:開啟瀏覽器對cookies的支持
1、點擊「Ineternat選項」對話框中的「隱私」選項卡
2、將隱私設置設為「中」或者「低」,並點擊應用後確定
通過以上步驟,就完成開啟瀏覽器對Javascript和cookies的支持

熱點內容
電腦當伺服器怎麼降低功耗 發布:2024-11-27 15:30:45 瀏覽:641
蘋果手機誇克緩存的視頻怎麼轉為本地視頻 發布:2024-11-27 15:24:05 瀏覽:810
linuxm4 發布:2024-11-27 15:15:12 瀏覽:321
演算法交易現狀 發布:2024-11-27 15:05:49 瀏覽:825
搜同網伺服器為什麼登錄不上 發布:2024-11-27 15:05:41 瀏覽:287
如何讓無線網速變快華為安卓手機 發布:2024-11-27 15:04:13 瀏覽:595
cod17編譯著色器卡住c盤滿了 發布:2024-11-27 14:55:56 瀏覽:386
鎖機軟體反編譯 發布:2024-11-27 14:36:02 瀏覽:148
欣才php培訓中心 發布:2024-11-27 14:35:57 瀏覽:938
RDB演算法 發布:2024-11-27 14:26:57 瀏覽:137