Servlet:
Por supuesto, en los servlets, los saltos generalmente ocurren en doGet, doPost y otros métodos.
1) método de redireccionamiento
respuesta.sendRedirect("/a.jsp");
La ruta a la página es una ruta relativa. sendRedirect puede saltar a cualquier página, no necesariamente limitada a esta aplicación web, como por ejemplo:
respuesta.sendRedirect("//www.VeVB.COm");
La barra de direcciones del navegador cambia después del salto.
Si desea pasar el valor de esta manera, solo puede traer el parámetro en la URL o colocarlo en la sesión. No puede usar request.setAttribute para pasarlo.
2) método directo
Despachador de RequestDispatcher = request.getRequestDispatcher("/a.jsp");
despachador .forward(solicitud, respuesta);
La ruta a la página es una ruta relativa. El método de avance solo puede saltar a páginas de esta aplicación web.
La barra de direcciones del navegador no cambiará después del salto.
Usando este método para saltar, puede usar tres métodos para pasar valores: parámetro, sesión, request.setAttribute en la URL
JSP:
1) respuesta.sendRedirect();
El mismo método que la respuesta del servlet.sendRedirect().
Out.flush() no está permitido antes de esta declaración. Si lo hay, se producirá una excepción:
java.lang.IllegalStateException: no se puede enviarRedirect() después de que los datos se hayan confirmado en el cliente.
en com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
...
La barra de direcciones del navegador cambia después del salto
Si desea saltar a un host diferente, después del salto, las declaraciones que siguen a esta declaración continuarán ejecutándose, como si se hubiera abierto un nuevo hilo, pero la operación de respuesta no tiene sentido;
Si desea saltar al mismo host, el salto no se producirá hasta que se ejecuten las declaraciones que siguen a esta declaración;
2) respuesta.setHeader("Ubicación","");
Out.flush() no está permitido antes de esta declaración. Si lo hay, la página no saltará.
La barra de direcciones del navegador cambia después del salto
El salto no se producirá hasta que se ejecuten las declaraciones que siguen a esta declaración.