---------------------------- 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); }
} |