爲何 cookie.getMaxAge() 老是獲得 -1 ?

static public void setHttpCookie(HttpServletResponse response, String payload) {
    Cookie c = new Cookie(COOKIE_NAME, payload);
    c.setMaxAge(60*86400); // expire sixty days in the future
    c.setPath("/"); // this cookie is good everywhere on the site
    response.addCookie(c);
}

static public String checkForCookie(HttpServletRequest req) {
    Cookie[] cookies = req.getCookies();
    if ( cookies != null ) {
        for ( Cookie c : cookies ) {
            if ( COOKIE_NAME.equals(c.getName()) ) {
                int maxAge = c.getMaxAge();
                logger.debug("Read back cookie and it had maxAge of {}.", maxAge);
                String payload = c.getValue();
                return payload;
            }
        }
    }
    return null;
}

  

瀏覽器不發送cookie屬性,好比路徑和年齡。它只返回名稱和值。若是max過時了,瀏覽器就不會發送cookie了。若是瀏覽器路徑沒有被新URI覆蓋,那麼瀏覽器不管如何也不會發送cookie。若是你真的須要在設置cookie以後肯定cookie的年齡,那麼在你設置cookie時,你應該在其餘地方記住它,例如在數據庫表中,與登陸的用戶和cookie名稱相關聯。這個問題與ava servlet無關。這就是由HTTP cookie指定的。java

相關文章
相關標籤/搜索