當(dāng)文檔移動(dòng)到一個(gè)新的位置時(shí),通常會(huì)使用頁面重定向,我們需要將客戶端發(fā)送到這個(gè)新位置或者也可能是由于負(fù)載均衡,或者只是為了簡(jiǎn)單的隨機(jī)。
重定向請(qǐng)求到另一個(gè)頁面的最簡(jiǎn)單的方式是使用 response 對(duì)象的 sendRedirect() 方法。下面是該方法的特征:
public void HttpServletResponse.sendRedirect(String location)
throws IOException
該方法將響應(yīng)和狀態(tài)碼及新的頁面位置發(fā)送回瀏覽器。你也可以通過一起使用 setStatus() 和 setHeader() 方法來達(dá)到同樣的效果:
....
String site = "http://www.newpage.com" ;
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);
....
這個(gè)例子顯示了 servlet 如何將頁面重定向到另一個(gè)位置:
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);
}
}
現(xiàn)在讓我們來編譯述 servlet 并在 web.xml 文件中創(chuàng)建以下條目:
....
<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>
....
現(xiàn)在使用 URL http://localhost:8080/PageRedirect
來調(diào)用這個(gè) servlet。這將使你跳轉(zhuǎn)到給定的 URL http://www.photofuntoos.com
中。
更多建議: