亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 spring mvc 中使用多個調度程序 servlet 的優點和缺點

在 spring mvc 中使用多個調度程序 servlet 的優點和缺點

墨色風雨 2023-09-06 15:42:58
我剛剛發現在一個 Spring 應用程序中可以有多個。 dispatcher-servlets我想知道采用這種方法是否有任何優勢,而不是傳統的彈簧方法對所有傳入請求進行單一處理。 dispatcher-servlet
查看完整描述

1 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

來自醫生

Web 應用程序可以定義任意數量的 DispatcherServlet。每個 servlet 將在自己的命名空間中運行,加載自己的應用程序上下文以及映射、處理程序等。只有由 ContextLoaderListener 加載的根應用程序上下文(如果有)才會被共享。

多個調度程序 servlet 的優點或者為什么我們需要多個調度程序 servlet?

簡單的答案是以多種形式擁有DispatcherServlet 的功能

調度程序 servlet 功能


  • Dispatcher Servlet 使用HandlerMapping實現來控制將請求路由到處理程序對象。默認為BeanNameUrlHandlerMapping和RequestMappingHandlerMapping。

  • 它的視圖解析策略可以通過ViewResolver實現來指定,將符號視圖名稱解析為 View 對象。默認為InternalResourceViewResolver。

  • 它的異常解決策略可以通過HandlerExceptionResolver指定,例如將某些異常映射到錯誤頁面。

  • 它解決多部分請求的策略由MultipartResolver實現決定。

  • 它的區域設置解析策略由LocaleResolver確定。

  • 它的主題解析策略由ThemeResolver決定。



我將嘗試解釋 提供的一些功能DispatcherServlet


聲明多個調度程序 servlet
考慮我們有兩個調度程序 servlet(DS),其中 DS1、DS2 配置有不同的 url 模式 (?**.simple, **.beanName),并且它們使用不同的調度程序 servlet 配置,如下所示。

DispatcherServlet? ? ?- simpleUrlHandlerDispatcherServlet

contextConfigLocation - /WEB-INF/simpleUrlHandlerMapping.xml

<url-pattern>*.simple</url-pattern>


DispatcherServlet? ? ?- beanNameUrlHandlerDispatcherServlet

contextConfigLocation - /WEB-INF/beanNameUrlHandlerMapping.xml

<url-pattern>*.beanName</url-pattern>

優點 1:我們可以針對不同的 URL 集使用不同的 HandlerMapping


DS1 bean 名稱 url 處理程序映射配置


<bean name="/hello.beanName" class="com.pvn.mvc.HelloController" />

<bean name="/hi.beanName" class="com.pvn.mvc.HiController" />

DS2 簡單 url 處理程序映射配置


<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>

優點 2:我們可以為不同的 URL 集使用不同的視圖解析器。


DS1 的InternalResourceViewResolver

僅處理prefix + returned String + suffix. DS2 的

TilesViewResolver

其實現由 apachetiles 提供,這是一個基于布局/骨架的插件高級功能,如下所示。

https://img1.sycdn.imooc.com/64f82dc300011a6e05330307.jpg

或者,如果我們對不同的 URL
匿名用戶集使用具有不同布局的 TilesViewResolver -
登錄用戶的不同布局 - 不同的布局

優點 3:我們可以為不同的 URL 集使用不同的主題解析器。
這些解析器持續監視 cookie/會話來解析主題并提供合格的樣式表/主題(如下圖所示)。下面給出了CookieThemeResolver的結果的示例。
注意:這不是關于主題配置,而是關于主題解析器配置。

https://img2.sycdn.imooc.com/64f82dd00001fbd206560416.jpg

優點 4:我們可以為不同的 URL 集使用不同的區域設置解析器。
這些解析器持續監視 cookie/session/accept-header 以解析區域設置并加載合格的應用程序消息(如下圖所示)。下面給出了CookieLocaleResolver的結果的示例。
注意:這不是關于區域設置配置,而是關于區域設置解析器配置。

https://img1.sycdn.imooc.com/64f82ddd0001152206530289.jpg

查看完整回答
反對 回復 2023-09-06
  • 1 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號