java - sendRedirect 还是 request Dispatch 效率更高?

标签 java jsp servlets

SendRedirect 和 requestdispatcher 哪个更受青睐?哪个更高效?

最佳答案

它们做两件截然不同的事情,所以你不能只根据效率来决定。

发送重定向会将浏览器发送到不同的 URL。该 URL 将对浏览器可见。你可能想要也可能不想要那个。例如,在 POST 之后,您可能应该重定向到 GET 页面,以避免在不重新发布的情况下无法重新加载结果页面。另一方面,您不能重定向到只能从 servlet 容器内部访问的“页面”。

分派(dispatch)更“高效”,因为没有额外的往返,但它只能在相同的 Web 应用程序上下文中工作(或者最多在相同的 servlet 容器中,如果你这样设置的话)。此外,用户最初用来访问页面的 URL 将与链中稍后调用的 servlet 不同,这可能会造成混淆。调度模式通常用于在实际请求之前或之后进行额外处理(代替 ServletFilter),或用于错误页面。

您可以使用分派(dispatch)传递请求属性,但只能在重定向时查询参数。您不能重定向为 POST(因此您可以附加到它的数据量是有限的)。重定向中的所有查询参数对用户都是可见的。

关于java - sendRedirect 还是 request Dispatch 效率更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/629152/

相关文章:

jsp - SSL 连接适用于控制台应用程序但不适用于 Glassfish

java - Camel servlet 监听地址

java - Maven 无法转换为 javax.servlet.Filter

java - 在 SQlite 数据库中添加新行然后在 ListView 中添加新行时,所有列表行在自定义 ListView 中重复

java静态绑定(bind)和多态性

java - 将 JSP 表中的更改保存到数据库中

jsp - 通过 EL 中的特定键获取 HashMap 的值而不对其进行迭代

jsf - 在页面之间发送参数的最佳方式是什么?

java - Android 中的 switch 语句中未设置数组

java - 我需要解析字符串并提取信息以输入数据库