为什么setmaxage不允许比~5分钟更长的时间

时间:2012-09-13 09:23:18

标签: java jsp cookies

在我的jsp文件中,我正在设置一个我想要坚持一年的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); 
}

2 个答案:

答案 0 :(得分:1)

cookie.setMaxAge(60*60*24);

将最长年龄设置为约1小时,不是一年

你要做的是:

cookie.setMaxAge(cookieExpiry);

答案 1 :(得分:0)

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