Cookie的存活時間


1. 默認情況下,cookie數據保存到內存里,當瀏覽器關閉后,Cookie數據被銷毀


2. 持久化存儲:
  setMaxAge(int seconds)
    1. 正數:將Cookie數據寫到硬盤的文件中,持久化存儲。並指定cookie存活時間,時間到后,cookie文件自動失效。

    2. 負數:默認值,即關閉瀏覽器后,cookie即失效

    3. 零:刪除cookie信息

      setMaxAge為正數時的情況如下:

   重啟瀏覽器 不關閉瀏覽器
cookie時間未到 能訪問cookie 能訪問cookie
cookie時間到 不能訪問cookie 能訪問cookie



 

 

 

代碼如下:

第一個servlet【比如是CookieDemo01】中的代碼如下:

 1 import javax.servlet.http.Cookie;
 2 //--------省略若干代碼-----------
 3 protected void doGet(HttpServletRequest request, HttpServletResponse response) 
 4         throws ServletException, IOException {
 5     //1.創建Cookie對象,綁定數據【name是"msg",value是"hello"】
 6     Cookie c = new Cookie("msg", "hello");
 7     //2.設置Cookie存活時間
 8     c.setMaxAge(300);//(1).將Cookie持久化到硬盤,300秒后會自動刪除
 9     //c.setMaxAge(-1);//(2).默認值,一次瀏覽器會話
10     //c.setMaxAge(0);//(3).刪除Cookie
11     //3.發送Cookie對象【只有發送Cookie的瀏覽器可以獲取Cookie】
12     response.addCookie(c);
13 }
14 //--------省略若干代碼-----------

 

第二個servlet【比如是CookieDemo02】中的代碼如下:

 1 import javax.servlet.http.Cookie;
 2 //--------省略若干代碼-----------
 3 protected void doGet(HttpServletRequest request, HttpServletResponse response)
 4         throws ServletException, IOException {
 5     //3.獲取Cookie
 6     Cookie[] cs = request.getCookies();
 7     //4.遍歷Cookies
 8     if(cs!=null){
 9         for(Cookie c:cs){
10             String name = c.getName();
11             String value = c.getValue();
12             System.out.println(name+":"+value);
13         }
14     }
15 }
16 //--------省略若干代碼-----------

驗證:

打開Tomcat服務器,先運行第一個servlet【創建Cookie,聲明Cookie生命周期,發送Cookie】,再運行第二個servlet【獲取並遍歷Cookie】,發現控制台上輸出Cookie的name和value【即msg:hello】。

代碼說明:

第一個servlet中:

(1).如果【c.setMaxAge(300)】,cookie會持久化到硬盤300秒,在這300秒內,關閉瀏覽器后再打開瀏覽器,也能訪問到cookie。如果一直不關閉瀏覽器,300秒后也能訪問。

(2).如果【c.setMaxAge(-1)】,只要瀏覽器不關閉,cookie不會失效。

(3).如果【c.setMaxAge(0)】,刪除cookie信息。

 

說明:

高亮說明

日期:2019-03-07  08:39:31


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM