目录
一,概念
会话:一次会话中包含多次请求和响应
session代表一次会话
Request代表一次请求
二,Cookie作用和特点
cookie存储在客户端浏览器
cookie大小限制4KB
一个可以发送多个cookie
三,Session作用和特点
session存在服务器端
session没有数据大小的限制
四,总结
session数据比较安全
cookie相对于不安全
五,例子获取上一次访问时间
@WebServlet( "/Cookie1Servlet")
public class Cookie1Servlet 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 {
//准备工作
response.setContentType("text/html;charset=utf-8");
boolean flag=false;//cookie没有lastTime
//1.获取所有cookies
Cookie[] cookies=request.getCookies();
//再一次访问
if(cookies!=null&&cookies.length>0){
//1.遍历cookie
for (Cookie cookie : cookies) {
//2.获取cookie名字
String name=cookie.getName();
//3.判断名称是否是:lastTime
if("lastTime".equals(name)){
//有该cookie 不是第一次访问
//有lastTime的cookie
//设置cookie的value 是当前系统时间
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
String strDate=sdf.format(date);
System.out.println("编码前:"+strDate);
//URL编码
strDate= URLEncoder.encode(strDate,"utf-8");
System.out.println("编码后:"+strDate);
//4.设置cookie的value
cookie.setValue(strDate);//设置cookie存话时间
//设置cookie的存活时间
cookie.setMaxAge(60*60*24*30);//一个月
//cookie返回给客户端
response.addCookie(cookie);
//获取上一次访问时间
String value=cookie.getValue();
//URL 解码
value= URLDecoder.decode(value,"utf-8");
response.getWriter().write("<h1>欢迎你回来,你上次访问时间是"+value+"</h1>");
}
}
}
//没有 客户端浏览器第一次访问
if(cookies==null ||cookies.length==0||flag==false){
//设置cookie的value 是当前系统时间
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
String strDate=sdf.format(date);
System.out.println("编码前:"+strDate);
//URL编码
strDate= URLEncoder.encode(strDate,"utf-8");
System.out.println("编码后:"+strDate);
//设置cookie
Cookie cookie=new Cookie("lastTime",strDate);
//设置cookie的存活时间
cookie.setMaxAge(60*60*24*30);//一个月
//cookie返回给客户端
response.addCookie(cookie);
response.getWriter().write("<h1>您好,欢迎首次访问</h1>");
}
}
}