2012-03-27 33 views
5

Nhìn qua một số mã di sản tôi có trước mặt tôi sử dụng thanh chống một, tôi thấy:Redirect hoặc chuyển tiếp

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

Vì vậy, nó chỉ là một tiền đạo toàn cầu để gửi đến một trang access denied. Tôi tò mò về quyết định chuyển hướng trái ngược với chuyển tiếp. Những lợi thế và bất lợi của việc sử dụng nó là gì?

+0

Trả lời Tôi đang tìm kiếm ở đây ... http://stackoverflow.com/questions/614516/why-use-redirect-true-in-struts-1-forward Chủ đề này có thể bị đóng là trùng lặp. Lấy làm tiếc. – dublintech

Trả lời

5

Chuyên gia và con của việc sử dụng nó là gì?

Trước khi thảo luận về vấn đề chuyên nghiệp và con của việc sử dụng phần tử chuyển tiếp đó với chuyển hướng được đặt thành true, hãy hiểu điều gì đang thực sự xảy ra với cấu hình đó. Khi chuyển hướng được đặt thành true trong phần tử chuyển tiếp, lệnh chuyển hướng sẽ được cấp cho tác nhân người dùng để yêu cầu mới được phát hành cho tài nguyên chuyển tiếp này. Điều này link có thể sẽ cung cấp thông tin chi tiết mà bạn cần.

Giá trị mặc định cho chuyển hướng là sai, về cơ bản khi phần tử chuyển tiếp được gọi, nó chuyển tiếp đến đường dẫn được chỉ định và đó là nó. Nếu bạn đang đặt chuyển hướng thành true, hãy lấy ví dụ, trình duyệt sẽ thực hiện một yêu cầu khác. Vì vậy, tôi nghĩ rằng với những nói, bạn có thể biết hoặc có một ý tưởng chuyên nghiệp và con nếu bạn thực sự muốn sử dụng nó.

1

Trong chuyển hướng, điều khiển có thể được chuyển hướng đến các máy chủ khác nhau hoặc thậm chí một tên miền khác.Chuyển hướng sẽ thực hiện chuyến đi khứ hồi.Khi chuyển hướng được phát hành, nó sẽ được gửi lại cho khách hàng và thông tin URL được chuyển hướng nằm trong tiêu đề hướng dẫn trình duyệt di chuyển đến URL tiếp theo. Điều này sẽ hoạt động như một yêu cầu mới và tất cả dữ liệu yêu cầu và phản hồi bị mất.

Trong tương lai, chuyển tiếp được thực hiện từ phía máy chủ, URL trình duyệt của khách hàng không thay đổi. Dữ liệu cũng không bị mất. Nó cũng giống như làm mới trang trình duyệt. Bất kỳ dữ liệu nào được đăng trong lần gửi đầu tiên sẽ được gửi lại. Do đó, hãy sử dụng dữ liệu đó một cách thận trọng.

Cả chuyển tiếp và chuyển hướng được sử dụng trong các trường hợp khác nhau, chuyển tiếp toàn cầu sẽ được chuyển hướng vì đó là tình huống lỗi.

Chuyển hướng chậm hơn vì nó cần khứ hồi. Chuyển tiếp nhanh hơn.

+0

Tôi hiểu sự khác biệt giữa chuyển tiếp và chuyển hướng. Tôi chỉ đang tìm kiếm của pro và con của cả hai cách tiếp cận và khi nào sử dụng mỗi cách tiếp cận trong cấu hình thanh chống của bạn. – dublintech

+0

ưu và nhược điểm cũng được giải thích trong câu trả lời ở trên. – cherit

0

Nếu bạn chỉ định

redirect = "true", Struts sử dụng một client-side chuyển hướng

[response.sendRedirect()]

. JSP sẽ được gọi bởi một yêu cầu trình duyệt mới và bất kỳ dữ liệu nào được lưu trữ trong yêu cầu cũ sẽ bị mất.