zoukankan      html  css  js  c++  java
  • 代码空间项目 -- cookie的基本使用

    cookie在日常开发b/s架构时候经常使用,可以在记住用户,方便自动登录,也可以记住用户的偏好并对应推送广告

    下面说说开发时候的基本用法:

    1.创建cookie
    //设置cookie,键值对形式
    Cookie namecookie = new Cookie("name",name);    
    Cookie passwordcookie = new Cookie("password",pwd);
    //设置生命周期,以秒为单位,设置为0即删除,设置为-1在浏览器关闭时删除
    namecookie.setMaxAge(60*60*24);    
    passwordcookie.setMaxAge(60*60*24);
    //设置或取得cookie适用的路径,"/"表示指定服务器的所有页面都应该收到该cookie
    namecookie.setPath("/");
    passwordcookie.setPath("/");
    //通过HttpServletResponse保存cookie对象
    response.addCookie(namecookie);    
    response.addCookie(passwordcookie);

    2.获取cookie

    //获取一个cookie数组
     Cookie[] cookies = request.getCookies();
       if(cookies != null){
         for(Cookie cookie : cookies){
         //获取数组中key="name"的值,
         if(cookie.getName().equals("name")){
                       System.out.println(cookie.getValue());
         }
       }
    }     

    3.删除cookie

    //获取一个cookie数组
    Cookie[] cookies = request.getCookies();
    if(cookies != null){

      //循环cookie数组
         for(Cookie cookie : cookies){  
              cookie = new Cookie(cookie.getName(),""); //为cookie赋空值
              cookie.setPath("/");//设置的路径和创建时候相同
              cookie.setMaxAge(0);//0代表立即删除,-1代表浏览器关闭时删除
              response.addCookie(cookie); //重新新增cookie,即删除
          }
    }   

    4.注意事项

    在tomcat7环境下,对中文支持不太好,如果存储的是中文字符,需要对其转码

    存储时:
    name = URLEncoder.encode(name,"UTF-8");
    pwd = URLEncoder.encode(pwd,"UTF-8");
    读取时:
    URLDecoder.decode(cookie.getValue(),"UTF-8");

  • 相关阅读:
    MessageFormat使用记录
    在IDEA中使用MyBatis Generator逆向工程生成代码
    mybatis报错invalid types () or values ()解决方法
    关于jrebel碰到的一次问题记录
    I/O限制异步操作
    线程基础和异步执行计算限制
    模板方法模式(Head first 设计模式——7)
    适配器模式和外观模式(head first设计模式——6)
    命令模式(head first 设计模式5)
    工厂模式——(Head first设计模式4)
  • 原文地址:https://www.cnblogs.com/zmc-change/p/5371675.html
Copyright © 2011-2022 走看看