转发与重定向的作用
在Servlet中实现页面的跳转有两种方式:转发和重定向.
重定向
一、定义:
重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
由浏览器端进行的页面跳转。
二、举例说明:
重定向是网页制作中的一个知识。假设你现在所处的位置是一个论坛的登录页面,你填写了帐号,密码,点击登陆,如果你的帐号密码正确,就自动跳转到论坛的首页,不正确就返回登录页;
这里的自动跳转,就是重定向的意思。或者可以说,重定向就是,在网页上设置一个约束条件,条件满足,就自动转入到其它网页、网址。
三、网页定向
我们在网站建设中,时常会遇到需要网页重定向的情况:
1.网站调整(如改变网页目录结构);
2.网页被移到一个新地址;
3.网页扩展名改变(如应用需要把.php改成.Html或.shtml)。
这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等。
四、重定向的原理图
以下原理图的第二步就是重定向的过程。
五、重定向的步骤
六、重定向的方法
七、重定向的特点
- 地址栏:显示新的地址
- 请求次数:2次
- 请求域中的数据会丢失,因为是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)
三、转发的方法(总结上面的步骤)
四、特点:
- 浏览器地址栏路径不发生变化。
- 只能转发到当前服务器内部资源中。
- 转发是一次请求。
- 请求域中数据不会丢失。
五、转发的原理图
疑问:什么时候使用转发,什么时候使用重定向?
如果要保留请求域中的数据,使用转发,否则使用重定向。
以后访问数据库,增删改使用重定向,查询使用转发。
问:转发或重定向后续的代码是否还会运行?
无论转发或重定向后续的代码都会执行。
总结:重定向和转发的区别
(参考:百度百科
参考博文:https://blog.csdn.net/weixin_40001125/article/details/88663468)