English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Redirección de páginas web Servlet

Cuando el documento se mueve a una nueva ubicación y necesitamos enviar esta nueva ubicación al cliente, necesitamos utilizar la redirección de página. Por supuesto, también puede ser para equilibrio de carga, o simplemente para una selección aleatoria, en estos casos también se puede utilizar la redirección de página.

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

public void HttpServletResponse.sendRedirect(String location)
throws IOException

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

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

Ejemplo en línea

Este ejemplo muestra cómo el Servlet realiza una redirección de página a otra ubicación:

package com.w3codebox.test;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class PageRedirect
 */
@WebServlet("/PageRedirect)
public class PageRedirect extends HttpServlet{
    
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            lanza ServletException, IOException
  {
      // Establecer el tipo de contenido de la respuesta
      response.setContentType("text/html;charset=UTF-8");
      // nueva ubicación de redirección
      String site = new String("http://es.oldtoolbag.com");
      response.setStatus(response.SC_MOVED_TEMPORARILY);
      response.setHeader("Location", site);    
    }
}

Ahora, compilamos el Servlet anterior y creamos la siguiente entrada en el archivo web.xml:

....
 <servlet>
     <servlet-nombre>PageRedirect</servlet-nombre>
     <servlet-clase>PageRedirect</servlet-clase>
 </servlet>
 <servlet-mapeo>
     <servlet-nombre>PageRedirect</servlet-nombre>
     <url-patrón>/TomcatTest/PageRedirect</url-patrón>
 </servlet-mapeo>
....

Ahora, accediendo a la URL http://localhost:8080/PageRedirect para llamar a este Servlet. Esto lo llevará a la URL dada http://es.oldtoolbag.com。