Redirect 重定向或转发

Redirect 重定向或转发,redirect,struts,forward,Redirect,Struts,Forward,通过使用struts one查看我面前的一些遗留代码,我发现: <global-forwards> ... <forward name="accessDenied" path="/www/jsp/AccessDeniedForm.do" redirect="true" /> </global-forwards> ... 所以它只是一个发送到拒绝访问页面的全局转发。 我对重定向而不是转发的决定感到好奇。使用它的优点和缺点是什么 使用它的

通过使用struts one查看我面前的一些遗留代码,我发现:

<global-forwards>
     ...
     <forward name="accessDenied" path="/www/jsp/AccessDeniedForm.do" redirect="true" />
</global-forwards>

...
所以它只是一个发送到拒绝访问页面的全局转发。 我对重定向而不是转发的决定感到好奇。使用它的优点和缺点是什么

使用它的利与弊是什么

在讨论将重定向设置为true时使用forward元素的利弊之前,让我们先了解一下该配置的实际情况。当forward元素中的redirect设置为true时,应向用户代理发出重定向指令,以便为该forward的资源发出新的请求。这可能会提供您需要的详细信息


重定向的默认值为false,基本上是在调用forward元素时,将其转发到指定的路径,就是这样。例如,如果将redirect设置为true,浏览器将发出另一个请求。所以我认为,如果你真的想使用它,你可能知道或有一个好的和坏的想法

在重定向中,可以将控件定向到不同的服务器,甚至其他域名。重定向需要一个往返过程。当发出重定向时,它将被发送回客户端,重定向的URL信息位于标题中,指示浏览器移到下一个URL。这将作为一个新请求,所有请求和响应数据都将丢失

在forward中,转发是从服务器端完成的,客户端浏览器URL不会更改。数据也不会丢失。这就像刷新浏览器页面一样。在第一次提交中发布的任何数据都会再次提交。因此请谨慎使用

转发和重定向都用于不同的场景,全局转发应该重定向,因为这是一种错误情况

重定向速度较慢,因为它需要往返。转发速度更快。

如果您指定

Struts使用客户端重定向

[response.sendRedirect()]


。新的浏览器请求将调用JSP,旧请求中存储的任何数据都将丢失。

我理解转发和重定向之间的区别。我只是在寻找这两种方法的优缺点,以及在struts配置中何时使用每种方法。上面的答案中也解释了优缺点。我想要的答案在这里。。。此线程可以作为副本关闭。很抱歉