原文地址:http://blog.csdn.net/lansetiankong12/article/details/52622654

/**

* 读取所有cookie

* 注意二、从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用来判断Cookie是否过期

* @param request

* @param response

*/

     @RequestMapping("/showCookies")  

        publicvoid showCookies(HttpServletRequest request,HttpServletResponse response ){  

            Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组  

            if(null==cookies) {  

                System.out.println("没有cookie=========");  

            }else{  

                for(Cookie cookie : cookies){  

                    System.out.println("name:"+cookie.getName()+",value:"+ cookie.getValue());  

                }  

            }  

        }  

/**

* 添加cookie

* @param response

* @param name

* @param value

*/

     @RequestMapping("/addCookie")  

        publicvoid addCookie(HttpServletResponse response,String name,String value){  

            Cookie cookie = newCookie(name.trim(), value.trim());  

            cookie.setMaxAge(30* 60);// 设置为30min  

            cookie.setPath("/");  

            System.out.println("已添加===============");  

            response.addCookie(cookie);  

        }  

/**

* 修改cookie

* @param request

* @param response

* @param name

* @param value

* 注意一、修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。

*/

  @RequestMapping("/editCookie")  

        publicvoid editCookie(HttpServletRequest request,HttpServletResponse response,String name,String value){  

            Cookie[] cookies = request.getCookies();  

            if(null==cookies) {  

                System.out.println("没有cookie==============");  

            }else{  

                for(Cookie cookie : cookies){  

                    if(cookie.getName().equals(name)){  

                        System.out.println("原值为:"+cookie.getValue());  

                        cookie.setValue(value);  

                        cookie.setPath("/");  

                        cookie.setMaxAge(30* 60);// 设置为30min  

                        System.out.println("被修改的cookie名字为:"+cookie.getName()+",新值为:"+cookie.getValue());  

                        response.addCookie(cookie);  

                        break;  

                    }  

                }  

            }  

        }  

/**

* 删除cookie

* @param request

* @param response

* @param name

*/

 @RequestMapping("/delCookie")  

        publicvoid delCookie(HttpServletRequest request,HttpServletResponse response,String name){  

            Cookie[] cookies = request.getCookies();  

            if(null==cookies) {  

                System.out.println("没有cookie==============");  

            }else{  

                for(Cookie cookie : cookies){  

                    if(cookie.getName().equals(name)){  

                        cookie.setValue(null);  

                        cookie.setMaxAge(0);// 立即销毁cookie  

                        cookie.setPath("/");  

                        System.out.println("被删除的cookie名字为:"+cookie.getName());  

                        response.addCookie(cookie);  

                        break;  

                    }  

                }  

            }  

        }  

/**

* 根据名字获取cookie

* @param request

* @param name cookie名字

* @return

*/

  public Cookie getCookieByName(HttpServletRequest request,String name){  

        Map<String,Cookie> cookieMap = ReadCookieMap(request);  

        if(cookieMap.containsKey(name)){  

            Cookie cookie = (Cookie)cookieMap.get(name);  

            returncookie;  

        }else{  

            returnnull;  

        }    

    }  

通常开发时先用以下的代码将获取的cookie进行封装

/**

* 将cookie封装到Map里面

* @param request

* @return

*/

 private Map<String,Cookie> ReadCookieMap(HttpServletRequest request){    

        Map<String,Cookie> cookieMap = newHashMap<String,Cookie>();  

        Cookie[] cookies = request.getCookies();  

        if(null!=cookies){  

            for(Cookie cookie : cookies){  

                cookieMap.put(cookie.getName(), cookie);  

            }  

        }  

        returncookieMap;  

    }  

