.RequestDispatcher.forward()
Funciona no lado do servidor. Ao usar forward(), o mecanismo Servlet passa a solicitação HTTP do Servlet ou JSP atual para outro Servlet, JSP ou arquivo HTML comum, ou seja, seu formulário é submetido a um.jsp, em um arquivo .jsp. .jsp usa forward() para redirecionar para b.jsp. Neste momento, todas as informações enviadas pelo formulário podem ser obtidas em b.jsp, e os parâmetros são passados automaticamente.
No entanto, forward () não pode redirecionar para um arquivo jsp com um quadro. Ele pode redirecionar para um arquivo html com um quadro. Ao mesmo tempo, forward () não pode ser passado com parâmetros no final, como servlet?name=frank. . Se isso não funcionar, você pode passar a resposta no programa.
O URL na barra de endereço do navegador permanece inalterado após o redirecionamento.
Exemplo: redirecionamento em arquivo servlet
CÓDIGO
public void doPost(solicitação HttpServletRequest, resposta HttpServletResponse)
lança ServletException,IOException
{
resposta.setContentType("text/html; charset=gb2312");
ServletContext sc = getServletContext();
RequestDispatcher rd = null;
rd = sc.getRequestDispatcher("/index.jsp");
rd.forward(solicitação,resposta);
}
2.response.sendRedirect()
Funciona no navegador do usuário. sendRedirect() pode passar parâmetros, como servlet?name=frank para a próxima página, ao mesmo tempo, pode redirecionar para um host diferente e uma duplicata aparecerá na barra de endereço do navegador. O URL da página direcionada.
sendRedirect() pode redirecionar arquivos jsp com frames.
Exemplo: redirecionamento em arquivo servlet
CÓDIGO
public void doPost(solicitação HttpServletRequest, resposta HttpServletResponse)
lança ServletException,IOException
{
resposta.setContentType("text/html; charset=gb2312");
resposta.sendRedirect("/index.jsp");
}