JSP中cookie.getMaxAge() 怎么总是得到 -1 呢? 你弄明白没啊???我郁闷了一天了现在也搞明白

不知道怎么回事我贴代码的提问题竟然不显示出来,
我用一个页面设置给客户端添加cookie,
用另一个页面获取cookie,能获取到值,只有getValue(); 返回值是正确的,
其他所有值都被默认了一样,时间变成了-1.,domain和path等变成null,问题出在什么地方啊?是版本问题?
环境是:
我用ie6和ie8结果是一样的,而服务器是 tomcat的 
你们好像说的和我搜索出来的是一样的。。。我是真弄不明白了才来提问的。。。4楼所说的path我设置了但下次读到path值变成null了啊,

再就是add过后。我就用输出语句输出他们的值都是正确的,

cookie 的流程 

new Cookie()->response ->client ->request -> getCookies 如果你设置的PATH正确的话,就能正确取到了

我也碰到这个问题了,也很疑惑,同问。我的代码(JSP):
写cookie的部分:

Cookie cookie = new Cookie("write", "cookie_write");
cookie.setComment("a cookie test");
cookie.setVersion(100);
cookie.setMaxAge(60 * 60 * 1000);
String host=request.getHeader("host");
if(host.indexOf(":")>0){
host=host.split(":")[0];
}
cookie.setDomain(host);
cookie.setPath("/");//这行去掉和留下都试过,都一样
response.addCookie(cookie);

在最后这儿留断点,发现包括MaxAge之类都是对的。

读的部分:
Cookie cookies[] = request.getCookies();
if (cookies != null) {
out.println(" cookie:" + cookies.length);
out.println("<br>" + "<br>");
for (int i = 0; i < cookies.length; i++) {
out.println("getName=" + cookies[i].getName() + "<br>");
out.println("getValue=" + cookies[i].getValue() + "<br>");
out.println("getComment=" + cookies[i].getComment() + "<br>");
out.println("getDomain=" + cookies[i].getDomain() + "<br>");
out.println("getPath=" + cookies[i].getPath() + "<br>");
out.println("getPath=" + cookies[i].getPath() + "<br>");
out.println("getMaxAge=" + cookies[i].getMaxAge() + "<br>");
out.println("getVersion=" + cookies[i].getVersion() + "<br>");
out.println("getSecure=" + cookies[i].getSecure() + "<br>");
out.println("<br>" + "<br>");
}
}

读的这儿就不对了,都是null或者-1(MaxAge),但是能关了ie再开都能读到表示没过期(如果前面setMaxAge设置为-1,关了就没了)。

我也很疑惑,不知道有没有人一起研究一下。

-1表示该cookie生命周期为浏览器进程,浏览器关闭时该cookie会自动消亡。

貌似默认就是-1,与浏览器同在

你可以在tomcat等那些服务器上修改,祝你好运

猜你喜欢

转载自blog.csdn.net/czh500/article/details/80220605