mvc form example ejemplo docs spring servlets

spring - form - ¿Contexto de múltiples aplicaciones, múltiples servlets de dispatcher?



spring mvc ejemplo (1)

Hasta ahora solía pensar que una aplicación web solo puede tener un servlet de despachador que definimos en web.xml ¿Tengo razón al pensar que sí? ¿Puede tener varios servlets de despachador en una sola aplicación web? ¿Cómo? ¿En qué situación podríamos necesitar esto? Además, ¿puede haber un solo contexto de aplicación en toda la aplicación web? ¿Cómo podemos definir múltiples contextos de aplicación? ¿Puede existir un servlet de despachador en una aplicación sin resorte?


¿Puede tener varios servlets de despachador en una sola aplicación web?

Por supuesto, citando la documentación oficial (¡la negrita también está ahí!)

Una aplicación web puede definir cualquier número de DispatcherServlets . Cada servlet operará en su propio espacio de nombres, cargando su propio contexto de aplicación con asignaciones, manejadores, etc. Solo se compartirá el contexto de la aplicación raíz cargado por ContextLoaderListener, si lo hubiera.

¿Cómo?

Simplemente declare varios servlets con nombres diferentes pero utilizando la clase org.springframework.web.servlet.DispatcherServlet . También asegúrese de que su yourServletName-servlet.xml esté disponible.

¿En qué situación podríamos necesitar esto?

DispatcherServlet es muy flexible. No solo Spring MVC lo usa, sino también Spring WS, Spring hessian para hessian , etc.

Además, ¿puede haber un solo contexto de aplicación en toda la aplicación web?

Ya respondido, también en la documentación citada: un contexto de aplicación por DispatcherServlet + un contexto de aplicación web principal.

¿Cómo podemos definir múltiples contextos de aplicación?

Vea más arriba, simplemente cree múltiples DispatcherServlet s.

¿Puede existir un servlet de despachador en una aplicación sin resorte?

DispatcherServlet es un contexto Spring (aplicación Spring) en sí mismo, por lo tanto: no. Por un lado, DispatcherServlet se puede declarar en una aplicación que no tiene contexto de aplicación principal (principal), por lo tanto: sí.