What is a situation we might need this in ?
OR
Advantages of multiple dispatcher servlets OR
Why we need multiple dispatcher servlets?
Simple answer is to have DispatcherServlet's functionality in several forms
Dispatcher servlet functionality
I will try to explain some of the functionalities provided by
DispatcherServlet
Declaring Multiple dispatcher servlets
Consider we have two dispatcher servlets(DS) where DS1, DS2 are configured with different url patterns(**.simple, **.beanName
) and they uses different dispatcher servlet configuration provided as given below.
DispatcherServlet - simpleUrlHandlerDispatcherServlet
contextConfigLocation - /WEB-INF/simpleUrlHandlerMapping.xml
<url-pattern>*.simple</url-pattern>
DispatcherServlet - beanNameUrlHandlerDispatcherServlet
contextConfigLocation - /WEB-INF/beanNameUrlHandlerMapping.xml
<url-pattern>*.beanName</url-pattern>
Advantage 1: We can have different HandlerMapping for different set of URL
DS1 bean name url handler mapping configuration
<bean name="/hello.beanName" class="com.pvn.mvc.HelloController" />
<bean name="/hi.beanName" class="com.pvn.mvc.HiController" />
DS2 simple url handler mapping configuration
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.simple">simpleHello</prop>
<prop key="/hi.simple">simpleHi</prop>
</props>
</property>
</bean>
Advantage 2: We can have different view resolver for different set of URL's.
InternalResourceViewResolver for DS1
where it deals with only prefix + returned String + suffix
.
TilesViewResolver for DS2
its implementation provided by apache tiles which is a layout/skeleton based plugin high level functionality as given below.
Or if we use TilesViewResolver with different layout for different set of URL's
anonymous user - different layout
logged in user - different layout
Advantage 3: We can have different theme resolver for different set of URL's.
These resolver continuously monitors cookie/session to resolve theme and serves stylesheet/theme qualified (as given in below image). Below given just an example for outcome of CookieThemeResolver.
Note: This is not about theme configuration but about theme resolver configuration.

Advantage 4: We can have different locale resolver for different set of URL's.
These resolver continuously monitors cookie/session/accept-header to resolve locale and loads application message qualified(as given in below image). Below given just an example for outcome of CookieLocaleResolver.
Note: This is not about locale configuration but about locale resolver configuration.
