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.