Nói chung, Redirect page được sử dụng khi một tài liệu di chuyển tới một địa chỉ mới và chúng ta cần gửi Client tới vị trí mới này hoặc có thể vì cân bằng tải (load balancing) hoặc là do ngẫu nhiên.
Cách đơn giản nhất để Redirect một yêu cầu tới page khác là sử dụng phương thức sendRedirect() của đối tượng response.
Sau đây là cú pháp của phương thức Redirect Page trong Servlet:
public void HttpServletResponse.sendRedirect(String location) throws IOException
Phương thức này gửi phản hồi trở lại trình duyệt cùng với status code và vị trí trang mới. Bạn cũng có thể sử dụng setStatus() và setHeader() cùng nhau để nhận được kết quả tương tự:
.... String site = "http://www.newpage.com" ; response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", site); ....
Ví dụ
Ví dụ sau minh họa cách một Servlet thực hiện redirect page tới 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);
} }
Biên dịch Servlet trên và tạo các entry 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ờ, khi chúng ta gọi Servlet này bởi sử dụng URL là http://localhost:8080/PageRedirect. Nó sẽ đưa bạn tới URL đã cho là http://www.photofuntoos.com.