我最近调试并验证了使用Cookie.setMaxAge()
不会产生任何影响。对于后续请求,如果调用getMaxAge()
,它将始终返回-1(如果设置了任何正值)或0(如果将其显式设置为0)。
我只是好奇,所以拥有setMaxAge
有什么意义?无论如何,您永远无法真正确定Cookie的年龄(除非您使用JWT之类的方法来传递声明和iat
字段)。根据Servlet 2.x文档:
公共无效setMaxAge(int到期) 设置Cookie的最长使用期限(以秒为单位)。 正值表示cookie将在经过许多秒后过期。请注意,该值是Cookie过期的最长期限,而不是cookie的当前期限。
负值表示cookie不会持久存储,并且在Web浏览器退出时将被删除。零值会导致删除Cookie。
参数:expiry-一个整数,指定最大使用期限 饼干在几秒钟内;如果为负,则表示未存储cookie;如果 零,删除Cookie
对于getMaxAge()
以秒为单位返回Cookie的最长使用期限(以秒为单位) 默认值为-1,表示Cookie将一直保留到浏览器关闭为止。
有人可以澄清吗?