Chuyển hướng trang (page redirect) là một kỹ thuật mà client được chuyển đến một trang mới ngoài trang được request. Chuyển hướng trang thường được sử dụng khi tài liệu chuyển đến vị trí mới hoặc có thể là do cân bằng tải(load balancing).
Cách đơn giản nhất để thực hiện page redirect trong servlet là sử dụng phương thức sendRedirect() của đối tượng response. Khai báo của phương thức này như sau:
public void HttpServletResponse.sendRedirect(String location) throws IOException
Phương thức này 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 setStatus() và setHeader() các phương pháp với nhau để chuyển hướng trang.
.... String site = "http://www.newpage.com" ; response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", site); ....
Nội dung chính
Ví dụ page redirect trong servlet
Ví dụ này cho thấy một servlet thực hiện chuyển hướng trang đến vị trí khác như thế nào:
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; 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://localhost/viettuts/servlet"); response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", site); } }
Cấu hình trong file 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>
Khi gọi servlet "PageRedirect" bạn sẽ được chuyển đến trang http://localhost/viettuts/servlet.