Cookie和Session
两个会话跟踪机制
Cookie
//创建cookie
Cookie cookie1=new Cookie("name","root");
Cookie cookie2=new Cookie("password","123");
//指定cookie绑定路径
//路径加上项目名称
cookie1.setPath(request.getContextPath()+"/xxx/ooo/aaa");
cookie2.setPath(request.getContextPath()+"/bbbb");
cookie1.getPath();
//设置cookie时间 单位为秒
cookie1.setMaxAge(60*60);
cookie2.setMaxAge(60*60);
//添加cookie
response.addCookie(cookie1);
response.addCookie(cookie2);
Cookie[] cookies=request.getCookies();
for (Cookie c:cookies){
System.out.println(c.getName()+" = "+c.getValue());
}
cookie保存在客户端 用来保存数据
客户端有之前保存的数据后 再次访问网页 客户端会将原来保存的cookie一起发送到服务端
进行操作 如 实现免登录
Session
HttpSession session=request.getSession();
/**
向session中写入数据
用getSession(true) 即getSession()
意义是:有老的用老的 没有就创建新的
从session中读取数据
getSession(false)
意义是:有老的用老的 没有则返回null
**/
session.setAttribute("name",name);
session.getAttribute("name");
Session是用来保存在服务器端的数据
session可以实现跨servlet的通信 因为session的数据保存在服务器端
作用域问题:
ServletContext、Cookie和Session
ServletContext是整个webapp对象
Cookie是servlet对象
Session是对话对象