状态Cookie:Cookie对象仅会被缓存在浏览器所在的内存中。当浏览器关闭后Cookie对象 也会被销毁。
持久化Cookie:浏览器会对Cookie做持久化处理,基于文件形式保存在系统的指定目录中。在Windows10系统中为了安全问题不会显示Cookie中的内容。
当Cookie对象创建后默认为状态Cookie。可以使用Cookie对象下的cookie.setMaxAge(60)方法设置失效时间,单位为秒。一旦设置了失效时间,那么该Cookie为持久化Cookie,浏览器会将Cookie对象持久化到磁盘中。当失效时间到达后文件删除。
public class CreatCookieServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//创建cookie对象
// Cookie cookie = new Cookie("key","我想回家了");
Cookie cookie = new Cookie(URLEncoder.encode("老家","utf-8"), URLEncoder.encode("安庆","utf-8"));
//指定实现时间,一旦指定失效时间,那么该cookie则为持久化cookie
cookie.setMaxAge(60);
//将cookie写回客户端
resp.addCookie(cookie);
PrintWriter printWriter = resp.getWriter();
printWriter.println("creat cookie success");
printWriter.flush();
printWriter.close();
}
}