一、介绍

请求包含指的是使用include()方法将Servlet请求转发给其它Web资源进行处理,与请求转发不同的是,在请求包含返回的响应消息中,既包含了当前Servlet的响应消息,也包含了其他Web资源所作出的响应消息。

二、案例

1.IncludingServlet

public class IncludingServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();//request.setCharacterEncoding("utf-8");RequestDispatcher rd = request.getRequestDispatcher("/IncludedServlet?p1=中国2");out.println("before including" + "<br>");rd.include(request, response);out.println("after including" + "<br>");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}

2.IncludedServlet

public class IncludedServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 设置响应时使用的字符编码response.setContentType("text/html;charset=utf-8");response.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();out.println("中国" + "<br>");out.println("URI:" + request.getRequestURI() + "<br>");out.println("QueryString:" + request.getQueryString() + "<br>");out.println("parameter p1:" + request.getParameter("p1") + "<br>");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}

3.运行

http://localhost:8080/chapter04/IncludingServlet

地址栏未发生变化

4.响应内容产生乱码

原因:

解决:对IncludingServlet中响应内容设置编码

response.setContentType("text/html;charset=utf-8");

5.请求参数产生乱码

IncludingServlet中添加request.setCharacterEncoding("utf-8");

RequestDispatcher对象的应用-请求包含相关推荐

  1. RequestDispatcher对象的应用-请求转发

    一.介绍 在Servlet中,如果当前Web资源不想处理请求时,可以通过forward()方法将当前请求传递给其它的Web资源进行处理,这种方式称为请求转发. 从图中可以看出,当客户端访问Servle ...

  2. 请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include

    当一个 Web资源 收到客户端的请求后,如果希望服务器通知另一个web资源处理请求,那么这时可以通过 RequestDispatcher 接口的实例对象实现. web资源分为静态和动态 静态资源 静态 ...

  3. 代码实例--请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include

    验证requset的forward().include()跳转 indextest.jsp :接受用户输入的用户名和密码 ValidateServlet.java: 验证用户的数据是否正确 正确,则用 ...

  4. 请求包含(Include)和请求转发(Forward)

    定义 请求包含是指将另一个Servlet的请求处理流程包含进来. 请求转发是指将请求转发给别的Servlet处理. 实现 实现请求包含和请求转发,可以使用HttpServletRequest的getR ...

  5. ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段...

    原文地址:ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段 ServletRequest 基本概念 ...

  6. Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)

    一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...

  7. java web小记response.sendRedirect,RequestDispatcher对象的forward方法实现页面跳转

     Java Web开发中,采用MVC模式的时候,在控制器完成模型的调用之后会选择界面对用户响应,用常有两种方式: 1.通过response对象的sendRedirect方法. 2.通过Reques ...

  8. Servlet之请求包含与会话技术获取表单信息(Cookie)

    request获取form表单中提交的数据 用ServletContext获取 ServletContext context = this.getServletContext(); String us ...

  9. XE3随笔6:SuperObject 的 JSON 对象中还可以包含 方法

    SuperObject 的 JSON 对象中还可以包含 "方法", 这太有意思了; 其方法的格式是: procedure Method(const This, Params: IS ...

最新文章

  1. NLP千亿预训练模型的“第四范式”之Prompt Learning介绍分享
  2. jqm跳转js不加载
  3. C#异步编程的实现方式(4)——Task任务
  4. CentOs7下systemd管理知识要点
  5. 挑战程序设计竞赛_实力爆棚!2019年,华中科技大学拿下亚洲区竞赛金牌4枚!...
  6. Mysql数据库安全性问题【防注入】
  7. 麒麟信安:根植于openEuler,走操作系统自主创新之路
  8. 变量 常量 作用域和命名规范
  9. Java高质量代码之 — 泛型与反射
  10. java中trim_java中string.trim()函数的作用实例及源码
  11. 给DataList分页有两个办法:1、自定义实现分页方法 2、用第三方控件(例如AspNetPager)
  12. 文档加载状态_我们如何确定技术文档的状态?
  13. java微信发文字乱码_获取微信用户信息出现乱码
  14. python源码库安装_Python第三方库安装及常见问题
  15. python 求解二次规划(quadprog)
  16. 高中计算机会考基本知识点,高中计算机会考基本知识点
  17. 分享:STC-51激光雕刻机项目(免费完整资料)
  18. R学习之统计算法与R优化包(矩估计法也即Newton) --(R语言编程)-----数模
  19. hive数据库操作大全
  20. Java面试题交流群

热门文章

  1. 将x86平台的Linux控制台重定向到串口
  2. python列索引行的数据公式_用列和行索引函数填充dataframe缺失元素的最有效方法...
  3. 阻止电脑自动安装软件_坡解版wetool 安装条件-购买-老友网
  4. 95-30-015-Channel-AbstractNioMessageChannel
  5. 60-400-040-使用-binlog-MySQL BinLog入门
  6. 95-30-070-java.util-LinkedList
  7. 【es】FATAL [circuit_breaking_exception] [parent] Data too large, data for [<http_request>] would be
  8. 95-190-438-源码-window-Trigger-总体概述
  9. Docker 安装 Tomcat
  10. Redis的几种拓展方案,你都清楚吗?