頁麵重定向時,通常使用文件移動指到新的位置,我們需要向客戶端發送到這個新的位置,也可能是因為負載平衡,或為簡單隨機。
將請求重定向到另一頁的最簡單的方法是,用方法的sendRedirect()的響應對象。以下是這種方法的定義:
public void HttpServletResponse.sendRedirect(String location) throws IOException
此方法的響應發送回給瀏覽器一起的狀態代碼和新的頁麵位置。還可以使用setStatus()和setHeader()方法來達到同樣的:
.... String site = "http://www.newpage.com" ; response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", site); ....
這個例子顯示servlet如何進行頁麵重定向到另一個位置:
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.gitbook.net"); response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", site); } }
現在讓我們來編譯上麵的servlet在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> ....
現在調用這個servlet的URL http://localhost:8080/PageRedirect。這將轉到你給的URL http://www.gitbook.net