cookie的生命週期

---------------------------- cookie的生命週期­-----------------------------------

Cookie的生命週期

Cookie會在客戶端存活多久呢?這就是Cookie的生命了。默認情況下,Cookie只在瀏覽器的內存中存活,也就是說,當你關閉瀏覽器後,Cookie就會消失!

可以使用Cookie#setMaxAge(int expiry)來設置Cookie的存活時間。參數expiry表示Cookie存活的秒數。

  1. cookie.setMaxAge(60*60):表示cookie對象可存活1小時。就算關閉瀏覽器,就算重啓客戶端電腦,cookie也會存活1小時。因爲當maxAge大於0時,瀏覽器不僅會把cookie保存在瀏覽器內存中,還會把cookie保存到硬盤上。
  2. cookie.setMaxAge(-1):cookie的maxAge屬性的默認值就是-1(其實只要是負數都是一個意思),表示只在瀏覽器內存中存活。一旦關閉瀏覽器窗口,那麼cookie就會消失。
  3. cookie.setMaxAge(0):cookie被作廢!表示cookie即不在內存中存活,也不在硬盤上存活,這樣的cookie設置只有一個目的,那就是覆蓋客戶端原來的這個cookie,使其作廢。

 

代碼示例:

public class RegistServlet extends HttpServlet {

 

       public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

              request.setCharacterEncoding("UTF-8");

              //獲取用戶名和密碼

              String username = request.getParameter("username");

              String password = request.getParameter("password");

             

              System.out.println("用戶名:"+username);

              System.out.println("密碼:"+password);

             

              //創建cookie對象,將用戶名和密碼連接存儲,使用逗號分開

              Cookie cookie = new Cookie("userpass", username+","+password);

              //設置cookie的存活時間,裏面的參數是以秒爲單位

              //cookie.setMaxAge(60*60);

              //如果maxAge設置成-1代表是當前cookie的銷燬時間是瀏覽器關閉,和默認是一樣的

              //cookie.setMaxAge(-1);

              //如果maxAge設置成0代表刪除已經存在的和當前同名的cookie

              cookie.setMaxAge(0);

              //把cookie寫入瀏覽器

              response.addCookie(cookie);

             

              //跳轉頁面

              request.getRequestDispatcher("/regist1.html").forward(request, response);

       }

 

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章