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/