请求转发:一种在服务器内部的资源跳转方式

步骤:

1 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
2 使用RequestDispatcher对象来进行转发:forward(ServletRequest requst,ServletResponse response)

特点:

1 浏览器地址栏路径不发生变化
测试如下
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
上面就请求转发 ,可以看到浏览器的地址没有发生变化,也能访问RequestDemo9的类.
测试 能不能访问外部资源
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
它自己能被访问 ,但是转发后的资源访问不了.

特点2 只能转发服务器内部资源.

特点3 转发是一次请求.

只请求一次,2个资源同时被访问.
JavaWeb-请求转发和重定向

JavaWeb-请求转发和重定向

共享数据 request 域

JavaWeb-请求转发和重定向

重定向

JavaWeb-请求转发和重定向

代码实现
第一种方式
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向

第二种方式 : 也是我们常用的
JavaWeb-请求转发和重定向

JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向

转发请求和重定向的特点对比 *****它们正好是相反的.

JavaWeb-请求转发和重定向 代码上面已经截过图了 输入ResponseDemo01 的地址
JavaWeb-请求转发和重定向
地址跳转了ResponseDemo02 而且是两次请求 第二次状态是200
JavaWeb-请求转发和重定向

演示 跳转外部资源

代码如下
JavaWeb-请求转发和重定向
输入地址ResponseDemo01
JavaWeb-请求转发和重定向

跳转了重定向后的地址ResponseDemo01

JavaWeb-请求转发和重定向

路径的写法.

一 路径的分类.

1 相对路径 : 通过相对路径不可以确定唯一资源

如 : ./index.html
不以/开头,以.开头的路径
规则:确定访问当前资源和目标资源直接的相对位置关系.
比如下面 就是相对路径访问到的responseDemo2资源.
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向

./ 代表 当前目录

…/ 代表后退一级目录

2 绝对路径 : 通过绝对路径可以确定唯一的资源

如: http://localhost/day15/responseDemo02
以/开头
规则: 判断定义的路径是给谁用的? 判断请求将来从哪发出
:给客服端浏览器使用:需要加虚拟目录(项目的访问路径) 一般是指 超链接 表单 重定向
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
点击后跳转正常 如下图
JavaWeb-请求转发和重定向

给服务器使用:不需要加虚拟目录.

转发的时候不用加虚拟目录/day15 因为转发是给服务器使用的.(内部使用)
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向
JavaWeb-请求转发和重定向

一个小细节 重定向 需要写虚拟目录.

虚拟目录不能写死了
要写成动态的

JavaWeb-请求转发和重定向

JavaWeb-请求转发和重定向

相关文章:

  • 2021-07-05
  • 2021-06-12
  • 2021-06-12
  • 2021-09-18
  • 2021-10-27
  • 2021-11-23
  • 2021-07-02
猜你喜欢
  • 2021-10-29
  • 2021-12-25
  • 2021-12-09
  • 2021-07-10
相关资源
相似解决方案