RequestDispatcher es una interfaz que viene en el paquete javax.servlet . Usando esta interfaz, obtenemos un objeto en el servlet después de recibir la solicitud. Usando el objeto RequestDispatcher, enviamos una solicitud a otros recursos que incluyen ( servlet, archivo HTML o archivo JSP ). Se puede usar un objeto RequestDispatcher para reenviar una solicitud al recurso o para incluir el recurso en una respuesta. El recurso puede ser dinámico o estático.
¿Cómo crear un objeto de RequestDispatcher?
Hay tres formas de obtener un objeto:
1. RequestDispatcher requestDispatcher=ServletContext.getRequestDispatcher(String path);
Descripción:
- interfaz pública ServletContext . Define un conjunto de métodos que utiliza un servlet para comunicarse con su contenedor de servlet.
- ruta es una string que especifica la ruta de acceso al recurso (servlet, archivo HTML o archivo JSP).
2. RequestDispatcher requestDispatcher=ServletContext.getNamedDispatcher(String name);
Descripción:
- interfaz pública ServletContext . Define un conjunto de métodos que utiliza un servlet para comunicarse con su contenedor de servlet.
- name es una string que especifica el nombre de un servlet para envolver.
3. RequestDispatcher requestDispatcher=request.getRequestDispatcher(“String path”);
Descripción:
- request es el objeto de tipo HttpServletRequest.
- ruta es una string que especifica la ruta de acceso al recurso. Si es relativo, debe ser relativo al servlet actual.
Método y descripción
La clase contiene dos métodos :
1. adelante
Sintaxis:
anular adelante (solicitud de ServletRequest, respuesta de ServletResponse) lanza ServletException, IOException
Descripción:
- Modificador y Tipo:- void
- Este método se utiliza para reenviar una solicitud de un servlet a otro recurso (servlet, archivo JSP o archivo HTML) en el servidor.
- Se llama al método antes de que se haya enviado la respuesta al cliente. Si la respuesta ya se envió, el método arrojará una IllegalStateException.
- La solicitud de parámetro (tipo HttpServletRequest) y la respuesta (tipo HttpServletResponse) son los mismos objetos que se pasaron al método de servicio del servlet de llamada.
- Este método establece el tipo de distribuidor de la solicitud dada en DispatcherType.FORWARD.
Ejemplo:
Java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class GFG extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) { // Perform all the work as per your // application's architecture try { RequestDispatcher requestDispatcher; // path is a string specifying the pathname to // the resource. If it is relative, it must be // relative against the current servlet requestDispatcher=request.getRequestDispatcher("path"); requestDispatcher.forward(request, response); } catch (ServletException servletException) { } catch (IOException ioException) { } catch (IllegalStateException illegalStateException) { } } }
Nota : el código anterior no se ejecutará en IDE en línea, este es un código del lado del servidor.
2. incluir
Sintaxis:
void include (solicitud de ServletRequest, respuesta de ServletResponse) arroja ServletException, IOException
Descripción:
- Modificador y Tipo:- void
- Este método se usa para incluir la respuesta del recurso (para el cual la solicitud pasó el servlet, la página JSP, el archivo HTML) en la respuesta del servlet actual.
- La solicitud de parámetro (tipo HttpServletRequest) y la respuesta (tipo HttpServletResponse) son los mismos objetos que se pasaron al método de servicio del servlet de llamada.
- Este método establece el tipo de distribuidor de la solicitud dada en DispatcherType.INCLUDE.
Ejemplo:
Java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class GFG extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) { // Perform all the work as // per your application's architecture try { RequestDispatcher requestDispatcher; // path is a string specifying the pathname to // the resource. If it is relative, it must be // relative against the current servlet requestDispatcher=request.getRequestDispatcher("path"); requestDispatcher.include(request, response); } catch (ServletException servletException) { } catch (IOException ioException) { } } }
Nota : el código anterior no se ejecutará en IDE en línea, este es un código del lado del servidor.
Campos y Descripción
Escribe |
Nombre del campo |
Descripción |
---|---|---|
string estática | FORWARD_REQUEST_URI | La string contiene el nombre del atributo de solicitud bajo el cual el URI de solicitud original está disponible para el destino de un reenvío. |
string estática | FORWARD_CONTEXT_PATH | La string contiene el nombre del atributo de solicitud bajo el cual la ruta de contexto original está disponible para el destino de un reenvío. |
string estática | FORWARD_PATH_INFO | La string contiene el nombre del atributo de solicitud bajo el cual la información de ruta original está disponible para el destino de un reenvío. |
string estática | FORWARD_SERVLET_PATH | La string contiene el nombre del atributo de solicitud bajo el cual la ruta del servlet original está disponible para el destino de un reenvío. |
string estática | FORWARD_QUERY_STRING | La string contiene el nombre del atributo de solicitud bajo el cual la string de consulta original se pone a disposición del destino de un reenvío. |
string estática | INCLUDE_REQUEST_URI | La string contiene el nombre del atributo de solicitud bajo el cual se almacena el URI de solicitud del destino de inclusión. |
string estática | INCLUDE_CONTEXT_PATH | La string contiene el nombre del atributo de solicitud bajo el cual se almacena la ruta de contexto del destino de un include. |
string estática | INCLUDE_RUTA_INFO | La string contiene el nombre del atributo de solicitud bajo el cual se almacena la información de ruta del destino de un include. |
string estática | INCLUDE_SERVLET_PATH | La string contiene el nombre del atributo de solicitud bajo el cual se almacena la ruta del servlet del destino de un include. |
string estática | INCLUDE_QUERY_STRING | La string contiene el nombre del atributo de solicitud bajo el cual se almacena la string de consulta del destino de un include. |
string estática | ERROR_EXCEPCIÓN | La string contiene el nombre del atributo de solicitud bajo el cual se propaga el objeto de excepción durante un envío de error. |
string estática | ERROR_EXCEPCIÓN_TIPO | La string contiene el nombre del atributo de solicitud bajo el cual se propaga el tipo del objeto de excepción durante un envío de error. |
string estática | MENSAJE DE ERROR | La string contiene el nombre del atributo de solicitud bajo el cual se propaga el mensaje de excepción durante un envío de error. |
string estática | ERROR_REQUEST_URI | La string contiene el nombre del atributo de solicitud bajo el cual se propaga el URI de solicitud cuyo procesamiento provocó el error durante un envío de error. |
string estática | ERROR_SERVLET_NOMBRE | La string contiene el nombre del atributo de solicitud bajo el cual se propaga el nombre del servlet en el que se produjo el error durante un envío de error. |
string estática | ERROR_STATUS_CODE | La string contiene el nombre del atributo de solicitud bajo el cual se propaga el estado de respuesta durante un envío de error. |
Publicación traducida automáticamente
Artículo escrito por sharmaharsh_05 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA