1. 程式人生 > >cookies學習常用API筆記

cookies學習常用API筆記

cookies學習常用API筆記

Cook

javax.servlet.http.Cookie類用於創建一個Cookie,response接口也中定義了一個addCookie方法,它用於在其響應頭中增加一個相應的Set-Cookie頭字段。 同樣,request接口中也定義了一個getCookies方法,它用於獲取客戶端提交的Cookie。Cookie類的方法:

  1. public Cookie(String name,String value)
  2. setValue與getValue方法
  3. setMaxAge與getMaxAge方法
  4. setPath與getPath方法
  5. getName方法

顯示用戶上次訪問時間

Cookie.setMaxAge(724

60*60)
Cookie.setPath(“/day0X”);
Httpwatch觀察
Cookie.setMaxAge(0)刪除同名Cookie


import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Demo1 extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
        /*
        //服務端產生Cookie
        Cookie cookie = new Cookie("username","haha");
        //設置Cookie存活時間
        cookie.setMaxAge(1*24*60*60);
        //服務端將Cookie寫到客戶端暫存
        response.addCookie(cookie);
        */

        //取得客戶端所有的Cookie
        Cookie[] cookies = request.getCookies();
        Cookie usernameCookie = null;
        if(cookies!=null){
            for(Cookie c : cookies){
                if(c.getName().equals("username")){
                    usernameCookie = c;
                    break;
                }
            }
            //如果找到了Cookie
            if(usernameCookie!=null){
                System.out.println("Cookie的名字:" + usernameCookie.getName());
                System.out.println("Cookie的值:" + usernameCookie.getValue());
                System.out.println("Cookie的生命:" + usernameCookie.getMaxAge());
                System.out.println("Cookie的路徑:" + usernameCookie.getPath());
            }
        }
    }
}

Cookie細節

一個Cookie只能標識一種信息,它至少含有一個標識該信息的名稱(NAME)和設置值(VALUE)。
一個WEB站點可以給一個WEB瀏覽器發送多個Cookie,一個WEB瀏覽器也可以存儲多個WEB站點提供的Cookie。
瀏覽器一般只允許存放300個Cookie,每個站點最多存放20個Cookie,每個Cookie的大小限制為4KB。
如果創建了一個cookie,並將他發送到瀏覽器,默認情況下它是一個會話級別的cookie(即存儲在瀏覽器的內存中),用戶退出瀏覽器之後即被刪除。若希望瀏覽器將該cookie存儲在磁盤上,則需要使用maxAge,並給出一個以秒為單位的時間。將最大時效設為0則是命令瀏覽器刪除該cookie。

註意,刪除cookie時,path必須一致,否則不會刪除

cookies學習常用API筆記