请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include
当一个 Web资源
收到客户端的请求后,如果希望服务器通知另一个web资源处理请求,那么这时可以通过 RequestDispatcher
接口的实例对象实现。
web资源分为静态和动态
- 静态资源
静态web资源是浏览器能够直接打开的。如:html、css、 js等- 动态资源
动态web资源是经过翻译之后浏览器能够打开的。如:jsp、servlet、php、ASP等
RequestDispatcher对象
RequestDispatcher getRequestDispatcher (String path)
参数:
path
必须以/
开头,用于表示当前 Web 应用的根目录web应用的根目录在idea中是
web
;在eclipse中是webcontent
需要注意的是,
WEB-INF
目录中的内容对RequestDispatcher
对象也是可见的。因此,传递给getRequestDispatcher(String path)
方法的资源可以是WEB-INF
目录中的文件返回值:某条路径所指定资源的
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()跳转的实例代码
参考文章:
- RequestDispatcher实现请求转发
- 什么是web资源????
请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include相关推荐
- 代码实例--请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include
验证requset的forward().include()跳转 indextest.jsp :接受用户输入的用户名和密码 ValidateServlet.java: 验证用户的数据是否正确 正确,则用 ...
- js对象转换为数组的两种方法
第一种方法: Object.values(obj) 示例: var obj = { name: '小明', age: 22 }; console.log( Object.values(obj) ); ...
- 修改对象属性名的两种方法
每天都能遇到奇奇怪怪的问题哈 修改前的数据 let HouChen = [{ name: '羽神', 年龄: 13, sex: '女', userList: [{ id: 1, Z_name: '钢铁 ...
- unity3d为对象添加脚本的两种方法
首先添加一个物体,然后新建一个C#脚本.接下去有两种方法把C#脚本与物体绑定. 1.在类声明上方添加如下代码: [AddComponentMenu("a/b")] 这句话表示在该物 ...
- java 请求转发_javaweb之请求的转发和重定向
1.什么是请求转发和请求重定向? 请求转发: xxServlet收到请求,然后直接转发给yyServlet,然后yyServlet返回给客户端.整个过程中,客户端发出一个请求,收到一个响应. 重定向: ...
- 06_Request对象封装请求信息(获取请求信息,和把前端请求转发到当前服务器其他资源)
请求头运用 解决浏览器的兼容性问题 解决获取中文请求参数值 乱码问题 Referer作用:防盗链,统计访问 两个模块需要开两个服务器,分别设置不同虚拟目录和端口号 获取请求数据 获取请求行数据 获取请 ...
- Request对象实现请求转发
一.请求转发 指一个web资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理. 在Servlet中实现请求转发的两种方式: 通过ServletContext的getRequestDisp ...
- 重定向sendredirect(URL)和请求转发requestDispatcher(servlet).forword(req,resp)
请求转发和重定向的区别 什么是请求转发(request.getRequestDispatcher(目标).forward(request,response)) 请求转发是服务器将请求转发给别的serv ...
- HttpServletRequest对象,请求行、请求头、请求体
HttpServletRequest 公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象.对 ...
最新文章
- 【linux】串口编程(三)——错误处理
- MAC OS X El CAPITAN 搭建SPRING MVC (1)- 目录、包名、创建web.xml
- mysql数据库主从同步
- 音频数据文件格式(PCM,WAV,MIDI)简记
- 100行php代码实现加密端口转发
- HTML表单fieldset
- Windows Server 2012系列之二安装AD及创建域
- 一次java导出pdf的经历
- C#如何操作另一个窗体:[2]子窗体操作主窗体(转)
- c语言 sqlite_SQLite与C语言
- 格子里输出 java_蓝桥杯-格子中输出-java
- Linux vi 行尾 ctrl,linux中vi使用技巧常用技巧和高级替换
- Entity Framework底层操作封装V2版本号(2)
- win2008r2 mysql 远程_SQL SERVER 2008 R2如何开启数据库的远程连接(转)
- LSB最低有效位算法实现
- 给ecshop后台增加管理功能页面
- Mac电脑上的Safari运行缓慢,卡的要死,该怎么解决?
- 【C语言】19-static和extern关键字1-对函数的作用
- 网络蚂蚁背后的故事(转)
- 开源.net 混淆器ConfuserEx介绍 [转]
热门文章
- PAT甲级1072 Gas Station (30 分):[C++题解]dijkstra算法、最短路
- 吴恩达机器学习Ex1
- php增加数量,php – 更新列数量
- linux mysql 5.6.22_linux下MySQL5.6.2安装过程
- dva的用法_dva.js 用法详解:列表展示
- oracle 新建路径,Linux环境安装Oracle11g(三)——用户、路径创建及配置环境变量
- python运用实例视频_python爬视频实例
- android root 恢复出厂设置,Android系统 免root 卸载预置应用
- java 常量折叠_V8 使用“常量折叠”优化技巧,导致幂(**)运算有时候不等于 Math.pow()...
- linux 下的远程上传命令行,使用scp命令用命令行从服务器上传下载文件