• java操作cookie


      1 /**
      2          * 读取所有cookie
      3          * 注意二、从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用         来判断Cookie是否过期
      4          * @param request
      5          * @param response
      6          */
      7         @RequestMapping("/showCookies")
      8         public void showCookies(HttpServletRequest request,HttpServletResponse response ){
      9              
     10             Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组
     11             if (null==cookies) {
     12                 System.out.println("没有cookie=========");
     13             } else {
     14                 for(Cookie cookie : cookies){
     15                     System.out.println("name:"+cookie.getName()+",value:"+ cookie.getValue());
     16                 }
     17             }
     18              
     19         }
     20         /**
     21          * 添加cookie
     22          * @param response
     23          * @param name
     24          * @param value
     25          */
     26         @RequestMapping("/addCookie")
     27         public void addCookie(HttpServletResponse response,String name,String value){
     28             Cookie cookie = new Cookie(name.trim(), value.trim());
     29             cookie.setMaxAge(30 * 60);// 设置为30min
     30             cookie.setPath("/");
     31             System.out.println("已添加===============");
     32             response.addCookie(cookie);
     33         }
     34         /**
     35          * 修改cookie
     36          * @param request
     37          * @param response
     38          * @param name
     39          * @param value
     40          * 注意一、修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不          同的Cookie不予覆盖,导致修改、删除失败。
     41          */
     42         @RequestMapping("/editCookie")
     43         public void editCookie(HttpServletRequest request,HttpServletResponse response,String name,String value){
     44             Cookie[] cookies = request.getCookies();
     45             if (null==cookies) {
     46                 System.out.println("没有cookie==============");
     47             } else {
     48                 for(Cookie cookie : cookies){
     49                     if(cookie.getName().equals(name)){
     50                         System.out.println("原值为:"+cookie.getValue());
     51                         cookie.setValue(value);
     52                         cookie.setPath("/");
     53                         cookie.setMaxAge(30 * 60);// 设置为30min
     54                         System.out.println("被修改的cookie名字为:"+cookie.getName()+",新值为:"+cookie.getValue());
     55                         response.addCookie(cookie);
     56                         break;
     57                     }
     58                 }
     59             }
     60              
     61         }
     62         /**
     63          * 删除cookie
     64          * @param request
     65          * @param response
     66          * @param name
     67          */
     68         @RequestMapping("/delCookie")
     69         public void delCookie(HttpServletRequest request,HttpServletResponse response,String name){
     70             Cookie[] cookies = request.getCookies();
     71             if (null==cookies) {
     72                 System.out.println("没有cookie==============");
     73             } else {
     74                 for(Cookie cookie : cookies){
     75                     if(cookie.getName().equals(name)){
     76                         cookie.setValue(null);
     77                         cookie.setMaxAge(0);// 立即销毁cookie
     78                         cookie.setPath("/");
     79                         System.out.println("被删除的cookie名字为:"+cookie.getName());
     80                         response.addCookie(cookie);
     81                         break;
     82                     }
     83                 }
     84             }
     85         }
     86 
     87 /**
     88      * 根据名字获取cookie
     89      * @param request
     90      * @param name cookie名字
     91      * @return
     92      */
     93     public  Cookie getCookieByName(HttpServletRequest request,String name){
     94         Map<String,Cookie> cookieMap = ReadCookieMap(request);
     95         if(cookieMap.containsKey(name)){
     96             Cookie cookie = (Cookie)cookieMap.get(name);
     97             return cookie;
     98         }else{
     99             return null;
    100         }  
    101     }
    102       
    103       
    104       
    105     /**
    106      * 将cookie封装到Map里面
    107      * @param request
    108      * @return
    109      */
    110     private  Map<String,Cookie> ReadCookieMap(HttpServletRequest request){ 
    111         Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
    112         Cookie[] cookies = request.getCookies();
    113         if(null!=cookies){
    114             for(Cookie cookie : cookies){
    115                 cookieMap.put(cookie.getName(), cookie);
    116             }
    117         }
    118         return cookieMap;
    119     }
    120   
  • 相关阅读:
    路由 懒加载 错误ChunkLoadError: Loading chunk 10 failed.
    ngzorro create创建对话框 对话框组件内 关闭父组件 create对话框
    一个解决方案对dll的引用要注意的问题
    工作流的麻烦
    winform程序中使用documentview模式的考虑
    仿淘宝网评价的五角星投票代码
    图片闪烁代码
    JS+CSS仿淘宝滑过小图预览大图代码
    JavaScript控制图片左右播放的幻灯片代码
    JavaScript实现图片旋转构成3D圆环代码
  • 原文地址:https://www.cnblogs.com/geekdc/p/5760084.html
Copyright © 2020-2023  润新知