Servlet - 页面重定向

  • 简述

    页面重定向是一种将客户端发送到请求以外的新位置的技术。当文档移动到新位置或可能是因为负载平衡时,通常会使用页面重定向。
    将请求重定向到另一个页面的最简单方法是使用方法 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.photofuntoos.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.photofuntoos.com。