RequestDispatcher对象的应用-请求转发
一、介绍
在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对象的应用-请求转发相关推荐
- RequestDispatcher对象的应用-请求包含
一.介绍 请求包含指的是使用include()方法将Servlet请求转发给其它Web资源进行处理,与请求转发不同的是,在请求包含返回的响应消息中,既包含了当前Servlet的响应消息,也包含了其他W ...
- JAVA记录-Servlet RequestDispatcher请求转发
RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...
- Servlet学习笔记(四)之请求转发与重定向(RequestDispatcher与sendRedirect)
ServletContext可以实现请求转发(ServletContext请求转发相关内容见之前博客:http://blog.csdn.net/megustas_jjc/article/details ...
- 请求重定向与请求转发的比较(HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法)...
尽管HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很 ...
- 请求转发(request对象)和重定向(response)的区别及何时使用请求转发和重定向
标题request和response主要区别: 1. 请求转发使用 request对象,重定向使用 response 对象 2. 请求转发使用服务器端路径,重定向使用客户端路径 3. 请求转发不能跳转 ...
- web核心 4-response响应对象 servletContext对象 响应行响应体 请求转发 重新定向 从服务器下载与上传资源 切换验证码 网站统计访问次数
内容介绍 1 ServletContext对象2 response响应对象 ServletContext对象 概述 ServletContext:servlet的上下文对象(全局管理者) 一个项目有且 ...
- 请求包含(Include)和请求转发(Forward)
定义 请求包含是指将另一个Servlet的请求处理流程包含进来. 请求转发是指将请求转发给别的Servlet处理. 实现 实现请求包含和请求转发,可以使用HttpServletRequest的getR ...
- ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段...
原文地址:ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段 ServletRequest 基本概念 ...
- java中请求转发与重定向_JavaEE进阶 请求转发与请求重定向
JavaEE进阶 请求转发与请求重定向 本篇JavaEE进阶教程将为大家讲解JavaEE进阶编程的知识点,看完这篇文章会让你对JavaEE进阶编程的知识点有更加清晰的理解和运用.在转发的过程中,可以把 ...
最新文章
- 近年推荐系统论文调查汇总
- 字符串转换 - 应该熟练掌握的东西
- css怎么给字体夹阴影,css怎么给字体加阴影效果
- QT的QGroupBox类的使用
- 20165203 2017-2018-2 《Java程序设计》第一周学习总结
- 一招上手!这样设计扛住亿级流量活动系统
- 设计模式行为模式_使用行为模式建立很棒的社区
- Java 内置的数据类型
- FinalShell SSH工具下载
- 键值 keyCode事件属性
- 在其他的电脑上配置绿色Jre+tomcat运行环境
- 17.go 面向对象 interface
- 如何重新编辑排版错乱的PDF文件
- protel PCB负片绘法--提高雕刻速度
- 七、决策树算法和集成算法
- VMware 克隆失败,提示指定的虚拟磁盘需要修复【已解决】
- 贝叶斯算法 — 朴素贝叶斯分类器— 过滤垃圾邮件 — 流失用户 — 用户画像
- 安卓应用程序加密,签名和发布
- 跳跃游戏 (动态规划剪枝/前缀和/滑动窗口/BFS剪枝)
- VS2019未定义标识符detect该怎么解决
热门文章
- 【java】java 多线程 异步计算 FutureTask 源码详解
- 【Clickhosue】MySQL 没有主键导致CK不可用 The db.scene cannot be materialized, because there is no primary keys
- 【Spark】Spark的一个案例 Encountered removing nulls from dataset or using handleInvalid = “keep“ or “skip“
- 【Elasticsearch】我在 Elasticsearch 集群内应该设置多少个分片?
- 【ElasticSearch】Es 源码之 NamedWriteableRegistry 源码解读
- 80-200-040-原理-MySQL服务端架构
- 【Flink】报错Could not forward element to next operator Buffer pool is destroyed
- 【Flink】Flink连接prometheus报错 IOException :Response code formxxx/metrics/job/rule
- 【IKExpression】IKExpressionV2.0简易表达式解析器
- 【JVM】ZGC简介