大牛?无他,唯手熟尔!

java中无法删除cookie之解决

2016-07-04 09:55:52来源:caogenjava阅读[1157]评论[0]
摘要:笔者最近有一个项目需要在退出时删除相关cookie,利用手头现有的方法就是删不掉,宝宝真是一脸无奈,后来经过多方查找,最终搞定,现在整理出来跟大家分享一下。

本文由草根java提供,转载请注明出处https://www.caogenjava.com/detail/82.html

笔者最近有一个项目需要在退出时删除相关cookie,利用手头现有的方法就是删不掉,宝宝真是一脸无奈,后来经过多方查找,最终搞定,现在整理出来跟大家分享一下。

先贴一下有问题的代码:

//设置保存一个cookie
public static void setCookie(HttpServletResponse response,String key,String value,int age){
        Cookie cookie = new Cookie(key, value);
        cookie.setMaxAge(age);
        response.addCookie(cookie);
}

//删除cookie
public static void deleteCookie(HttpServletResponse response,String key){
        Cookie cookie = new Cookie(key, null);
        cookie.setMaxAge(0);
        response.addCookie(cookie);
}

不饶圈子,直接贴出完善后的代码:

public static void setCookie(HttpServletResponse response,String key,String value,int age){
        Cookie cookie = new Cookie(key, value);
        cookie.setPath("/");//这一点很重要
        cookie.setMaxAge(age);
        response.addCookie(cookie);
}

public static void deleteCookie(HttpServletResponse response,String key){
        Cookie cookie = new Cookie(key, null);
        cookie.setPath("/");//这一点很重要
        cookie.setMaxAge(0);
        response.addCookie(cookie);
}

大家看到没,关键点在这里cookie.setPath("/")。在最初的方法里我没有加,导致删除失败。cookie设置里还有一个setDomain,网上有资料说也必须加,但是在笔者的项目里没有设置这个属性也同样成功删除了cookie。


除非注明,文章均为草根java原创,转载请注明本文地址: https://www.caogenjava.com/detail/82.html

上一篇:mysqldump备份报-bash: c89#64: command not found之解决        下一篇:论坛注册:用户名包含被系统屏蔽的字符之完美解决
网友评论,共0 发表评论
昵称:
评论:
验证码: 刷新验证码