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

成都創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè),為客戶提供成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。
現(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ì)本站的支持!
分享名稱:java中ServletCookie取不到值原因解決辦法
文章分享:http://www.chinadenli.net/article4/pessie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、、外貿(mào)建站、商城網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)