.RequestDispatcher.forward()
Funciona en el lado del servidor. Cuando se usa forward(), el motor de Servlet pasa la solicitud HTTP del Servlet o JSP actual a otro Servlet, JSP o archivo HTML normal, es decir, su formulario se envía a un.jsp, en un. jsp usa forward() para redirigir a b.jsp. En este momento, toda la información enviada por el formulario se puede obtener en b.jsp y los parámetros se pasan automáticamente.
Sin embargo, forward () no puede redirigir a un archivo jsp con un marco. Puede redirigir a un archivo html con un marco. Al mismo tiempo, forward () no se puede pasar con parámetros al final, como servlet?name=frank. . Si esto no funciona, puede pasar la respuesta en el programa .setAttribute("name",name) para pasar a la página siguiente.
La URL en la barra de direcciones del navegador permanece sin cambios después de la redirección.
Ejemplo: redirección en archivo servlet
CÓDIGO
public void doPost (solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException,IOException
{
respuesta.setContentType("text/html; charset=gb2312");
ServletContext sc = getServletContext();
RequestDispatcher rd = nulo;
rd = sc.getRequestDispatcher("/index.jsp");
rd.forward(solicitud, respuesta);
}
2.respuesta.sendRedirect()
Funciona en el navegador del usuario. sendRedirect() puede pasar parámetros, como servlet?name=frank a la página siguiente. Al mismo tiempo, puede redirigir a un host diferente y aparecerá un duplicado en la barra de direcciones del navegador. La URL de la página dirigida.
sendRedirect() puede redirigir archivos jsp con marcos.
Ejemplo: redirección en archivo servlet
CÓDIGO
public void doPost (solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException,IOException
{
respuesta.setContentType("text/html; charset=gb2312");
respuesta.sendRedirect("/index.jsp");
}