¿Cuál es la función del método sendRedirect del objeto de respuesta? ¿En qué situaciones se suele utilizar?
La función de respuesta.sendRedirect es la redirección de direcciones (salto de página)
1.response.sendredirect(url);
No se pueden procesar páginas nuevas. El contexto de la página; (solicitud, respuesta,...) objeto de la página anterior, por lo que si usa request.getparameter(ff) para intentar llamar a los parámetros del objeto de solicitud de la página original, el resultado naturalmente será nulo
2.getservletcontext() .getrequestdispatcher(url).forward(request, Response);
La función de reenvío ha pasado los objetos de solicitud y respuesta de la página original a la nueva página, por lo que la anterior. y las páginas nuevas tienen los mismos objetos de solicitud y respuesta. request.getparameter(ff) puede obtener el valor correspondiente
3. La ruta de servletcontext.getrequestdispatcher debe ser una ruta absoluta relativa al contexto. servletrequest.getrequestdispatcher puede ser relativa o absoluta.
Servidor 4 formas de redirigir al cliente:
1. getrequestdispatcher() de servletcontext
2. getnameddispatcher() de servletcontext
3. getrequestdispatcher() de servletrequest
4. Sendredirect() de servletresponse realiza la redirección.
1.2.3 =gt; forward() 4. sendredirect()
Utiliza el método forward, porque son más eficientes. Solo cuando no se pueda utilizar el método de reenvío, utilice el método sendredirect() de servletresponse.
Comparación entre los métodos lt; jsp: fordwardgt; y sendredirect
Aunque ambos métodos lt; jsp: fordwardgt; y sendredirect pueden redirigir la página web navegada por el navegador a otras páginas web, pero los dos no son lo mismo en principio.
a.lt; jsp: fordwardgt;: La acción es utilizar el servidor para enviar datos al búfer antes de enviar la página web anterior al cliente, cancelar la salida de datos y luego enviarla. otra página. La información de una página web logra el efecto de redirigir el navegador. Ventajas: las variables del objeto de solicitud se pueden compartir entre dos páginas web.
b. sendredirect: La acción es a través de ")
Más intuitivo: respuesta.sendredirect(url); Redirige la respuesta del servidor. Cuando el servidor responde, el cliente El ciclo de vida de la solicitud final ha finalizado. En este momento, el resultado obtenido mediante request.getparameter() o request.getattribute() solo puede ser nulo getservletcontext().getrequestdispatcher(url).forward(request, Response); que la solicitud del cliente (solicitud) se transmite antes de que el servidor responda, es decir, no hay respuesta y siempre se puede transmitir - redirección: alexlovejava El primero es un salto al cliente y el segundo está en el lado del servidor. , el último puede pasar el objeto de solicitud al saltar, el primero solo puede pasar parámetros a través de ?, y el segundo es forword (). Las rutas URL de los dos son diferentes cuando se transfieren y las rutas se muestran en la dirección de IE. bar también son diferentes. Lo mismo,