c) Servlet Redirecionamento Externo (setHeader)

package br.aiec;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "ResponseHeaderRefresh", urlPatterns = "/responseHeaderRefresh")
public class ResponseHeaderRefreshDemoServlet extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        String urlLocation = "https://upis.br";
        
    
        //Redirecionamento externo
        response.setHeader("Refresh", "5; URL=" + urlLocation);
                
        PrintWriter out = response.getWriter();
        
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Redirecionamento com setHeader </title>");
        out.println("</head>");
        out.println("<body>");
        out.println("Você será automaticamente redirecionado em 5 segundos para o 
endereço " + urlLocation);
        out.println("</body>");
        out.println("</html>");
        
    }
}

Observe que o referido servlet redireciona uma conexão do cliente (redirecionamento externo) utilizando-se o método setHeader conjuntamente com o header “Refresh”. Para estes casos, o status code do HTTP continua sendo 200 (HttpServletResponse.SC_OK).

O redirecionamento externo deve ser utilizado todas as vezes que se deseja acessar um recurso externo que, por algum motivo, não esteja presente no servidor atualmente solicitado. Existe uma outra forma de redirecionamento classificado como interno, demonstrado logo a seguir.

Copyright © 2014 AIEC.