`

java 浏览器关闭 代码中有清本地cookie的语句,但是也不起作用

阅读更多

//操作cookie的方法

    public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
        Cookie cookie = new Cookie(name,value);
        cookie.setPath("/");
        if(maxAge>0)  cookie.setMaxAge(maxAge);
        response.addCookie(cookie);
    }
   
    public static Cookie getCookieByName(HttpServletRequest request,String name){
        Map<String,Cookie> cookieMap = ReadCookieMap(request);
        if(cookieMap.containsKey(name)){
            Cookie cookie = (Cookie)cookieMap.get(name);
            return cookie;
        }else{
            return null;
        }  
    }
    
    private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){ 
        Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
        Cookie[] cookies = request.getCookies();
        if(null!=cookies){
            for(Cookie cookie : cookies){
                cookieMap.put(cookie.getName(), cookie);
            }
        }
        return cookieMap;
    }

 

 

java 有两个测试方法,一个是设置cookie,一个是清除cookie

看下页面变化:

设置cookie:

Cookie cookieTest = getCookieByName(request, "test");
        if(cookieTest == null) {
            String uuid = UUID.randomUUID().toString().replace("-", "");
            addCookie(response, "test", uuid, 360000);
        }

这个方法执行后,cookie key为 test,可以从前台获取到。

 

然后点击页面按钮,调用下个方法,清除cookie,清除前先执行一段时间吧。

 for(int i=0;i<1000000;i++) {
            System.out.println("i="+i);
        }
        Cookie cookieTest = getCookieByName(request, "test");
        cookieDid.setMaxAge(0);
        cookieDid.setPath("/");
        response.addCookie(cookieTest );

 

首先在不关闭浏览器的情况下,清除方法执行之后,发现cookie确实被清掉了,没有问题

但是另一种情况,在执行循环的过程中关闭掉浏览器,断点跟踪,实际上后台代码确实是执行了,但是重新进入发现cookie其实是没有清掉,跟上次生成的那个是一样的。

 

目前执行效果是这样,但是具体原因还是不是太清楚,猜测是因为cookie是通过HttpServletResponse 操作的,关闭页面,虽然执行了代码,但是可能由于浏览器关闭对cookie的操作就失效了吧。

 

分享到:
评论

相关推荐

    java jdk实列宝典 光盘源代码

    java为数据结构中的映射定义一个接口java.util.Map,有四个实现类HashMap Hashtable LinkedHashMap TreeMap用法和区别;对Map排序; 5字符串 使用String;判断一个字符串是否是合法的java标识符;使用StringBuffer;...

    java 面试题 总结

     GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...

    JAVA面试题最全集

    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出...

    java面试宝典

    68、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 17 69、文件读写的基本类 17 70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个...

    超级有影响力霸气的Java面试题大全文档

     GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...

    JavaScript基础&BOM,学习Java第42天

    它就是定义了脚本语言的所有属性、方法和对象,DOM把整个页面规划成由节点层构成的文档,它不与浏览器、平台、语言相关,为web开发者提供一个标准可以访问站点中的数据、脚本和表现层对象。BOM是浏览器的一种特性,...

    《javaScrip开发技术大全》源代码

    第2章(\代码\第02章) • sample01.htm 将JavaScript代码插入在标签与标签之间 • sample02.htm 将JavaScript代码放在了标签与标签之间 • sample03.htm JavaScript与HTML混合执行 • ...

    java实训题库(盗版必究)

    如果不设置有效期,这个cookie就是会话性的cookie,会话结束后cookie就被删除。如果不设置有效路径,那么cookie只在当前(创建cookie)路径有效。 3 servlet调用方式几种方法 答:通过JSP提交进行调用,可以通过...

    JavaScript完全自学宝典 源代码

    1.本书1~21章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:UltraEdit12.10a、eclipse-jee-europa Web浏览器:Microsoft Internet Explorer 6.0及以上版本 ...

    Servlet与JSP核心编程第2版

    11.3 限制jsp页面中java代码的量 11.4 jsp表达式的应用 11.5 示例:jsp表达式 11.6 servlet和jsp页面的对比 11.7 编写scriptlet 11.8 scriptlet示例 11.9 使用scriptlet将jsp页面的某些部分条件化 ...

    Java-Web程序设计题库(1).doc

    Java Web程序设计题库 一、选择题 1、以下文件名后缀中,只有( C )不是静态网页的后缀。 A、.html B、.htmC .JSP D、.shtml 2、以下文件名后缀中,只有( B )不是动态网页的后缀。 A、.jspB、.htmlC、.aspxD、...

    Java-Web程序设计题库.doc

    Java Web程序设计题库 一、选择题 1、以下文件名后缀中,只有( C )不就是静态网页的后缀。 A、、html B、、htm C 、JSP D、、shtml 2、以下文件名后缀中,只有( B )不就是动态网页的后缀。 A、、jsp B、、html C、、...

    Java-Web程序设计题库(2).doc

    Java Web程序设计题库 一、选择题 1、以下文件名后缀中,只有( C )不就是静态网页得后缀。 A、、html B、、htm C 、JSP D、、shtml 2、以下文件名后缀中,只有( B )不就是动态网页得后缀。 A、、...

    千方百计笔试题大全

    68、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 17 69、文件读写的基本类 17 70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个...

    JAVA编程百例(照着例子更容易!)

    实例2 java流程控制 实例20 工具栏 实例21 内部窗体 实例22 分割一个面板 实例23 滑动杆 实例24 颜色过滤器 实例25 表格 实例26 基本图形绘制 实例27 绘制波图形 实例28 图片的处理 实例29 绘制指针时钟 实例3 数组...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已...

    JavaScript权威指南(第六版) 清晰-完整

     David Flanagan是一名程序员,也是一名作家,它的个人网站是 。他在O’Reilly出版的其他畅销书还包括《JavaScript Pocket Reference》、《The Ruby Programming Language》、以及《Java in a Nutshell》。David...

    EL表达式 (详解)

    4) 1--EL表达式用${}表示,可用在所有的HTML和JSP标签中作用是代替JSP页面中复杂的JAVA代码. 2--EL表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有${param}和${paramValues}. ${param}表示返回请求参数...

    JavaScript权威指南(第6版)(中文版)

    第13章Web浏览器中的JavaScript 第14章脚本化浏览器窗口 第15章脚本化文档 第16章层叠样式表和动态HTML 第17章事件和事件处理 第18章表单和表单元素 第19章cookie和客户端持久性 第20章脚本化HTTP 第21章JavaScript...

    JavaScript权威指南(第五版)

     第13章 Web浏览器中的JavaScript  第14章 脚本化浏览器窗口  第15章 脚本化文档  第16章 层叠样式表和动态HTML  第17章 事件和事件处理  第18章 表单和表单元素   第19章 cookie和客户端持久性  第...

Global site tag (gtag.js) - Google Analytics