java 设置Cookie值的更多相关文章

  1. PHP 设置Cookie值注意项

    Cookie 中的value值只能添加设置为String类型的字符串数据,但我们需要添加如数组,json串等其他类型的数据时,我们就要先对数据进行转换,再存入Cookie里了. Cookie 存储数组 ...

  2. PHP Java 设置cookie方法

      Java Cookie cookie = new Cookie(COOKIE_NAME, encrypt_cookieV); cookie.setMaxAge(60 * 60); cookie.s ...

  3. java设置Cookie

    public static void setCookie(HttpServletResponse response, String key, String value){ Cookie cookie ...

  4. Java 之 cookie 记住用户登录时间案例

    需求: 1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问. 2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串 分析: 1. 可以采用Cookie ...

  5. Java web Cookie详解(持久化+原理详解+共享问题+设置中文+发送多个Cookie)

    Java web Cookie详解 啥是cookie? 查询有道词典得: web和饼干有啥关系? 这个谜底等等来为大家揭晓 会话技术 web中的会话技术类似于生活中两个人聊天,不过web中的会话指的是 ...

  6. java 反射: 当Timestamp类型的属性值为null时,设置默认值

    import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Metho ...

  7. 如何设置Cookie 的值为中文的内容

    默认情况下,cookie的值是不允许中文内容的.可以借助于java.net.URLEncoder先对中文字符串进行编码,将编码后的结果设为cookie值.当程序要读取cookie值时,先读取,然后使用 ...

  8. 【java】之Method和Field反射获取和设置属性值

    package com.javaluna.reflect; import java.lang.reflect.Field; import java.lang.reflect.Method; impor ...

  9. phalcon 设置cookie一直是httponly导致前端读取不到cookie的值

    解决办法: 修改配置如果不好使,则暂时降低phalcon版本为3.1.2. 注意设置cookie的参数secure的值为false,否则js还是读取不到cookie

随机推荐

  1. 【HTTP】HTPP学习笔记

    1.了解web及网络基础 HTTP的诞生 TCP/IP协议族 应用层 FTP文件传输协议 HTTP超文本传输协议 DNS域名系统:IP地址<--->域名 传输层 TCP传输控制协议 三次握 ...

  2. python3 包

    python3 包 执行文件为test.py,内容 #test.py import aaa 同级目录下创建目录aaa,然后自建空__init__.py(或者干脆建包) 需求:验证导入包就是在导入包下的 ...

  3. Linux内核源码中的likely和unlikely释疑【转】

    本文转载自:https://my.oschina.net/armsky/blog/15320 ikely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢? 首 ...

  4. expr 数字操作

    expr 可以用于计算 [root@rhel6 script]# * * [root@rhel6 script]# 使用expr来判断输入的变量是否为整数, 注意这里的&表示  安静模式(没有 ...

  5. 加深Java基础,做了20道题选择题!简答题没做

    2015-03-16 17:13 269人阅读 评论(1) 收藏 举报  分类: 笔试(1)  版权声明:本文为博主原创文章,未经博主允许不得转载.    1,下列说法正确的是( A ) A )Jav ...

  6. stdcall、cdecl详解(以及WINAPI和CALLBACK之类的宏对应什么)

    转自:http://blog.csdn.net/huanjieshuijing/article/details/5822942 对_stdcall 的理解在C语言中,假设我们有这样的一个函数:int ...

  7. Java -- 内部类, 成员内部类,局部内部类,匿名内部类,闭包和回调, 枚举类

    1. 成员内部类分为  静态内部类 和 非静态内部类. 非静态内部类 和 外部类的其他成员一样处理, 非静态内部类可以访问外部类的private的属性,而外部类不能访问非静态内部类的属性,需要实例非静 ...

  8. python第一篇:Python 字符串编

    Python字符串编码 字符串编码的前世今生 1. 一个字节由8个bit组成,所以1个字节能表示的最大数为255: 2. 计算机是美国人发明的,所以一个字节可以表示所有的字符了,所以ASCII就成为美 ...

  9. 初步认识Express框架渲染视图

    给出一个简单的例子,讲述模板渲染的基础功能 在nodejs中使用express框架,默认的是ejs和jade渲染模板,以下是以ejs模板进行解析 1.ejs 模板安装 npm install ejs ...

  10. C#返回Json,js解析Json,并添加到select标签中

    后台: List<Student> list=GetAll();//id name string json = new JavaScriptSerializer().Serialize(l ...