java中Servlet Cookie取不到值原因解决办法
java中Servlet Cookie取不到值原因解决办法
现象:
在测试带Cookie的HTTP请求时发现,服务端用request.getHeader("cookie")可以去到值; 但是用request.getCookies()却不行
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的时候,
String host=request.getHeader("host");
需要修改为
if(host.indexOf(":")>-1){ host=host.split(":")[0]; }
或者放弃设置
mycookie.setDomain(host);
这样cookie值也是保存在127.0.0.1下的,与端口号不关联
当然是服务器已经有域名的就不会出现端口号下获取不到cookie的值
解决办法:
String cookie=request.getHeader("cookie"); Cookie mycookies[] = request.getCookies();
加上前面一行后面即可取到,
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
SpringBoot基于Minio实现分片上传、断点续传的实现
本文主要介绍了SpringBoot基于Minio实现分片上传、断点续传的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-08-08解决Springboot @Autowired 无法注入问题
WebappApplication 一定要在包的最外层,否则Spring无法对所有的类进行托管,会造成@Autowired 无法注入。接下来给大家介绍解决Springboot @Autowired 无法注入问题,感兴趣的朋友一起看看吧2018-08-08当Transactional遇上synchronized的解决方法分享
前些时间刚好刷到了有关于“# 【事务与锁】当Transactional遇上synchronized”这一类的文章,感觉这也是工作中经常会遇到的一类问题了。所以就针对这个话题进行了分析并整理了常用的解决方法,希望对大家有所帮助2023-05-05Java中对象 和 json 互转四种方式 json-lib、Gson、FastJson、Jackson
这篇文章主要介绍了Java中对象 和 json 互转 四种方式 json-lib、Gson、FastJson、Jackson,需要的朋友可以参考下2023-11-11
最新评论