SendRedirect或requestdispatch?哪个应该更优先?哪个更有效?
他们做了两件截然不同的事情,所以你不能只决定效率.
发送重定向会将浏览器发送到其他URL.该URL将对浏览器可见.你可能想要也可能不想要那样.例如,在POST之后,您可能应该重定向到GET页面,以避免在没有重新发布的情况下无法重新加载结果页面.另一方面,您无法重定向到只能从servlet容器内部访问的"页面".
调度更加"高效",因为没有额外的往返,但它只适用于相同的Web应用程序上下文(或者如果您设置它,最多只能在同一个servlet容器中).此外,用户首先用于访问页面的URL将与稍后调用链中的servlet的URL不同,这可能会造成混淆.调度模式通常用于在实际请求之前或之后(代替ServletFilter)或错误页面进行额外处理.
您可以使用分派传递请求属性,但只能在重定向上查询参数.您无法重定向为POST(因此您可以附加到它的数据量有限).重定向中的所有查询参数对用户可见.