¿Cómo configurar Dispatcher Servlet en un archivo web.xml?

DispatcherServletactúa como controlador frontal para aplicaciones web basadas en Spring. Entonces, ¿qué es Front Controller? Así que es bastante simple. Cualquier solicitud llegará a nuestro sitio web, el controlador frontal se parará al frente y aceptará todas las requests y una vez que el controlador frontal acepte esa solicitud, este es el trabajo del controlador frontal que tomará una decisión que quién es el controlador correcto para manejar esa solicitud. Por ejemplo, consulte la imagen de abajo. Supongamos que tenemos un sitio web llamado student.com y el cliente realiza una solicitud para guardar los datos de los estudiantes presionando la siguiente URL student.com/save, y primero llega al controlador frontal y una vez que el controlador frontal acepta esa solicitud, va para asignar a Controller_1 ya que este controlador maneja la solicitud para la operación /save. 

Dispatcher Servlet

 

Entonces, ¿ahora podría estar pensando en cómo crear un controlador frontal en una aplicación Spring MVC? Pero la buena noticia es que Spring Framework Developer ya creó el controlador frontal y el nombre de ese controlador en particular es DispatcherServlet. Puede usar ese controlador frontal en su proyecto Spring MVC. Realmente no es necesario que cree un controlador frontal, pero puede reutilizar ese controlador frontal creado por Spring Framework Developer y lo llamaron DispatcherServlet. Podemos decir

DispatcherServlet maneja un HttpRequest entrante , delega la solicitud y procesa esa solicitud de acuerdo con las interfaces de HandlerAdapter configuradas que se han implementado dentro de la aplicación Spring junto con las anotaciones que lo acompañan que especifican los controladores, los puntos finales del controlador y los objetos de respuesta.

Aquí vamos a ver cómo podemos configurar Dispatcher Servlet en el archivo web.xml. 

En Spring, el archivo /WEB-INF/web.xml es el descriptor de implementación de aplicaciones web de la aplicación. Este archivo es un documento XML que define todo lo que un servidor necesita saber sobre su aplicación (excepto la ruta de contexto, que asigna el Implementador y el Administrador de la aplicación cuando se implementa la aplicación), los servlets y otros componentes como filtros o escuchas. parámetros de inicialización, restricciones de seguridad gestionadas por contenedores, recursos, páginas de bienvenida, etc. 

Sugerencia: consulte la imagen a continuación para saber dónde se encuentra el archivo web.xml cuando se puede obtener cómo crear un proyecto web dinámico en Spring Tool Suite.

web.xml File

 

Paso 1: configurar el servlet de despachador en el archivo web.xml

Vaya al archivo src > main > webapp > WEB-INF > web.xml y aquí tenemos que configurar nuestro controlador frontal dentro de una etiqueta <servlet>…</servlet> algo como esto. 

<servlet>

    <!-- Provide a Servlet Name -->
    <servlet-name>frontcontroller-dispatcher</servlet-name>
    
    <!-- Provide a fully qualified path to the DispatcherServlet class -->
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    
</servlet>

Ahora digámosle a este servlet, hey servlet, tienes que manejar todas las requests que llegan a nuestro sitio web llamado gfg.com (para este ejemplo). Entonces, la forma en que le diremos al servlet anterior es que podemos escribir algo como esto

<servlet-mapping>

    <!-- Provide a Servlet Name that you want to map -->
    <servlet-name>frontcontroller-dispatcher</servlet-name>
    
    <!-- Provide a url pattern -->
    <url-pattern>/gfg.com/*</url-pattern>
    
</servlet-mapping>

Entonces, esto significa que el servlet «frontcontroller-dispatcher» manejará todas las requests a partir de gfg.com/anything, que puede ser gfg.com/save o gfg.com/get, cualquier cosa. Pero debe comenzar con gfg.com. Así que hemos terminado con la configuración de un Dispatcher Servlet. Y el Dispatcher Servlet se inicializará una vez que implementemos la aplicación web dinámica creada dentro del servidor tomcat. Entonces, antes de implementarlo, agreguemos la siguiente línea dentro del archivo web.xml 

<load-on-startup>1</load-on-startup>

Y el código anterior se asegura de que cada vez que su servidor se inicie, DispatcherServlet se inicializará. Y si no está escribiendo esta línea de código, cada vez que llegue la primera solicitud a su servidor a partir de /gfg.com en ese momento, solo se inicializará DispatcherServlet y no lo queremos. Queremos que DispatcherServlet se inicialice durante el tiempo de inicio del servidor. Por eso hemos escrito esta línea de código.

Archivo: web.xml

XML

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                            http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
 
<display-name>myfirst-mvc-project</display-name>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
</welcome-file-list>
 
<servlet>
    <!-- Provide a Servlet Name -->
    <servlet-name>frontcontroller-dispatcher</servlet-name>
    <!-- Provide a fully qualified path to the DispatcherServlet class -->
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
 
<servlet-mapping>
    <!-- Provide a Servlet Name that you want to map -->
    <servlet-name>frontcontroller-dispatcher</servlet-name>
    <!-- Provide a url pattern -->
    <url-pattern>/gfg.com/*</url-pattern>
</servlet-mapping>
 
</web-app>

Paso 2: Prueba de nuestra aplicación

Entonces, ¿ahora queremos ver si nuestro Spring Dispatcher Servlet se ha inicializado con éxito o no? Y para verificarlo, vaya a src> main> webapp> WEB-INF y cree un archivo XML. En realidad, este es un archivo de configuración de Spring como el archivo beans.xml. Y el nombre del archivo debe estar en este formato.

YourServletName-servlet.xml  

Por ejemplo, Este proyecto, el nombre del archivo debe ser 

frontcontroller-dispatcher-servlet.xml

Entonces, puede crear un archivo de configuración de Spring o simplemente puede crear un archivo XML simple y agregar las siguientes líneas de código dentro de ese archivo. 

Archivo: frontcontroller-despachador-servlet.xml 

XML

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">
 
</beans>

Ahora,

Paso 3: Ejecute la aplicación

Para ejecutar la aplicación, consulte la siguiente imagen.

 

Ahora en la consola, puede ver que nuestro DispatcherServlet se ha inicializado con éxito y también se completó la inicialización sin excepciones ni errores.

 

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout 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 *