Los servlets son los programas Java que se ejecutan en el lado del servidor y generan respuestas dinámicas a la solicitud del cliente. Servlet acepta la solicitud del navegador, la procesa y genera la respuesta al navegador. Mientras procesamos la solicitud, digamos que si necesitamos llamar a otro servlet desde un servidor diferente, debemos redirigir la respuesta a ese recurso. Para lograr esto, los servlets de Java proporcionan el método sendRedirect() en la interfaz HttpServletResponse en el paquete javax.servlet.http . Para entender mejor, veamos algunos ejemplos en tiempo real.
Ejemplo 1: Hoy en día, hay tantos sitios de compras en línea, donde podemos comprar productos. Una vez que seleccionemos el producto, estemos listos para comprar y hagamos clic en pagar, el navegador redirigirá a la respectiva página de pago en línea. Aquí, la respuesta del sitio web de compras lo redirige a la página de pago y se puede ver una nueva URL en el navegador.
Ejemplo 2: en algunas aplicaciones de educación en línea, si queremos incluir una operación de búsqueda de Google o incluir un enlace a otro sitio web para obtener más información sobre el tema, debemos redirigir la respuesta a la URL específica.
Interfaz HttpServletResponse
HttpServletResponse amplía la interfaz ServletResponse para proporcionar una funcionalidad específica para las requests y respuestas HTTP. Proporciona métodos para acceder a encabezados HTTP y cookies.
interfaz pública HttpServletResponse extiende ServletResponse
método sendRedirect()
El método sendRedirect() redirige la respuesta a otro recurso, dentro o fuera del servidor. Hace que el cliente/navegador cree una nueva solicitud para acceder al recurso. Envía una respuesta de redireccionamiento temporal al cliente utilizando la URL de ubicación de redireccionamiento especificada.
Sintaxis:
void sendRedirect(java.lang.String ubicación) lanza java.io.IOException
- sendRedirect() acepta la URL respectiva a la que se redirigirá la solicitud.
- Puede redirigir la solicitud a otro recurso como Servlet, página HTML o página JSP que están dentro o fuera del servidor.
- Funciona en el objeto de respuesta HTTP y siempre envía una nueva solicitud para el objeto.
- Una nueva URL que se está redirigiendo se puede ver en el navegador.
Ejemplo:
Como discutimos anteriormente, crearemos un servlet simple que redirigirá la página a otro sitio web.
índice.html
HTML
<!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Home</title> </head> <body> <form action="redirect" method="get"> <h2>sendRedirect() method in Java Servlets</h2> <p> sendRedirect() method, redirects the client request from the one servlet to another servlet. <br> It creates a new request from the client browser for the resource. </p> For More information <input type="submit" value="Click Here"> </form> </body> </html>
Tenemos un formulario con action =”redirect” method = “get”, por lo que Index.html mapea el servlet que tiene la URL ‘/redirect’ y ejecuta el método ‘doGet’ en él.
ServletRedirect.java
Java
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/redirect") public class ServletRedirect extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.sendRedirect("https://www.geeksforgeeks.org/url-rewriting-using-java-servlet/"); } }
Necesitamos importar todos los paquetes requeridos desde javax.servlet. En lugar de mapear la página con servlet en web.xml, la estamos especificando usando la anotación – @WebServlet(“/redirect”). Cuando se ejecuta el método ‘doGet’, la respuesta se redirigirá a la URL especificada.
Producción:
Ejecute Index.html en el servidor, se mostrará la siguiente página.
Al hacer clic para obtener más información, especificamos redirigir la respuesta a esa URL en particular.
De esta forma, podemos usar el método sendRedirect() en Servlets.
Publicación traducida automáticamente
Artículo escrito por yaminitalisetty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA