当前位置: 代码迷 >> 综合 >> 在读取Cookie,然后操作时,除了getName(),getValue()外,其它值都是Null
  详细解决方案

在读取Cookie,然后操作时,除了getName(),getValue()外,其它值都是Null

热度:27   发布时间:2024-01-05 14:09:57.0
在读取Cookie,然后操作时,除了getName(),getValue()外,不要妄图得到其他信息,如下方法不会得到值的:

cookie.getMaxAge();

cookie.getDomain();
。。。

因为,客户端传来的时候,就只剩下key和value了。





Java中的Cookie操作:



在Java中利用Serlvet或者JSP scriptlet可以向浏览器端写入Cookie。



同样,利用Servet或者JSP scriptlet 也可以读取到 Cookie信息。



Servlet规范中的Cookie API 如下:



setMaxAge setPath setDomain等方法,可以对Cookie状态进行控制;



同样存在如下方法,可以获得相应的状态:



getMaxAge getPath getDomain等方法,可以对Cookie的状态。





然后,问题来了:





读取Cookie时,发现除了Cookie的key和value外,其他的信息都丢失了!!



原因很简单:



Cookie从服务器端发送到客户端时,信息是完整的;



Cookie从客户器端发送到服务端时,信息只剩下key、value了。



(想想也明白,Domain不对的Cookie、Path不对的Cookie、过期的Cookie,客户端是不会发送过来的。)



那为什么Java中提供了相应的get方法呢? 那个方法是在生成Cookie后,尚未发送到客户端时,使用的。是“封装”的体现
  相关解决方案