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

2024-01-30

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

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


从广义上讲,Redirect将执行 http 重定向(带有标头位置)。这意味着客户端的浏览器将改变页面。它会处理到一个新的路由(它也可以用于访问另一个网站),并且实际的脚本将结束。

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

类似的类比也可以在 JSP 中显示,

The sendRedirect(String path)的方法HttpServletResponse会告诉客户端应该将请求发送到指定的路径。因此客户端将构建一个新的请求并将其提交给服务器。客户端的历史记录将被更新,因此前进和后退按钮将起作用。此方法对于重定向到其他服务器和域上的页面很有用。

前向方法为RequestDispatcher将转发ServletRequest and ServletResponse它被传递到指定的路径getRequestDispatcher(String path).响应不会发送回客户端,因此客户端不会知道服务器上资源的此更改。此方法对于服务器资源(servlet 到 servlet)之间的通信很有用。此方法比使用更快sendRedirect因为不需要与服务器之间的网络往返。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

phalcon 中的重定向和调度有什么区别? 的相关文章

随机推荐

  • RestKit - 将数组的键路径映射到该数组内部的对象

    我真的很喜欢用 RestKit 0 20 来解析这个特定的响应 addons id 1 name Addon one version 2 id 2 name Addon two version 3 forms id 1 name Form
  • 在 Python 中打印格式正确的 SQLite 表

    我编写了一个 Python 脚本来向表中添加行 我决定如果我也可以使用相同的脚本查看我的表 而不必退出脚本并运行 sqlite3 或切换到另一个 shell 并运行 sqlite3 那就太好了 所以我写下了我期望的内容 它会给我我想要的东西
  • Angular - 单击时使用动态 ID 专注于输入

    有很多类似的问题 但我还没有找到真正的重复问题来回答我的问题 如果我错过了一些东西 我深表歉意 我有一个包含多个输入 按钮的页面 重复相同的组件 并且需要在单击按钮时关注正确的输入 我尝试过 elementRef nativeElement
  • 将文本添加到 MySQL 列名称之前

    假设一个查询例如 SELECT FROM tableA 我怎样才能前置a 每列的名称 例如 如果有一列 用户名 它将在结果中作为 a username 进行访问 EDIT The SELECT username AS a username格
  • Rails 3 原型渲染:更新响应具有 text/html 内容类型

    我正在尝试让一些用原型和 Rails 2 3 11 编写的 RJS 代码在 Rails 3 2 1 中工作 我有prototype rails宝石 所以render update do page 有效 我正在使用一个表单 remote gt
  • 如何快速创建指向 Eclipse 中元素的 Javadoc 链接?

    我想在我的 Javadoc 中轻松创建类 方法 字段等的链接 而无需键入完整的表达式 例如 link AllowAllHostnameVerifier 在 Eclipse 中执行此操作最快的方法是什么 If you don t alread
  • 如何使用 PostgreSQL 将字符串转换为 unicode?

    在这里我想将我的字符串转换为unicode 我使用的是 PostgreSQL 9 3 版本 在 SQL Server 中 这要简单得多 Example sql N select from tabletest For nvarchar nch
  • UITableViewController 中的复制/粘贴功能

    我有一个 UITableViewController 我想在用户触摸单元格时弹出复制 粘贴菜单 我想像在 通讯录 应用程序中那样进行操作 如何实现这个功能 有人能帮我吗 我试过这段代码 UIMenuController theMenu UI
  • 编译时出错:“预期的类、委托、枚举、接口或结构”

    这段代码有什么问题 该程序旨在复制文件并将其通过电子邮件发送到电子邮件地址 但事实并非如此 using System using System Collections Generic using System ComponentModel
  • 为什么docker容器会立即退出

    我使用在后台运行一个容器 docker run d name hadoop h Service 它很快就退出了 但如果我在前台运行 它工作得很好 我使用检查日志 docker logs hadoop 没有错误 有任何想法吗 Dockerfi
  • python 图像库保存函数

    我刚刚使用 python 图像库 PIL 完成了一些图像处理 但无法使保存功能正常工作 整个代码工作正常 但它只是不会保存结果图像 代码如下 im Image new rgb 200 10 ddd draw Image draw draw
  • 在 C 中分配 128 位整数

    当我尝试在 gcc 4 9 1 中分配一个 128 位整数时 我得到一个warning integer constant is too large for its type 示例代码 int main void uint128 t p 47
  • for-await-of 简单示例(打字稿)

    在 typescript 2 3 中引入了一个新功能 for await of 任何人都可以发布一个简单的示例来说明如何将其与 Promise 一起使用以及其主要用例是什么 我正在研究更改日志中的示例 async function f fo
  • 如何根据另一个元素的高度调整列的高度?

    我在左侧有一种间隔列 实际上我希望它的高度与该页面上文本的长度相同 这显然因页面而异 这是CSS sidebox width 200px height 2000px float left padding 5px background f4f
  • 在唯一列中的行之间切换值

    假设您有一张这样的表 id name 1 foo 2 bar 存在唯一性约束name column 你会如何设置行id 2 to foo 以及行id 1 to bar 我知道您可能只需为两者分配临时名称 然后粘贴所需的名称 但这似乎不是最简
  • Windows API CreateFile() 中 OPEN_ALWAYS 和 CREATE_ALWAYS 的区别

    谁能解释一下创造配置之间有什么区别OPEN ALWAYS and CREATE ALWAYS of the 创建文件 http msdn microsoft com en us library aa363858 28VS 85 29 asp
  • 静态只读字段的初始化顺序[重复]

    这个问题在这里已经有答案了 我很好奇 C 规范对 C 5 net4 中静态字段的初始化顺序有何说明 例如 public class Test public static readonly string A hi public static
  • Pika:写入缓冲区超出警告

    我们的软件程序运行良好 5 个月 现在突然开始收到 Pika 警告 最终导致异常 Pika 0 9 5 用户警告 写入缓冲区超出警告阈值 我搜索了很多论坛 但都不满意 所描述的一种解决方案是完全忽略这些警告 但我对此有点怀疑 对此问题的任何
  • 从连续的数组切片或卷组成矩阵

    我有一个像这样的数组 10 20 30 40 我想建立一个矩阵M1像这样 10 0 0 0 20 10 0 0 30 20 10 0 40 30 20 10 我的方法是首先构建以下矩阵M2在数组的连续 卷 之外 10 20 30 40 20
  • phalcon 中的重定向和调度有什么区别?

    当我想从另一个页面切换到另一个页面时 我可以找到两个页面 this gt dispatcher gt forward and this gt response gt redirect 两者似乎都工作正常 它们之间有什么区别 什么时候应该使用