Cookie getMaxAge
我无法检索cookie maxage它总是返回-1
创建cookie:
Cookie securityCookie = new Cookie("sec", "somevalue"); securityCookie.setMaxAge(EXPIRATION_TIME);
检索cookie:
Cookie[] cookies = request.getCookies(); if (cookies != null) { for(int i=0; i<cookies.length; i++) { Cookie cookie = cookies[i]; if ("sec".equals(cookie.getName())){ int age = cookie.getMaxAge(); } } }
我总是年龄= -1
当我检查firefox cookie到期时,我看到奇怪的日期。
谢谢
当浏览器将cookie发送回原始服务器时,它不包含任何年龄。 因此,上面的“检索”代码没有收到最大年龄是合乎逻辑的:它不包含在请求中。
当从服务器收到cookie时,浏览器使用max age参数来确定cookie应保留多长时间; 年龄永远不会传回服务器,过期的cookie就会被丢弃。 处理请求时,如果要续订cookie的年龄,请在响应中重新包含cookie。
另请参阅RFC中的 “将Cookie发送到源服务器”部分。
API表示-1表示浏览器运行之前:
返回cookie的最大年龄,以秒为单位指定。默认情况下,-1表示cookie将持续存在直到浏览器关闭
EXPIRATION_TIME常量的值是多少?
该值可以由浏览器修改。
您创建一个cookie并想要设置最大年龄。 cookie被发送到浏览器。 浏览器可以拒绝cookie或忽略其策略的最大年龄。 此修改后的cookie将发送回您的应用程序。
检查您的浏览器设置。
只是为了笑容,你能用浏览器从浏览器中检索cookie的价值吗?
另外,您可以在servlet / jsp之前放置一个filter,以便在servlet / jsp设置之后检查cookie的值吗?