<%
Cookie[] coo = request.getCookies(); for (int i = 0; i < coo.length; i++) {
String cc = coo[i].getValue();
System.out.println(request.getRemoteAddr() + ":"
+ coo[i].getValue());
out.println(coo[i].getValue());
out.println(coo[i].getMaxAge() + "\n");
} String name = request.getParameter("userName");
Cookie cookie = new Cookie("name", name);
cookie.setMaxAge(60 * 50);
response.addCookie(cookie);
out.println("write cookie");
%>
这是我的代码,在apache-tomcat-6.0.14 测试总是 getMaxAge 总是得到 -1,不明白是怎么回事,那们帮解释一下,谢谢了
Cookie[] coo = request.getCookies(); for (int i = 0; i < coo.length; i++) {
String cc = coo[i].getValue();
System.out.println(request.getRemoteAddr() + ":"
+ coo[i].getValue());
out.println(coo[i].getValue());
out.println(coo[i].getMaxAge() + "\n");
} String name = request.getParameter("userName");
Cookie cookie = new Cookie("name", name);
cookie.setMaxAge(60 * 50);
response.addCookie(cookie);
out.println("write cookie");
%>
这是我的代码,在apache-tomcat-6.0.14 测试总是 getMaxAge 总是得到 -1,不明白是怎么回事,那们帮解释一下,谢谢了
怀疑是没写path
package com.syj.util;import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/**
* <p>
* Title: Cookie工具类
* </p>
*
* @author 孙钰佳
* @main [email protected]
* @date May 4, 2008 8:45:43 PM
*/
public class CookieUtil { public static String getCookieValue(Cookie[] cookies, String cookieName,
String defaultValue) {
if (null == cookies)
return "";
for (int i = 0, size = cookies.length; i < size; i++) {
Cookie cookie = cookies[i];
if (cookieName.equals(cookie.getName()))
return cookie.getValue();
}
return defaultValue;
} public static void setCookie(HttpServletResponse response,
String cookieName, String cookieValue) {
Cookie cookie = new Cookie(cookieName, cookieValue);
cookie.setPath("/");
response.addCookie(cookie);
} public static void setCookie(HttpServletResponse response,
String cookieName, String cookieValue, int cookieMaxage) {
Cookie cookie = new Cookie(cookieName, cookieValue);
cookie.setMaxAge(cookieMaxage);
cookie.setPath("/");
response.addCookie(cookie);
} public static String getCookieValue(HttpServletRequest request,
String cookieName, String defaultValue) {
return getCookieValue(request.getCookies(), cookieName, defaultValue);
} public static void delCookie(HttpServletResponse response, String cookieName) {
Cookie delCookie = new Cookie(cookieName, null);
delCookie.setMaxAge(0);
delCookie.setPath("/");
response.addCookie(delCookie);
}
}
楼主是说你的那个名字为“name”的Cookie的getMaxAge()总是得到 -1 ?
如果是别的Cookie还有可能。如果是这个Cookie的话,不太可能啊?你明明已经 setMaxAge(60 * 50); 了啊。解决方案:
1、多刷新几次。
2、换个浏览器查看结果。
3、检查你的浏览器设置,是否禁用Cookie之类的?
Cookie[] coo = request.getCookies();
coo[i].getMaxAge()
是可以得到Cookie的
我用了 FireFox 也不行,并且换了 服务器 glassfish 也不行