如果我在将来设置一个带有setMaxAge()的cookie,当我在后续请求中将cookie读回内存时,getMaxAge()会给我一个-1.我已经通过Chrome的设置和检查员检查了实际的Cookie,并且我可以验证到期日期确实设置为60天.
static public void setHttpCookie(HttpServletResponse response, String payload) {
Cookie c = new Cookie(COOKIE_NAME, payload);
c.setMaxAge(60*86400); // expire sixty days in the future
c.setPath("/"); // this cookie is good everywhere on the site
response.addCookie(c);
}
static public String checkForCookie(HttpServletRequest req) {
Cookie[] cookies = req.getCookies();
if ( cookies != null ) {
for ( Cookie c : cookies ) {
if ( COOKIE_NAME.equals(c.getName()) ) {
int maxAge = c.getMaxAge();
logger.debug("Read back cookie and it had maxAge of {}.", maxAge);
String payload = c.getValue();
return payload;
}
}
}
return null;
}
为什么c.getMaxAge()总是返回-1?