代码空间项目 -- 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");

原文地址:https://www.cnblogs.com/zmc-change/p/5371675.html