java中Servlet Cookie取不到值原因解决办法

2025-05-29 0 56

java中Servlet Cookie取不到值原因解决办法

现象:

在测试带Cookie的HTTP请求时发现,服务端用request.getHeader("cookie")可以去到值; 但是用request.getCookies()却不行

?

1
Cookie mycookies[] = request.getCookies();

中永远获取不到uid的值;(80端口号除外)

原因:

查了浏览器的具体cookie值,发现

http://localhost:8080/ 访问的时候,cookie值放在localhost下,服务器自动生成的SESSIONID也是存放在localhost路径下。

http://127.0.0.1:8080/访问的时候,cookie uid值放在127.0.0.1:8080下,在127.0.0.1:8080下的cookie服务端的Servlet永远都获取不到;而服务器自动生成的SESSIONID则是在127.0.0.1下,与uid存放位置不同。

所以在服务端下发cookie的时候,

?

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

需要修改为

?

1

2

3
if(host.indexOf(":")>-1){

host=host.split(":")[0];

}

或者放弃设置

?

1
mycookie.setDomain(host);

这样cookie值也是保存在127.0.0.1下的,与端口号不关联

当然是服务器已经有域名的就不会出现端口号下获取不到cookie的值

解决办法:

?

1

2

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

Cookie mycookies[] = request.getCookies();

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java中Servlet Cookie取不到值原因解决办法 https://www.kuaiidc.com/116008.html

相关文章

发表评论
暂无评论