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

Redirecionamento de Página Servlet

Quando o documento se move para um novo local e precisamos enviar essa nova localização ao cliente, precisamos usar a redireção de página. Claro, também pode ser usado para balanceamento de carga, ou apenas para fins aleatórios, essas situações também podem usar a redireção de página.

A maneira mais simples de redirecionar uma solicitação para outra página é usar o método sendRedirect() do objeto response. A seguir está a definição deste método:

public void HttpServletResponse.sendRedirect(String location)
throws IOException

Este método envia a resposta, o código de status e a nova localização da página de volta ao navegador. Você também pode alcançar o mesmo efeito usando os métodos setStatus() e setHeader():

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

Exemplo Online

Este exemplo mostra como o Servlet realiza a redireção de página para outro local:

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)
            lança ServletException, IOException
  {
      // Definir o tipo de conteúdo da resposta
      response.setContentType("text/html;charset=UTF-8");
      // nova localização para redirecionar
      String site = new String("http://pt.oldtoolbag.com");
      response.setStatus(response.SC_MOVED_TEMPORARILY);
      response.setHeader("Location", site);    
    }
}

Agora, vamos compilar o Servlet acima e criar a seguinte entrada no arquivo web.xml:

....
 <servlet>
     <servlet-nome>PageRedirect</servlet-nome>
     <servlet-classe>PageRedirect</servlet-classe>
 </servlet>
 <servlet-mapeamento>
     <servlet-nome>PageRedirect</servlet-nome>
     <url-padrão>/TomcatTest/PageRedirect</url-padrão>
 </servlet-mapeamento>
....

Agora, ao acessar a URL http://localhost:8080/PageRedirect para chamar este Servlet. Isso o levará para a URL fornecida http://pt.oldtoolbag.com。