Servlets - Redirecionamento de página

O redirecionamento de página é uma técnica em que o cliente é enviado para um novo local diferente do solicitado. O redirecionamento de página geralmente é usado quando um documento é movido para um novo local ou pode ser devido ao balanceamento de carga.

A maneira mais simples de redirecionar uma solicitação para outra página é usando o método sendRedirect()do objeto de resposta. A seguir está a assinatura deste método -

public void HttpServletResponse.sendRedirect(String location) 
throws IOException

Este método envia de volta a resposta ao navegador junto com o código de status e o novo local da página. Você também pode usar os métodos setStatus () e setHeader () juntos para obter o mesmo -

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

Exemplo

Este exemplo mostra como um servlet executa o redirecionamento de página para outro local -

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

Agora vamos compilar o servlet acima e criar as seguintes entradas em 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>
....

Agora chame esse servlet usando o URL http: // localhost: 8080 / PageRedirect. Isso redirecionaria você para o URL http://www.photofuntoos.com.