2012-03-27 77 views
5

通過一些遺留代碼,我有我用struts一個的正面看去,我看到:重定向或轉發

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

所以它只是一個全球性的期待發送到拒絕訪問頁面。 我很好奇重定向的決定,而不是轉發。使用它的優點和缺點是什麼?

+0

答案我一直在尋找的是在這裏... http://stackoverflow.com/questions/614516/why-use-redirect-true-in-struts-1-forward這個線程可以被關閉爲重複。抱歉。 – dublintech 2012-04-03 14:54:30

回答

5

什麼是親的和使用它的反對的?

在討論pro和con的使用重定向設置爲true的前向元素之前,讓我們先了解一下實際的配置。當forward元素中的重定向設置爲true時,應該向用戶代理髮出重定向指令,以便爲該前鋒的資源發出新的請求。這link可能會提供您需要的詳細信息。

對重定向的默認值是假的,基本上是當正向元素被調用,它期待指定路徑,就是這樣。如果您將重定向設置爲true,則例如,瀏覽器將發出另一個請求。所以我認爲這些說,你可能知道或有一個想法,親和你是否真的想要使用它。

1

在重定向,控制可被引導到不同的服務器或甚至另一個域name.The重定向需要一個圓trip.When重定向被髮出,它被髮送回客戶端,和重定向的URL信息是在標題指示瀏覽器移至下一個URL。這將作爲新的請求,所有請求和響應數據都將丟失。

在前進,轉發由服務器端完成,客戶端瀏覽器的網址不change.the數據也沒有lost.It就像一個瀏覽器頁面刷新。無論第一次提交發布的數據是否重新提交,請謹慎使用。

正向和重定向在不同的場景中使用,全球前應重定向,因爲這是一個錯誤的情況。

重定向速度較慢,因爲它需要往返。前進速度更快。

+0

我明白轉發和重定向之間的區別。我只是在尋找兩種方法的pro和con,以及何時在struts配置中使用每種方法。 – dublintech 2012-04-02 18:52:41

+0

正反兩面也解釋了上面的答案。 – cherit 2012-04-03 11:21:26

0

如果指定

重定向= 「真」,Struts使用一個客戶端重定向

[response.sendRedirect是()]

。 JSP將被新的瀏覽器請求調用,並且存儲在舊請求中的任何數據都將丟失。