Cookie存活时间以及Cookie存储中文
cookie在浏览器中保存多长时间:
1.默认情况下,当浏览器关闭后,Cookie数据被销毁
2.持久化存储:
setMaxAge(int seconds)
正数:将Cookie数据写到硬盘的文件中,持久化存储,cookie存活时间
负数:默认值
零:删除cookie消息
package com.example.cookie;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "CookieDemo4", value = "/CookieDemo4")
public class CookieDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.创建Cookie对象
Cookie c1 = new Cookie("msg", "setMaxAge");
//2.设置cookie的存活时间
//c1.setMaxAge(30);//将cookie持久化到硬盘 30秒后自己删除cookie文件
//c1.setMaxAge(-1);//关闭浏览器cookie数据被销毁
c1.setMaxAge(0);//删除cookie消息
//3.发送Cookie
response.addCookie(c1);
}
}
Cookie存储中文:
在tomcat 8 之前 cookie不能直接存储中文数据
需要将中文数据转码,一般采用URL编码。(%E3)
在tomcat 8 之后 cookie支持中文数据,特殊字符还是不支持,建议使用URL编码存储,URL解码解析
@WebServlet(name = "CookieDemo4", value = "/CookieDemo4")
public class CookieDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.创建Cookie对象
Cookie c1 = new Cookie("msg", "张三");
//2.发送Cookie
response.addCookie(c1);
}
}