Java 更新现有cookie的域

Java 更新现有cookie的域,java,cookies,dns,Java,Cookies,Dns,我有一个网站名www.goo.com,在创建cookie时,我经常保存cookie而不声明域名。 现在,我想添加子域名foo.goo.com 我将cookie保存在域中,而不是子域中。 有两个问题: 我想删除旧的cookie。 我已经尝试过“cookie.setMaxAge(0)”,问题是在Firefox和chrome中它不起作用。它只在IE中工作。 为什么?我能做些什么呢 当我这样做的时候 Cookie[] cookie = request.getCookies(); if (cookie !

我有一个网站名www.goo.com,在创建cookie时,我经常保存cookie而不声明域名。 现在,我想添加子域名foo.goo.com 我将cookie保存在域中,而不是子域中。 有两个问题:

  • 我想删除旧的cookie。 我已经尝试过“cookie.setMaxAge(0)”,问题是在Firefox和chrome中它不起作用。它只在IE中工作。 为什么?我能做些什么呢

  • 当我这样做的时候

    Cookie[] cookie = request.getCookies();
    if (cookie != null) {
       for (int i = 0; i < cookie .length; i++) {
           cookie[i].getDomain();   //here i get null.why?
       }
    }
    
    发送内容类型

    我还尝试通过响应发送cookie

    对于这里提出的两个问题,有人有另一个想法吗

  • 此处回答:(您需要发送文本/html内容类型)

  • 当客户端向服务器发送cookie时,它只发送名称/值。其他字段仅在设置cookie时可用


  • 这个曲奇是。。。所以他拥有这个域名。试着通过响应发送cookie吗<代码>响应.setHeader(“设置Cookie”,名称+”=“+value+”;最大年龄=“+maxAge+”;过期=“+expireTime”)和做addcookie一样,对吗?什么是过期的?是的,它是一样的。关于
    max age
    expires
    ,只需使用其中一个。第二个答案应该是正确的。至于第一个,我从来没有使用过Javaservlet,我也不知道为什么Firefox和Chrome不遵守expire字段。一个可能的问题(IIRC)是所有字段(路径、域、安全等)必须匹配才能擦除cookie,而不是创建另一个立即删除的cookie。
    response.setContentType("text/html");