`

为什么你的cookie删不掉

    博客分类:
  • web
阅读更多

创建cookie:

Cookie cookie1 = new Cookie("username", username);
cookie1.setMaxAge(30 * 24 * 60 * 60); //用户名保留1个月
cookie1.setPath("/");           //此时服务器上的所有页面都可以接收到该Cookie
response.addCookie(cookie1);


读取cookie:

Cookie[] cookies = request.getCookies();
    if(cookies != null){
        for(int i = 0; i < cookies.length; i++){
            if(cookies[i].getName().equals("username")){
                username=URLDecoder.decode(cookies[i].getValue(), "utf-8");
            }
        }       
    }


删除cookie:

Cookie[] cookies = request.getCookies();
        if(cookies != null){
            for(int i = 0; i < cookies.length; i++){
                Cookie temp = cookies[i];
                if(temp.getName().equals("username")){
                    if("0".equals(b1)){
                        temp.setMaxAge(0);  //设置有效时间为0,则系统会自动删除过期的cookiessss
                        temp.setPath("/");     //项目所有目录均有效,这句很关键,否则不敢保证删除
                        response.addCookie(temp);  //重新写入,将覆盖之前的
                    }
                }
            }
        }


总结: setPath设置Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面(JSP页面或者Servlet的映射)所在目录及其子目录下的所有页面。

所以为什么很多时候你认为已经删除了cookie,但是在另一个页面cookie就是存在,所以一定要加上:这两段代码:

temp.setPath("/");      //项目所有目录均有效,这句很关键,否则不敢保证删除
response.addCookie(temp);   //重新写入,将覆盖之前的

分享到:
评论

相关推荐

    如何解决项目中npm无法卸载依赖的问题

    1.打开项目文件下的 node_modules 文件下,找到你要卸载依赖的名称,这里以 js-cookie 为例,如图: 2.然后按 delete 键直接删除,返回项目 package.json 中,找到 “js-cookie”: “^2.2.0” ,删除即可,如图:...

    Django中的session用法详解

    - `SESSION_COOKIE_AGE`:设定Session的cookie有效期,默认为两周(1209600秒)。 - `SESSION_EXPIRE_AT_BROWSER_CLOSE`:如果设为True,关闭浏览器时Session将失效。 2. **缓存Session**:使用缓存系统(如内存...

    Wipe(强力缓存删除工具) v18.01.zip

    软件支持IE, FireFox,Opera,Chrome等主流的浏览工具且功能强大,可以清除用户浏览器的历史记录,Index.dat文件,Cookie,缓存,浏览器产生的临时文件,搜索记录等记录,并彻底杜绝相关数据被恢复的可能,以达到...

    浏览器端存放数据技术.txt

    - **大小限制**:每个域名下的Cookie大小有限制,一般不超过4KB。 - **安全性**:可以通过设置Cookie的属性(如`HttpOnly`)来提高其安全性,防止XSS攻击。 - **生命周期**:可以根据需要设置Cookie的有效期,可以是...

    net学习笔记及其他代码应用

    6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理? 答 : this.Server.Transfer 7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? ...

    原动力CMS PHP域名授权系统V3.0(官方原版无限使用)

    1. 数据库操作:通过SQL语句进行数据的增删改查,使用ORM(对象关系映射)框架如PDO或Doctrine,可以使代码更加简洁。 2. RESTful API设计:提供清晰、结构化的接口,便于前后端分离的架构下进行通信。 3. 安全性:...

Global site tag (gtag.js) - Google Analytics