Reenviar petición a otro Servlet

08/Nov/2006 Java , , 4 Comentarios
Programación en Java

No siempre un Servlet estará codificado para atender a una petición. Sino que muchas veces y por muchos motivos tendrá que reenviar la petición para que la siga procesando otro Servlet. En este ejemplo vamos a ver cómo reenviar petición a otro Servlet.

Uno de estos casos claros es cuándo estamos implementando un patrón Controller. Donde ese punto de acceso encaminará las peticiones a diferentes Servlets. Para encaminar la petición necesitaremos de una simple línea de código.

Pero lo primero será codificar el método .doGet() que es el que recibirá la petición y desde el sitio a donde interceptaremos la petición para poder encaminarla hacía otro Servlet.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
 ...
}

Lo siguiente será implementar el encaminamiento mediante una línea de código. En esta línea recuperaremos el manejador de uno de los Servlets de la aplicación web y le reenviaremos los objetos petición, representado por el objeto HttpServletRequest, y respuesta, representado por el objeto HttpServletResponse, para que los maneje.

Para poder reenviar la petición utilizaremos el método forward(request, response) del objeto RequestDispatcher:

El código de nuestro programa Java nos quedaría de la siguiente forma:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
  request.getRequestDispatcher("NombreDelServlet")
    .forward(request, response);
}

Es importante saber cómo se llama el Servlet al que encaminamos la petición. Ya que el nombre de este Servlet será el parámetro que reciba el método .getRequestDispatcher().

Vídeos sobre Java Servlet


4 comentarios en “Reenviar petición a otro Servlet”

Víctor Cuervo

ANASS

MUY BUENO

Víctor Cuervo

diana

Se puede hacer un forward de un servlet 1 a un servlet2 y que luego de procesador el servlet2 retorne un valor al servlet1.Gracias

Víctor Cuervo

Jose Angel

¿se puede hacer forward a un servlet que se encuentra en otro contexto dentro del mismo servidor de aplicaciones? Gracias

Víctor Cuervo

leshowski

muchas gracias, me sirvio esto en mi práctica

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.