【问题标题】:Why is setmaxage not allowing longer time than ~5mins [closed]为什么 setmaxage 不允许超过 ~5 分钟的时间 [关闭]
【发布时间】:2012-09-13 20:49:28
【问题描述】:

在我的 jsp 文件中,我设置了一个我想保留一年的 cookie。我已经使用了设置的最大年龄并乘以我的秒数,所以它是一年。然而,cookie 只持续大约 5 分钟。即使我输入了一个大得离谱的值,它仍然只能持续约 5 分钟。

我在 localhost 上进行测试,这与它有什么关系吗?

代码如下:

    //value to check if the EU compliance cookie is present
boolean euCookiePresent = false;
//cookie parameters
String cookieName = "wtr_ca";
String cookieValue = "1";
int cookieExpiry = 365;

//cookie expiary is in seconds so convert to days
cookieExpiry = cookieExpiry * 60 * 60 * 24;

//Get clients cookies
Cookie cookies [] = request.getCookies ();

if (cookies != null){
    //iterate over users cookies to check for euCookie
    for (int i = 0; i < cookies.length; i++) 
    {
        if (cookies [i].getName().equals (cookieName)){
            euCookiePresent = true;
            break;
        }
    }

}

if (euCookiePresent == false){
    //no EU Cookie found therefore place it on client
    response.setContentType("text/html");
    Cookie cookie = new Cookie(cookieName,cookieValue);

    //cookie expiary is in seconds so convert to days
    cookie.setMaxAge(cookieExpiry);
    response.addCookie(cookie); 
}

【问题讨论】:

  • //cookie expiary is in seconds so convert to days 实际上正好相反://cookie expiary is in seconds so convert from days to seconds。转换本身很好。 ;)

标签: java jsp cookies


【解决方案1】:
cookie.setMaxAge(60*60*24);

将最大年龄设置为大约 1 小时,没有一年

你想要做的是:

cookie.setMaxAge(cookieExpiry);

【讨论】:

  • 对不起,这是为了测试,即使我指定了高于它的值仍然只保留了 ~5 分钟
【解决方案2】:

由于某种原因,Maven 不再将我的新代码放在服务器上,因此它仍在使用我的 365 秒,而不是将其转换为天的更新代码。

【讨论】:

  • 那么你上面的代码工作了吗?如果是这样,我建议删除这个问题,因为它无效。
  • 我试过了,但由于已经回答,我无法删除。
  • 我明白了。我标记了它以引起版主的注意,因此他们可以删除该问题。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 2015-07-24
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多