Servlets - Chuyển hướng trang

Chuyển hướng trang là một kỹ thuật mà khách hàng được đưa đến một vị trí mới khác với yêu cầu. Chuyển hướng trang thường được sử dụng khi tài liệu di chuyển đến một vị trí mới hoặc có thể do cân bằng tải.

Cách đơn giản nhất để chuyển hướng một yêu cầu đến một trang khác là sử dụng phương thức sendRedirect()của đối tượng phản hồi. Sau đây là chữ ký của phương pháp này:

public void HttpServletResponse.sendRedirect(String location) 
throws IOException

Phương thức này sẽ gửi lại phản hồi cho trình duyệt cùng với mã trạng thái và vị trí trang mới. Bạn cũng có thể sử dụng các phương thức setStatus () và setHeader () cùng nhau để đạt được điều tương tự -

.... 
String site = "http://www.newpage.com" ; 
response.setStatus(response.SC_MOVED_TEMPORARILY); 
response.setHeader("Location", site);  
....

Thí dụ

Ví dụ này cho thấy cách một servlet thực hiện chuyển hướng trang đến một vị trí khác -

import java.io.*;
import java.sql.Date;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class PageRedirect extends HttpServlet {
    
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

      // Set response content type
      response.setContentType("text/html");

      // New location to be redirected
      String site = new String("http://www.photofuntoos.com");

      response.setStatus(response.SC_MOVED_TEMPORARILY);
      response.setHeader("Location", site);    
   }
}

Bây giờ chúng ta hãy biên dịch servlet ở trên và tạo các mục sau trong web.xml

....
<servlet>
   <servlet-name>PageRedirect</servlet-name>
   <servlet-class>PageRedirect</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>PageRedirect</servlet-name>
   <url-pattern>/PageRedirect</url-pattern>
</servlet-mapping>
....

Bây giờ gọi servlet này bằng URL http: // localhost: 8080 / PageRedirect. Điều này sẽ chuyển hướng bạn đến URL http://www.photofuntoos.com.