zoukankan      html  css  js  c++  java
  • 为什么 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指定的。

  • 相关阅读:
    软件的一般实现过程
    前端开发所需技能及理解
    前端开发所需技能
    JavaScriptlet和const的使用
    [NOI2013] 向量内积
    [省选联考 2021 A/B 卷] 滚榜
    [提高组集训2021] 模拟赛2
    [省选联考 2021 A 卷] 矩阵游戏
    [省选联考 2021 A/B 卷] 图函数
    [APIO2020] 交换城市
  • 原文地址:https://www.cnblogs.com/liqing-weikeyuan/p/8192768.html
Copyright © 2011-2022 走看看