作者:投资改变生活-青岛_688 | 来源:互联网 | 2023-09-13 16:36
我想把客户端的cookie全部读取出来,不过我用request.getCookies()返回的只是一个内存cookie,cookieNameJSessionID,value是一个十六进制的字符串
我想把客户端的COOKIE全部读取出来,不过我用request.getCOOKIEs()返回的只是一个内存COOKIE,COOKIEName='JSessionID',value是一个十六进制的字符串,(这个COOKIE在客户端不存在)它没把客户端的COOKIE取出来,为什么只取了一个内存的COOKIE.希望达人解决.
8 个解决方案
COOKIE存在一定的路径,看看是不是你读取COOKIE的路径和设置COOKIE的路径不一致?
楼主没有搞清楚下面两者的区别:
会话COOKIE和持久COOKIE的区别 :
如果不设置过期时间,则表示这个COOKIE生命周期为浏览器会话期间,只要关闭浏览器窗口,COOKIE就消失了。这种生命期为浏览会话期的COOKIE被称为会话COOKIE。会话COOKIE一般不保存在硬盘上而是保存在内存里。
如果设置了过期时间,浏览器就会把COOKIE保存到硬盘上,关闭后再次打开浏览器,这些COOKIE依然有效直到超过设定的过期时间。
存储在硬盘上的COOKIE可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的COOKIE,不同的浏览器有不同的处理方式。
什么时候是保存在内存中,什么时候保存在硬盘中
上面说的很清楚了,你看以下吧
哦,知道啦,不过我用COOKIE.setContextPath("/")写不到客户端,但是用COOKIE.setContextPath("/192.168.210.77")却可以写到客户端,这是为什么?
我的硬盘上确实生成了COOKIE文件,但是request.getCOOKIEs()方法却只得到了一个名为JSessionId的COOKIE:
name:JSESSIONID,value:BBD8308DDE8E0EA6035D47B02F110452。
而我真正需要的COOKIE却没能得到,这是为什么呢?请高人指点,谢谢!
问题:想把客户端的COOKIE全部读取出来,不过用request.getCOOKIEs()返回的只是一个内存COOKIE,COOKIEName='JSessionID',value是一个十六进制的字符串,(这个COOKIE在客户端不存在)它没把客户端的COOKIE取出来,为什么只取了一个内存的COOKIE.希望达人解决.
解决方案如下:
其实这里面有一个path路径的问题在作怪 ! ! 其实学者可以在那个设置好的COOKIE后面,用(COOKIE名).setPath("/");
有时候解决问题就是这么简单,只因为你的COOKIE作用范围不够大,所以你访问的域名路径无法用你先前设置的COOKIE。