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");

  • 相关阅读:
    shell内置命令eval的具有什么作用
    openwrt中如何在一个软件包中使能busybox中的工具
    go语言中strings包中的Trim函数的作用是什么
    RedisTemplate的各种操作(set、hash、list、string)
    Spring data redis-StringRedisTemplate 用法
    Spring-data-redis 第一天
    Java操作Redis数据
    BootStrap之X-editable插件使用
    bootstrap editable有默认值
    bootstrap editable初始化后表单
  • 原文地址:https://www.cnblogs.com/zmc-change/p/5371675.html
Copyright © 2011-2022 走看看