Servlets: redirección de página

La redirección de página es una técnica en la que se envía al cliente a una nueva ubicación distinta a la solicitada. La redirección de página se usa generalmente cuando un documento se mueve a una nueva ubicación o puede deberse al equilibrio de carga.

La forma más sencilla de redirigir una solicitud a otra página es mediante el método sendRedirect()del objeto de respuesta. A continuación se muestra la firma de este método:

public void HttpServletResponse.sendRedirect(String location) 
throws IOException

Este método envía la respuesta al navegador junto con el código de estado y la ubicación de la nueva página. También puede usar los métodos setStatus () y setHeader () juntos para lograr lo mismo:

.... 
String site = "http://www.newpage.com" ; 
response.setStatus(response.SC_MOVED_TEMPORARILY); 
response.setHeader("Location", site);  
....

Ejemplo

Este ejemplo muestra cómo un servlet realiza la redirección de página a otra ubicación:

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);    
   }
}

Ahora compilemos el servlet anterior y creemos las siguientes entradas en 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>
....

Ahora llame a este servlet usando la URL http: // localhost: 8080 / PageRedirect. Esto lo redireccionará a la URL http://www.photofuntoos.com.