转发与重定向的作用

在Servlet中实现页面的跳转有两种方式:转发和重定向.

重定向

一、定义:

重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。

由浏览器端进行的页面跳转。

二、举例说明:

重定向是网页制作中的一个知识。假设你现在所处的位置是一个论坛的登录页面,你填写了帐号,密码,点击登陆,如果你的帐号密码正确,就自动跳转到论坛的首页,不正确就返回登录页;

这里的自动跳转,就是重定向的意思。或者可以说,重定向就是,在网页上设置一个约束条件,条件满足,就自动转入到其它网页、网址。

三、网页定向

我们在网站建设中,时常会遇到需要网页重定向的情况:

1.网站调整(如改变网页目录结构);
2.网页被移到一个新地址;
3.网页扩展名改变(如应用需要把.php改成.Html或.shtml)。

这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等。

四、重定向的原理图

以下原理图的第二步就是重定向的过程。

五、重定向的步骤




六、重定向的方法

在这里插入图片描述

七、重定向的特点

  1. 地址栏:显示新的地址
  2. 请求次数:2次
  3. 请求域中的数据会丢失,因为是2次请求

转发

一、定义:

由服务器端进行的页面跳转。
请求转发:一种在服务器内部的资源跳转方式。

访问A,A请求转发了B,访问A的同时就也访问到了B。
带参数跳到指定的页面,比如request。
访问A,进入A的网址,然后在A里面请求转发B,就是带着A的请求到了B。

二、步骤:

1.通过request对象获取请求转发器对象:

Requestdispatcher.getRequestdispatcher(String path)

2.使用Requestdispatcher对象来进行转发:

forward(ServletRequest request,ServletResponse Response)

三、转发的方法(总结上面的步骤)

四、特点:

  1. 浏览器地址栏路径不发生变化。
  2. 只能转发到当前服务器内部资源中。
  3. 转发是一次请求。
  4. 请求域中数据不会丢失。



五、转发的原理图

疑问:什么时候使用转发,什么时候使用重定向?

如果要保留请求域中的数据,使用转发,否则使用重定向。
以后访问数据库,增删改使用重定向,查询使用转发。

问:转发或重定向后续的代码是否还会运行?

无论转发或重定向后续的代码都会执行。

总结:重定向和转发的区别


(参考:百度百科
参考博文:https://blog.csdn.net/weixin_40001125/article/details/88663468)

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