---------------------------- cookie的生命週期-----------------------------------
Cookie的生命週期
Cookie會在客戶端存活多久呢?這就是Cookie的生命了。默認情況下,Cookie只在瀏覽器的內存中存活,也就是說,當你關閉瀏覽器後,Cookie就會消失!
可以使用Cookie#setMaxAge(int expiry)來設置Cookie的存活時間。參數expiry表示Cookie存活的秒數。
- cookie.setMaxAge(60*60):表示cookie對象可存活1小時。就算關閉瀏覽器,就算重啓客戶端電腦,cookie也會存活1小時。因爲當maxAge大於0時,瀏覽器不僅會把cookie保存在瀏覽器內存中,還會把cookie保存到硬盤上。
- cookie.setMaxAge(-1):cookie的maxAge屬性的默認值就是-1(其實只要是負數都是一個意思),表示只在瀏覽器內存中存活。一旦關閉瀏覽器窗口,那麼cookie就會消失。
- 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); }
} |