gpt4 book ai didi

phalcon - phalcon 中的重定向和调度有什么区别?

转载 作者:行者123 更新时间:2023-12-04 18:05:57 27 4
gpt4 key购买 nike

当我想从另一个页面切换到一个页面时,我可以同时找到$this->dispatcher->forward()$this->response->redirect() .两者似乎都可以正常工作。

它们之间有什么区别,我什么时候应该使用一个而不是另一个?

最佳答案

广义而言,Redirect将进行 http 重定向(使用 header 位置)。这意味着客户端的浏览器将更改页面。它处理到一个新的路由(它也可以用来去另一个网站),实际脚本将结束。

Forward是内部的,客户端的浏览器不会看到任何区别,您只需执行不同的 Controller 。调度循环允许用户将执行流转发到另一个 Controller / Action 。这对于检查用户是否可以访问某些选项、将用户重定向到其他屏幕或简单地重用代码非常有用。但是,请记住,进行“转发”与进行 HTTP 重定向不同。虽然他们显然得到了相同的结果。 “转发”不会重新加载当前页面,所有重定向都发生在单个请求中,而 HTTP 重定向需要两个请求才能完成该过程。

类似的类比也可以在 JSP 中显示,
sendRedirect(String path) HttpServletResponse的方法将告诉客户端它应该向指定路径发送请求。所以客户端会构建一个新的请求并提交给服务器。客户端的历史记录将被更新,因此前进和后退按钮将起作用。此方法对于重定向到其他服务器和域上的页面很有用。
RequestDispatcher的转发方法将转发ServletRequestServletResponse它被传递到 getRequestDispatcher(String path). 中指定的路径响应不会被发送回客户端,因此客户端不会知道服务器上资源的这种变化。此方法对于在服务器资源(servlet 到 servlet)之间进行通信很有用。这种方法比使用 sendRedirect 更快因为不需要到服务器和返回的网络往返。

关于phalcon - phalcon 中的重定向和调度有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27900017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com