2015-01-12 17 views

Trả lời

6

Nói chung, Redirect sẽ thực hiện chuyển hướng http (với vị trí tiêu đề). Nó có nghĩa là trình duyệt của khách hàng sẽ thay đổi trang. Nó xử lý một định tuyến mới (nó cũng có thể được sử dụng để đi đến một trang web khác) và kịch bản thực tế sẽ kết thúc.

Trong khi Forward là nội bộ, trình duyệt của khách hàng sẽ không thấy bất kỳ sự khác biệt nào, bạn chỉ cần thực hiện một bộ điều khiển khác. Vòng lặp công văn cho phép người dùng chuyển tiếp luồng thực thi đến một bộ điều khiển/hành động khác. Điều này rất hữu ích để kiểm tra xem người dùng có thể truy cập vào các tùy chọn nhất định hay không, chuyển hướng người dùng đến các màn hình khác hoặc đơn giản là sử dụng lại mã. Tuy nhiên, hãy nhớ rằng việc tạo “chuyển tiếp” không giống với việc chuyển hướng HTTP. Mặc dù họ dường như có kết quả tương tự. "Chuyển tiếp" không tải lại trang hiện tại, tất cả chuyển hướng xảy ra trong một yêu cầu duy nhất, trong khi chuyển hướng HTTP cần hai yêu cầu để hoàn tất quá trình.

tương tự tương tự có thể được hiển thị trong JSP là tốt,

Phương pháp sendRedirect(String path) của HttpServletResponse sẽ nói với khách hàng rằng nó nên gửi một yêu cầu đến đường dẫn cụ thể. Vì vậy, khách hàng sẽ xây dựng một yêu cầu mới và gửi nó đến máy chủ. Lịch sử của khách hàng sẽ được cập nhật để các nút tiến và lùi sẽ hoạt động. Phương pháp này hữu ích cho việc chuyển hướng đến các trang trên các máy chủ và miền khác.

Phương pháp chuyển tiếp của RequestDispatcher sẽ chuyển tiếp ServletRequestServletResponse rằng nó được truyền cho con đường đã được quy định tại getRequestDispatcher(String path). Câu trả lời sẽ không được gửi lại cho khách hàng và do đó khách hàng sẽ không biết về sự thay đổi này của tài nguyên trên máy chủ. Phương thức này hữu ích cho việc giao tiếp giữa các tài nguyên máy chủ, (servlet đến servlet). Phương thức này nhanh hơn sử dụng sendRedirect vì không có mạng vòng chuyến đi đến máy chủ và ngược lại là bắt buộc.

Các vấn đề liên quan