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

web资源分为静态和动态

  1. 静态资源
    静态web资源是浏览器能够直接打开的。如:html、css、 js等
  2. 动态资源
    动态web资源是经过翻译之后浏览器能够打开的。如:jsp、servlet、php、ASP等

RequestDispatcher对象

RequestDispatcher getRequestDispatcher (String path)

  1. 参数:path必须以/开头,用于表示当前 Web 应用的根目录

    web应用的根目录在idea中是web;在eclipse中是webcontent

    需要注意的是,WEB-INF目录中的内容对 RequestDispatcher 对象也是可见的。因此,传递给 getRequestDispatcher(String path) 方法的资源可以是 WEB-INF 目录中的文件

  2. 返回值:某条路径所指定资源的 RequestDispatcher 对象

获取到 RequestDispatcher对象后,便是通知其他 Web 资源处理当前的 Servlet 请求,为此,RequestDispatcher 接口定义了两个相关方法:forward()include()

forward()与include()

方法声明 功能描述
forward(ServletRequest request, ServletResponse response) 第一个web资源对请求做一个初步处理,然后通过调用这个方法,将请求传递给其他资源进行响应。需要注意的是,该方法必须在响应提交给客户端之前被调用,否则将抛出 IllegalStateException 异常
include(ServletRequest request, ervletResponse response) 该方法用于将其他的资源作为当前响应内容包含进来


比较内容 forward() Include()
使用场合不同 将控制权转移到其它组件 须由另一组件执行部分处理,一旦执行完毕,当前组件将收回控制权
输出结果不同 在请求转发之前,web组件不应使用输出流向客户端发送消息 所有web组件共享同一个输出流与客户机进行通信
相同点 均是在服务器端完成的,因此地址栏中只显示原URL,不显示跳转后的URL 均是在服务器端完成的,因此地址栏中只显示原URL,不显示跳转后的URL


动手练一下吧!

关于requset的forward()、include()跳转的实例代码


参考文章:

  1. RequestDispatcher实现请求转发
  2. 什么是web资源????

请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include相关推荐

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

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

  2. js对象转换为数组的两种方法

    第一种方法: Object.values(obj) 示例: var obj = { name: '小明', age: 22 }; console.log( Object.values(obj) ); ...

  3. 修改对象属性名的两种方法

    每天都能遇到奇奇怪怪的问题哈 修改前的数据 let HouChen = [{ name: '羽神', 年龄: 13, sex: '女', userList: [{ id: 1, Z_name: '钢铁 ...

  4. unity3d为对象添加脚本的两种方法

    首先添加一个物体,然后新建一个C#脚本.接下去有两种方法把C#脚本与物体绑定. 1.在类声明上方添加如下代码: [AddComponentMenu("a/b")] 这句话表示在该物 ...

  5. java 请求转发_javaweb之请求的转发和重定向

    1.什么是请求转发和请求重定向? 请求转发: xxServlet收到请求,然后直接转发给yyServlet,然后yyServlet返回给客户端.整个过程中,客户端发出一个请求,收到一个响应. 重定向: ...

  6. 06_Request对象封装请求信息(获取请求信息,和把前端请求转发到当前服务器其他资源)

    请求头运用 解决浏览器的兼容性问题 解决获取中文请求参数值 乱码问题 Referer作用:防盗链,统计访问 两个模块需要开两个服务器,分别设置不同虚拟目录和端口号 获取请求数据 获取请求行数据 获取请 ...

  7. Request对象实现请求转发

    一.请求转发 指一个web资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理. 在Servlet中实现请求转发的两种方式: 通过ServletContext的getRequestDisp ...

  8. 重定向sendredirect(URL)和请求转发requestDispatcher(servlet).forword(req,resp)

    请求转发和重定向的区别 什么是请求转发(request.getRequestDispatcher(目标).forward(request,response)) 请求转发是服务器将请求转发给别的serv ...

  9. HttpServletRequest对象,请求行、请求头、请求体

    HttpServletRequest 公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象.对 ...

最新文章

  1. 【linux】串口编程(三)——错误处理
  2. MAC OS X El CAPITAN 搭建SPRING MVC (1)- 目录、包名、创建web.xml
  3. mysql数据库主从同步
  4. 音频数据文件格式(PCM,WAV,MIDI)简记
  5. 100行php代码实现加密端口转发
  6. HTML表单fieldset
  7. Windows Server 2012系列之二安装AD及创建域
  8. 一次java导出pdf的经历
  9. C#如何操作另一个窗体:[2]子窗体操作主窗体(转)
  10. c语言 sqlite_SQLite与C语言
  11. 格子里输出 java_蓝桥杯-格子中输出-java
  12. Linux vi 行尾 ctrl,linux中vi使用技巧常用技巧和高级替换
  13. Entity Framework底层操作封装V2版本号(2)
  14. win2008r2 mysql 远程_SQL SERVER 2008 R2如何开启数据库的远程连接(转)
  15. LSB最低有效位算法实现
  16. 给ecshop后台增加管理功能页面
  17. Mac电脑上的Safari运行缓慢,卡的要死,该怎么解决?
  18. 【C语言】19-static和extern关键字1-对函数的作用
  19. 网络蚂蚁背后的故事(转)
  20. 开源.net 混淆器ConfuserEx介绍 [转]

热门文章

  1. PAT甲级1072 Gas Station (30 分):[C++题解]dijkstra算法、最短路
  2. 吴恩达机器学习Ex1
  3. php增加数量,php – 更新列数量
  4. linux mysql 5.6.22_linux下MySQL5.6.2安装过程
  5. dva的用法_dva.js 用法详解:列表展示
  6. oracle 新建路径,Linux环境安装Oracle11g(三)——用户、路径创建及配置环境变量
  7. python运用实例视频_python爬视频实例
  8. android root 恢复出厂设置,Android系统 免root 卸载预置应用
  9. java 常量折叠_V8 使用“常量折叠”优化技巧,导致幂(**)运算有时候不等于 Math.pow()...
  10. linux 下的远程上传命令行,使用scp命令用命令行从服务器上传下载文件