【会话技术】
- 什么是会话 :用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.
- 常见的会话技术:
* Cookie :将数据保存到客户端浏览器.
* Session :将数据保存到服务器端.
- 为什么使用会话技术?
* 私有的数据,购物信息数据保存在会话技术中.
【Cookie技术的使用】
- 向浏览器保存数据:
HttpServletResponse有一个方法:
* void addCookie(Cookie cookie);
- 获得浏览器带过来的Cookie:
HttpServletRequest有一个方法:
* Cookie[] getCookies();
- 遍历cookies找到所需要的cookie
public class CookieUtils {
public static Cookie findCookie(Cookie[] cookies, String name){
if (null != cookies) {
for(Cookie cookie:cookies){
if (name.equals(cookie.getName())) {
return cookie;
}
}
}
return null;
}
}
- 创建一个Cookie对象:
* Cookie cookie = new Cookie(String name,String value);
- Cookie的常用的API:
* getName();
* getValue();
* setDomain(String domain); -- 设置Cookie的有效域名. // www.baidu.com music.baidu.com
* setPath(String path); -- 设置Cookie的有效路径.(什么情况下才带这个cookie过来)
* setMaxAge(int maxAge); -- 设置Cookie的有效时间.()
- Cookie的分类有关:
* 会话级别的Cookie:默认的Cookie.关闭浏览器Cookie就会销毁.
* 持久级别的Cookie:可以设置Cookie的有效时间.那么关闭浏览器Cookie还会存在. 手动销毁持久性Cookie. setMaxAge(0)---前提是有效路径必须一致.
- 设置cookie记录
// 存入到Cookie中
Cookie c = new Cookie("history",sValue);
c.setPath("/day11");
c.setMaxAge(60*60*24*7);
response.addCookie(c);
- 清空cookie记录
Cookie cookie = new Cookie("history",null);
cookie.setPath("/day11");
cookie.setMaxAge(0);
response.addCookie(cookie);