Servlet – método sendRedirect() con ejemplo

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.

índice.html

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *