首页 > 代码库 > Cookie 总结

Cookie 总结

设置Cookie 

//设置cookie 
Cookie cookie = new Cookie("TOM","111"); 
//设置有效期,默认秒为单位 
cookie. setMaxAge(7*24*60*60);  //7天
//添加cookie到客户端 
response.addCookie(cookie); 

获取Cookie

<% 
//获取cookie 
Cookie[] cookies = request.getCookies(); 
if(cookies!=null && cookies.length>0) { 
for(int i=0; i<cookies.length;i++) { 
out.print(cookies[i].getName() +"————"+ cookies[i].getValue() + "<br/>"); 
} 
} 
%> 

 

Cookie的中文支持 

Cookie不支持中文的显示,必要的时候,需要进行转码和解码。 

转码 

strings[j]=java.net.URLEncoder.encode(list.get(i-1)[j],"UTF-8");

URLEncoder.encode("张三") ; 

 

解码 

out.print(java.net.URLDecoder.decode(cookies[i].getValue(),"UTF-8") + "<br/>"); 

Cookie[] cks = request.getCookies() ;

for(Cookie c : cks)
{
    out.write(c.getName() +"="+URLDecoder.decode(c.getValue())+"<br>") ;
}

 

 

 

============================================================================================

1)向客户端浏览器写入Cookie
 
//1.创建一个Cookie对象
Cookie cookie = new Cookie(name,“”shindo“”);
 
 
//2.setMaxAge:设置Cookie的最大时效,以秒为单位,若为0,表示立即删除该Cookie,
//若为负数,表示不存储该Cookie,若为正数,表示该Cookie的存储时间。
cookie.setMaxAge(30);
 
//3.设置Cookie的作用范围:可以作用当前目录和当前目录的子目录,但不能作用于当前目录的上一级目录。
cookie.setPath(request.getContextPath());
 
//4.调用response的一个方法把Cookie传给客户端
response.addCookie(cookie);
 
2)从浏览器读取Cookie
 
//1.获取Cookie
Cookie[] cookies = request.getCookies();
if(cookies != null && cookies.lenth > 0){
   for(){
      //2.获取Cookiede name 和value
      out.print(cookie.getName() + ":" + cookie.getValue());
      out.print("<br>");
   }   
}

 

=====================================================================================

// new一个Cookie对象,键值对为参数  
Cookie cookie = new Cookie("key", "value");  
// 设置Cookie最大生存时间,以秒为单位,负数的话为浏览器进程,关闭浏览器Cookie消失  
cookie.setMaxAge(60);  // 一分钟  
// 将Cookie添加到Response中,使之生效  
response.addCookie(cookie);  
 读取Cookie,读取Cookie只能从request中获取全部Cookie,然后迭代之.虽然Cookie也是键值对,但是貌似不能像Map一样通过Key来获取值.
Java代码  收藏代码
// 从request中获取Cookie,拿到的是一个Cookie数组  
Cookie[] cookies = request.getCookies();  
// 然后迭代之  
if (cookies != null && cookies.length > 0) { //如果没有设置过Cookie会返回null  
    for (Cookie cookie : cookies) {...}  
}  
 删除Cookie,删除Cookie的话,只需要将Cookie的生存期设为0即可
Java代码  收藏代码
Cookie[] cookies = request.getCookies();  
if (cookies != null && cookies.length > 0) {  
    for (Cookie cookie : cookies) {  
        String name = cookie.getName();  
        // 找到需要删除的Cookie  
        if (name.compareTo("key") == 0) {  
            // 设置生存期为0  
            cookie.setMaxAge(0);  
            // 设回Response中生效  
            response.addCookie(cookie);  
        }  
    }  
}  
 修改Cookie,修改Cookie和删除的步骤是一样的,先找到需要删除的Cookie,然后设置它的新的Value,再设回Response
Java代码  收藏代码
Cookie[] cookies = request.getCookies();  
if (cookies != null && cookies.length > ) {  
    for (Cookie cookie : cookies) {  
        if (cookie.getName.compareTo("key") == 0) {  
            cookie.setValue("newValue");  
            response.addCookie(cookie);  
            break;  
        }  
    }  
}  

 

Cookie 总结