Java 在servlet中,如何设置永不过期的Cookie?
从servlet中,如何设置永不过期的cookie 我试过这样做:Java 在servlet中,如何设置永不过期的Cookie?,java,jakarta-ee,servlets,cookies,Java,Jakarta Ee,Servlets,Cookies,从servlet中,如何设置永不过期的cookie 我试过这样做: Cookie cookie = new Cookie("xyz",""); cookie.setMaxAge(-1); 但是,当我这样做时,它会在用户关闭浏览器时立即过期。设置最大使用期限:您可以使用setMaxAge指定cookie的有效时间(以秒为单位)。下面将设置一个24小时的cookie cookie.setMaxAge(60*60*24); 如果您使用负数调用setMaxAge()(或根本不调用它),cookie
Cookie cookie = new Cookie("xyz","");
cookie.setMaxAge(-1);
但是,当我这样做时,它会在用户关闭浏览器时立即过期。设置最大使用期限:您可以使用setMaxAge指定cookie的有效时间(以秒为单位)。下面将设置一个24小时的cookie
cookie.setMaxAge(60*60*24);
如果您使用负数调用
setMaxAge()
(或根本不调用它),cookie将在用户浏览器会话结束时过期。发件人:
负值表示cookie不会持久存储,并且在Web浏览器退出时将被删除
对于“永不”过期的cookie,典型的方法是将过期时间设置为将来的某个时间段。例如:
cookie.setMaxAge(60 * 60 * 24 * 365 * 10);
将在未来设定10年的到期时间。用户很可能会在未来10年内清除cookie(或者可能只是获得一台新计算机),因此这实际上与指定cookie永不过期相同
请记住,cookies实际上没有“最大年龄”的概念;实际实现的方式是,Java将指定的秒数添加到服务器的当前系统时间,然后发送该时间作为cookie的过期时间。因此,服务器时间和客户端时间之间的严重不匹配可能会使事情变得复杂一点——您所能做的最好的事情(至少很容易)是确保服务器时钟设置正确,并希望客户端时钟设置正确