您现在的位置是:首页 > 正文

Servlet Cookie取不到值原因

2024-01-30 22:53:16阅读 0

现象:

在测试带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();

加上前面一行后面即可取到,还是有点莫名其妙。

转载于:https://www.cnblogs.com/kxdblog/p/6395839.html

网站文章

  • Java中的类与变量

    一、静态 1、类的静态成员与类直接相关,与对象无关,在一个类的所有实例之间共享同一个静态成员,该类的对象共享其静态成员变量的值 2、静态成员函数中不能调用非静态成员,静态成员变量可被该类的所有方法访问...

    2024-01-30 22:52:48
  • 网络安全,别报!!!

    网络安全,别报!!!

    网络安全究竟要不要报?7年网工如是说

    2024-01-30 22:52:38
  • 思考R-CNN的一些问题,如何提取特征,分类,训练,测试

    思考R-CNN的一些问题,如何提取特征,分类,训练,测试

    1.R-CNN是什么 论文链接 把region proposal和CNNs结合起来,所以该方法被称为R-CNN:Regions with CNN features,整个检测系统有三个模块构成。 第一个...

    2024-01-30 22:52:31
  • React自定义Hooks——useLocalStorage

    封装任何的函数,都是将一些重复的逻辑单独封装到一个函数。而不是为了封装而封装。 定义useLocalStorage,是因为localStorage,在不同的组件中获取,更新。每次更新或者获取都是loc...

    2024-01-30 22:52:25
  • 数据通信与计算机网络 TASK0

    数据通信与计算机网络 TASK0

    数据通信与计算机网络 TASK0

    2024-01-30 22:51:55
  • goland的激活码 热门推荐

    goland的激活码 http://idea.youbbs.org

    2024-01-30 22:51:49
  • Numpy基础一:ndarray

    Numpy基础一:ndarray

    1. ndarray对象numpy中的内置多维数组类型ndarray由一系列同类型数据所构成,并以0作为下标开始索引。ndarray中的每个元素在内存中都有相同的存储大小区域。ndarray由以下四部...

    2024-01-30 22:51:43
  • token 应该存在 Cookie、SessionStorage 还是 LocalStorage 中?

    3. LocalStorage:将token存储在localStorage中的优点是,即使在浏览器关闭后,localStorage中的数据仍然存在,因此用户可以保持登录状态。2. SessionSto...

    2024-01-30 22:51:13
  • eth0与enp0s0,为什么采用不同的网卡命名方式?

    eth0与enp0s0,为什么采用不同的网卡命名方式?

    旧的网卡命名方式,其网卡名字重启容易变动,无法预测。而新的做成了无状态的,基于fireware/bios/物理硬件插槽位置来确定网卡名字,具有预测性与确定性。可定制自己需要的网卡命名方式。

    2024-01-30 22:51:08
  • 【实验】Linux系统编译安装mysql数据库

    【实验】Linux系统编译安装mysql数据库

    编译安装mysql数据库首先上传mysql的程序包,我们这里使用的是mysql的5.6.36版本,链接:https://pan.baidu.com/s/1dEwaJqk3BMRYB-ejat_kYQ提...

    2024-01-30 22:51:00