1.会话概念
2.cookie概念
3.cookie使用方法
4.cookie实例
1.会话:浏览器开始访问网站到访问网站结束,期间产生的多次请求响应组合在一起叫一次会话
2.cookie概念
(1).cookie是浏览器级别的;session是服务器级别的
(2).基于set-Cookie响应头和Cookie请求头工作。服务器发送set-Cookie响应头命令浏览器保存一个Cookie,浏览器在访问服务器时以Cookie请求头的方式带回之前保存的信息
3.cookie使用方法
resp.addCookie(Cookie c);//response对象新增一个cookie
req.getCookies();//request获取所有cookie
new Cookie(String name,String value);//新建一个cookie
getName();//获取cookie的name
getValue();//获取cookie的value
setValue();//给value赋值
setMaxAge(),getMaxAge();//设置获取cookie的最大时长,如果不设置就是会话级别的,浏览器关闭cookie关闭。如果设置了就算浏览器关闭,只要时长没到cookie就还是会存在。
setPath(),getPath();用来通知浏览器访问哪个路径及其子路径需要带着当前cookie信息,如果不设置默认就是发送cookie的servlet所在的路径。
注:同名同path,将maxAge设为0,意味着销毁这个cookie
4.cookie实例:
protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws Exception{
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("text/html;charset=utf-8");
resp.setContentType("text/html;charset=utf-8");
Cookie[] cs = req.getCookies();
Cookie findC = null;
for(Cookie c:cs){
if("lastname".equals(c.getName())){
findC = c;
}
}
if(findC == null){
resp.getWriter().write("您是第一次访问");
}else{
long lastTime = Long.parselong(findC.getValue());
resp.getWriter().write("您上次访问时间是"+new Date(lastTime).toLocaleString());
}
Date date = new Date();
Cookie c = new Cookie("lastTime",date.getTime()+"");
resp.add(c);
}