美文网首页
Web 基础11 Response对象与Resquest对象的一

Web 基础11 Response对象与Resquest对象的一

作者: 小熊先生很不开心 | 来源:发表于2018-03-28 08:54 被阅读8次

1.1 转发和包含

  • 用ServletContext实现转发和包含,路径必须以正斜杠开头
RequestDispatcher rd = getServletContext().getRequestDispatcher("/register.html");
rd.forward(request, response);
rd.include(request, response);
  • 用request对象实现转发和包含,路径可以不用正斜杠开头
RequestDispatcher rd = request.getRequestDispatcher("register.html");
rd.forward(request, response);
rd.include(request, response);

1.2 重定向与转发区别 图解

转发-包含-重定向的区别.png
  • 简单是说
    • 转发 : 项目内部 servlet1把请求完全给servlet2 返回的结果只有servlet2
    • 包含 : 项目内部 servlet1把请求给servlet2 返回的结果有servlet1与servlet2
    • 重定向 : 所有范围
      • 浏览器发送请求给servlet1,
      • servlet1响应让浏览器发送请求给servlet2
      • servlet2响应

1.3 使用请求对象实现数据共享

  • ServletContext
    • 上下文对象 范围是当前的web应用
    • 时间范围 tomcat 一加载项目 tomcat关闭
    • 空间范围 整个web应用
  • request
    • 请求对象 范围是当前的请求 需要同一个请求才能实现数据的共享
    • 时间范围 一个请求开始,请求结束
    • 空间范围 当前这个请求里面

1.3.1 访问网站访问量


ServletContext context = getServletContext();
Integer count = (Integer) context.getAttribute("count");

if(null == count){
    context.setAttribute("count", 1);
}else{
    context.setAttribute("count", count+1);
}

response.getWriter().println("<h2>"+count+"</h2>");

相关文章

网友评论

      本文标题:Web 基础11 Response对象与Resquest对象的一

      本文链接:https://www.haomeiwen.com/subject/pqtycftx.html