溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中Cookie的操作是怎樣的

發(fā)布時(shí)間:2021-11-20 16:33:35 來(lái)源:億速云 閱讀:121 作者:柒染 欄目:編程語(yǔ)言

Java中Cookie的操作是怎樣的,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

Java中的Cookie操作是每個(gè)Java Web開(kāi)發(fā)人員必備的只是,將向您介紹Java中Cookie操作的四個(gè)小技巧。

測(cè)試環(huán)境:JDK1.5、Tomcat5.5

一、設(shè)置Cookie

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

2)cookie.setMaxAge(60); //設(shè)置60秒生存期,如果設(shè)置為負(fù)值的話,則為瀏覽器進(jìn)程Cookie(內(nèi)存中保存),關(guān)閉瀏覽器就失效。

3)cookie.setPath("/test/test2"); //設(shè)置Cookie路徑,不設(shè)置的話為當(dāng)前路徑(對(duì)于Servlet來(lái)說(shuō)為request.getContextPath() + web.xml里配置的該Servlet的url-pattern路徑部分)

4)response.addCookie(cookie);

二、讀取Cookie

11//該方法可以讀取當(dāng)前路徑以及“直接父路徑”的所有Cookie對(duì)象,如果沒(méi)有任何Cookie的話,則返回null

22Cookie[] cookies = request.getCookies();

三、刪除Cookie

1Cookie cookie = new Cookie("key", null);

2cookie.setMaxAge(0); //設(shè)置為0為立即刪除該Cookie

3cookie.setPath("/test/test2"); //刪除指定路徑上的Cookie,不設(shè)置該路徑,默認(rèn)為刪除當(dāng)前路徑Cookie

4response.addCookie(cookie);

四、注意:假設(shè)路徑結(jié)構(gòu)如下

/

/test

/test/test2

/test345

/test555/test666

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

b. 刪除時(shí),如果當(dāng)前路徑下沒(méi)有鍵為"key"的Cookie,則查詢?nèi)扛嘎窂剑瑱z索到就執(zhí)行刪除操作(每次只能刪除一個(gè)與自己最近的父路徑Cookie)

FF.必須指定與設(shè)定cookie時(shí)使用的相同路徑來(lái)刪除改cookie,而且cookie的鍵名不論大寫(xiě)、小寫(xiě)或大小混合都要指定路徑。

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

鍵名大小寫(xiě)混合或大寫(xiě)時(shí),不指定路徑則默認(rèn)刪除當(dāng)前路徑,并且不向上查詢。

c.讀取Cookie時(shí)只能讀取直接父路徑的Cookie。

如果當(dāng)前路徑為/test/test2,要讀取的鍵為"key"。當(dāng)前路徑讀取后,還要讀取/test,/test讀取后,還要讀取/

d.在做Java的web項(xiàng)目時(shí),由于一般的Web服務(wù)器(如Tomcat或Jetty)都用Context來(lái)管理不同的Web Application,這樣對(duì)于每個(gè)Context有不同的Path,

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

關(guān)于Java中Cookie的操作是怎樣的問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI