一、介绍

在Servlet中,如果当前Web资源不想处理请求时,可以通过forward()方法将当前请求传递给其它的Web资源进行处理,这种方式称为请求转发。

从图中可以看出,当客户端访问Servlet1时,可以通过forward()方法将请求转发给其它Web资源,其它Web资源处理完请求后,直接将响应结果返回到客户端。

二、案例

1.创建RequestForwardServlet,处理从浏览器端发出的请求。

public class RequestForwardServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");// 将数据存储到request对象中request.setAttribute("company", "北京传智播客教育有限公司");RequestDispatcher dispatcher = request.getRequestDispatcher("/ResultServlet");dispatcher.forward(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}

2.创建ResultServlet,处理从上面的servlet转发过来的请求。

public class ResultServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");// 获取PrintWriter对象用于输出信息PrintWriter out = response.getWriter();// 获取request请求对象中保存的数据String company = (String) request.getAttribute("company");if (company != null) {out.println("公司名称:" + company + "<br>");}}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}

3.运行

http://localhost:8080/chapter04/RequestForwardServlet

地址栏未改变,但结果是ResultServlet传回来的内容,说明请求转发在服务器内部进行。

数据传递过程如下

RequestDispatcher对象的应用-请求转发相关推荐

  1. RequestDispatcher对象的应用-请求包含

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

  2. JAVA记录-Servlet RequestDispatcher请求转发

    RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...

  3. Servlet学习笔记(四)之请求转发与重定向(RequestDispatcher与sendRedirect)

    ServletContext可以实现请求转发(ServletContext请求转发相关内容见之前博客:http://blog.csdn.net/megustas_jjc/article/details ...

  4. 请求重定向与请求转发的比较(HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法)...

    尽管HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很 ...

  5. 请求转发(request对象)和重定向(response)的区别及何时使用请求转发和重定向

    标题request和response主要区别: 1. 请求转发使用 request对象,重定向使用 response 对象 2. 请求转发使用服务器端路径,重定向使用客户端路径 3. 请求转发不能跳转 ...

  6. web核心 4-response响应对象 servletContext对象 响应行响应体 请求转发 重新定向 从服务器下载与上传资源 切换验证码 网站统计访问次数

    内容介绍 1 ServletContext对象2 response响应对象 ServletContext对象 概述 ServletContext:servlet的上下文对象(全局管理者) 一个项目有且 ...

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

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

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

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

  9. java中请求转发与重定向_JavaEE进阶 请求转发与请求重定向

    JavaEE进阶 请求转发与请求重定向 本篇JavaEE进阶教程将为大家讲解JavaEE进阶编程的知识点,看完这篇文章会让你对JavaEE进阶编程的知识点有更加清晰的理解和运用.在转发的过程中,可以把 ...

最新文章

  1. 近年推荐系统论文调查汇总
  2. 字符串转换 - 应该熟练掌握的东西
  3. css怎么给字体夹阴影,css怎么给字体加阴影效果
  4. QT的QGroupBox类的使用
  5. 20165203 2017-2018-2 《Java程序设计》第一周学习总结
  6. 一招上手!这样设计扛住亿级流量活动系统
  7. 设计模式行为模式_使用行为模式建立很棒的社区
  8. Java 内置的数据类型
  9. FinalShell SSH工具下载
  10. 键值 keyCode事件属性
  11. 在其他的电脑上配置绿色Jre+tomcat运行环境
  12. 17.go 面向对象 interface
  13. 如何重新编辑排版错乱的PDF文件
  14. protel PCB负片绘法--提高雕刻速度
  15. 七、决策树算法和集成算法
  16. VMware 克隆失败,提示指定的虚拟磁盘需要修复【已解决】
  17. 贝叶斯算法 — 朴素贝叶斯分类器— 过滤垃圾邮件 — 流失用户 — 用户画像
  18. 安卓应用程序加密,签名和发布
  19. 跳跃游戏 (动态规划剪枝/前缀和/滑动窗口/BFS剪枝)
  20. VS2019未定义标识符detect该怎么解决

热门文章

  1. 【java】java 多线程 异步计算 FutureTask 源码详解
  2. 【Clickhosue】MySQL 没有主键导致CK不可用 The db.scene cannot be materialized, because there is no primary keys
  3. 【Spark】Spark的一个案例 Encountered removing nulls from dataset or using handleInvalid = “keep“ or “skip“
  4. 【Elasticsearch】我在 Elasticsearch 集群内应该设置多少个分片?
  5. 【ElasticSearch】Es 源码之 NamedWriteableRegistry 源码解读
  6. 80-200-040-原理-MySQL服务端架构
  7. 【Flink】报错Could not forward element to next operator Buffer pool is destroyed
  8. 【Flink】Flink连接prometheus报错 IOException :Response code formxxx/metrics/job/rule
  9. 【IKExpression】IKExpressionV2.0简易表达式解析器
  10. 【JVM】ZGC简介