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

  • 相关阅读:
    bzoj 5028小Z的加油店(D12 序列gcd)(线段树+树状数组)
    蒲公英
    [APIO2012]派遣(可并堆)(D11)
    AT1219 歴史の研究(回滚莫队)
    [USACO05DEC] 布局
    小B的询问
    [HEOI2012]采花(树状数组)(暑假D11)
    [JLOI2011]飞行路线 (暑假D3 拆点+dijkstra堆优化)
    [POI2012]FES-Festival
    [国家集训队]拉拉队排练
  • 原文地址:https://www.cnblogs.com/zmc-change/p/5371675.html
Copyright © 2011-2022 走看看