首页 » Web前端 » phpforwardredirect技巧_你知道Forward和Redirect的事理和差异吗

phpforwardredirect技巧_你知道Forward和Redirect的事理和差异吗

访客 2024-12-06 0

扫一扫用手机浏览

文章目录 [+]

大家都知道Forward和Redirect都是处理客户端要求并卖力转发的,那么他们的事理与差异又是什么呢?

事理示意图:

phpforwardredirect技巧_你知道Forward和Redirect的事理和差异吗

如上图所示为直接转发(Forward)和间接转发(Redirect)的事情事理示意图。
很明显,当用户发出要求的时候,对付Forward(直接转发)是做事器直接要求资源,把内容相应给用户,这个过程只有一次要求,即只有一个request工具。
而对付Redirect(间接转发),是做事器反馈给浏览器让它重新再发起一次要求,这个过程中有两次要求,即有两个request工具。
我们可以说Forward是一种做事器行为,而Redirect是一种客户端行为。

phpforwardredirect技巧_你知道Forward和Redirect的事理和差异吗
(图片来自网络侵删)

那么他们有什么差异呢?

源代码方法不同:Forward对应的是RequestDispatcher类的forward()方法,而Redirect对应的是HttpServletRequest类的sendRedirect()方法。

浏览器的地址栏显示不同:当用户发起要求做事器相应回来之后,Forward的地址栏的URL是不变的,而Redirect的地址栏会发生改变。

数据共享不同:对付Forward,转发到的页面是可以共享request里面的数据,由于调用者和被调用者之间共享相同的request工具和response工具;而Redirect则不可以,由于调用者和被调用者属于两个独立的要求-相应过程。

内部机制不同:Forward只能将要求转发给同一个Web运用中的组件,而Redirect可以重新定向到同一站点不同运用程序中的资源,乃至可以定向到一绝对的URL。

处理效率不同:Forward的效率比Redirect高。

还有大家在书写代码的时候,要记住Redirect跳转后必须加上return,不然页面虽然跳转了,但是还会实行跳转后面的语句,forward是实行了跳转页面,下面的代码是不会在实行的。

关注小编,每天学习一点点;不积跬步,无以至千里;不积小流,无以成江海。

相关文章