Servlet實現頁面重定向


以下內容引用自http://wiki.jikexueyuan.com/project/servlet/page-redirect.html

當文檔移動到一個新的位置時,通常會使用頁面重定向,需要將客戶端發送到這個新位置或者也可能是由於負載均衡,或者只是為了簡單的隨機。

重定向請求到另一個頁面的最簡單的方式是使用Response對象的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.easonjim.com");
      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>
....

現在使用URL http://localhost:8080/PageRedirect來調用這個Servlet。這將跳轉到給定的URL http://www.easonjim.com 中。

 

測試工程:https://github.com/easonjim/5_java_example/tree/master/servletbasics/test13


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM