Servlet Despachador (Spring DispatcherServlet)

By | 2 septiembre 2014

Spring se trata de un Framework MVC, para realizar la tarea de control de peticiones hace uso de un HttpServlet de implementación propia denominado DispatcherServlet.

Podriamos decir, a groso modo, que este DispatcherServlet es la clase principal de Spring MVC,

Este Dispatcher encapsula y nos abstrae de muchísimas funcionalidades estandarizadas en Spring que configuramos mediante la declaración de beans específicos o el uso de anotaciones.

Un ejemplo claro puede ser @RequestMapping, la cual notifica al DispatcherServlet que esa clase y método en particular son los encargados de resolver una petición concreta de un cliente.

Como todo Servlet, debe ser declarado en el web.xml de nuestra aplicación.

<servlet>
    <servlet-name>pjcom</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

Lo normal es utilizar solo un DispatcherServlet en cada aplicación de Spring, pero esto no es de obligado cumplimiento, puesto que podemos declarar cuantos queramos.

Para uno, o para cualquier conjunto de ServletDispatchers se tiene que especificar cual es su ámbito de actuación.

 <servlet-mapping>
     <servlet-name>pjcom</servlet-name>
     <url-pattern>/</url-pattern>
 </servlet-mapping>

Con estos dos simples pasos ya tendremos operativo nuestro DispatcherServlet, pero ahora nos queda lo mas importante, configurarlo.

Cada DispatcherServlet opera en su propio namespace, y por tanto tiene asignado su propio contexto, que puede ser visto solo por el ApplicationContext.

Si no se especifica en el registro del DispatcherServlet una ruta alternativa al recurso, por defecto Spring busca en el classpath de la aplicación un archivo con el nombre <servlet-name>-servlet.xml para configurar el DispatcherServlet, aunque podemos cambiar este comportamiento mediante el parámetro contextConfigLocation.

<servlet>
    <servlet-name>pjcom</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/pjcom-dispatcher.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
Comparte esta entrada enShare on LinkedIn0Tweet about this on Twitter0Share on Facebook0Share on Google+0

4 thoughts on “Servlet Despachador (Spring DispatcherServlet)

  1. elbrick

    Realmente me sorprende la habilidad de explicat estos temas de forma tan sencilla. Felicitaćiones, espero q completes el manual

  2. Daniel Post author

    Muchas gracias Elbrick, si, yo también espero ir completando el manual, que ademas ya van quedando las cuestiones realmente interesantes. ;)

  3. Javier

    Yo también espero que termines el manual, ya que estoy aprendiendo Spring, al menos las nociones básicas por ahora, gracias a ti.

  4. Jorge

    excelente manual de spring, es algo que no se encuentra asi en español.
    :D

Deja un comentario

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