一、问题
两次不同的请求如何共享数据?
二、
采用Cookie(浏览器存)+Session(服务器存)
三、作用
解决了不同请求的数据共享问题。
四、使用
1.创建cookie对象
//创建cookie对象
Cookie cookie=new Cookie("id", "1");
2.设置cookie对象
//设置cookie对象
//设置有效期三天
cookie.setMaxAge(3*24*3600);
//设置有效路径
cookie.setPath("/sx/s5");
// ‘/’+项目名+servlet名
//否则访问对应的servlet不会携带cookie
3.让浏览器存cookie
//让浏览器存cookie
resp.addCookie(cookie);
第一次访问的时候:响应头要求浏览器存储cookie
第二次访问的时候:请求头携带cookie信息
获取cookie对象
//第二次请求的时候获取cookie对象
Cookie[] cookies=req.getCookies();
for(Cookie c:cookies) {
System.out.println(c.getName()+" "+c.getValue());
}
注意:
1.临时存储:存储在浏览器的运行内存中,浏览器关闭就失效。
2.定时存储:设置了cookie的有效期,存储在客户端的硬盘中,在有效期内符合路径的要求的请求都会附带该信息,放在请求头中。
设置有效路径:
cookie.setPath("/sx/s5");
‘/’+项目名+servlet名,否则访问对应的servlet不会携带cookie