溫馨提示×

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

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

java中Servlet Cookie取不到值原因解決辦法

發(fā)布時(shí)間:2020-09-10 21:19:14 來源:腳本之家 閱讀:332 作者:晉心 欄目:編程語言

java中Servlet Cookie取不到值原因解決辦法

現(xiàn)象:

在測(cè)試帶Cookie的HTTP請(qǐng)求時(shí)發(fā)現(xiàn),服務(wù)端用request.getHeader("cookie")可以去到值; 但是用request.getCookies()卻不行

 Cookie mycookies[] = request.getCookies();

中永遠(yuǎn)獲取不到uid的值;(80端口號(hào)除外)

原因:

查了瀏覽器的具體cookie值,發(fā)現(xiàn)

http://localhost:8080/ 訪問的時(shí)候,cookie值放在localhost下,服務(wù)器自動(dòng)生成的SESSIONID也是存放在localhost路徑下。

http://127.0.0.1:8080/訪問的時(shí)候,cookie uid值放在127.0.0.1:8080下,在127.0.0.1:8080下的cookie服務(wù)端的Servlet永遠(yuǎn)都獲取不到;而服務(wù)器自動(dòng)生成的SESSIONID則是在127.0.0.1下,與uid存放位置不同。

所以在服務(wù)端下發(fā)cookie的時(shí)候,

String host=request.getHeader("host");

需要修改為

if(host.indexOf(":")>-1){
  host=host.split(":")[0];
  }

或者放棄設(shè)置

mycookie.setDomain(host);

這樣cookie值也是保存在127.0.0.1下的,與端口號(hào)不關(guān)聯(lián)

 當(dāng)然是服務(wù)器已經(jīng)有域名的就不會(huì)出現(xiàn)端口號(hào)下獲取不到cookie的值

解決辦法:

String cookie=request.getHeader("cookie");

Cookie mycookies[] = request.getCookies();

加上前面一行后面即可取到,

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

向AI問一下細(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