isaquebressy

November 4, 2015

[Aprendendo Java EE] Redirects

Após receber e tratar a requisição, a servlet pode redirecionar a mesma para um outro endereço, dando a possibilidade de separar a camada de visualização das regras de negócio. Para tal, o redirecionamento pode ser feito de duas maneiras, no cliente ou no servidor.

O redirecionamento no cliente é feito usando o método sendRedirect do HttpServletResponse, passando um endereço.

resp.sendRedirect("pagina.html");

Ao enviar o redirecionamento, o servidor retorna o código 302 para o cliente, informando que o recurso foi encontrado e o cliente faz uma nova requisição para o endereço “/pagina.html”.

Já o redirecionamento no servidor é feito com o uso da classe RequestDispatcher (javax.servlet) que pego através da requisição utilizando o método getRequestDispatcher do HttpServletRequest passando como parâmetro a String contendo o caminho do recurso para onde o servidor redirecionará. Após isto, deve-se utilizar o método forward do RequestDispatcher para redirecionar.

RequestDispatcher dispatcher = req.getRequestDispatcher("/caminho/para/o/recurso");
dispatcher.forward(req,resp);

O redirecionamento no servidor é invisível ao cliente, parecendo para este que permaneceu na mesma página.


Category: java learning

Tags: java language programming


# Back