Spring的MVC框架是圍繞一個DispatcherServlet其實就是個Servlet(它繼承自HttpServlet基類)來設計的,
它支持可配置的處理器映射、視圖渲染、本地化、時區與主題渲染、文件上傳等
控制器通常負責準備一個Map模型、填充數據、返回一個合適的視圖名等,同時它也能夠直接將數據
寫到響應流中
Spring的web模塊支持許多web相關的特性:
一、清晰的職責分離 二、強大、直觀的框架和應用bean的配置 三、強大的適配能力、非侵入性和靈活性
四、可複用的性 五、可定製的數據綁定和驗證 六、可定製的處理器映射和視圖解析 七、靈活的模型傳遞
八、可定製的本地化信息、時區和主題解析 九、一個簡單但功能強大的JSP標籤庫 十、新增生命週期
僅綁定到當前HTTP請求或HTTP會話的Bean類型
DispatcherServlet初始化bean
bean的類型 做用
HandleMapping 處理器映射。它會根據某些規則將進入容器的請求映射到具體的處理器
以及一系列處理器攔截器上。
HandlerAdapter 處理器適配器。拿到請求所對應的處理器後,適配器將負責去調用該處
理器,這使得DispatcherServlet無需關心具體的調用細節
HandlerExceptionResolver 處理器異常解析器。它負責將捕獲的異常映射到不一樣的視圖上去,此處
還支持更復雜的異常處理代碼
ViewResolver 視圖解析器。它負責將一個表明邏輯視圖名的字符串映射到實際的視圖
類型View上
LocaleResolver&
LocaleContextResolver 地區解析器和地區上下文解析器。它們負責解析客戶端所在的地區信息
甚至時區信息,爲國際化的視圖定製提供了支持
ThemeResovler 主題解析。它負責解析你web應用中可用的主題,好比提供一些個性化定
制的佈局等
MultipartResolver 解析multi-part的傳輸請求,好比支持經過HTML表單進行的文件上傳等
FlashMapManager FlashMap管理器。它可以存儲並取回兩次請求之間的FlashMap對象。後
者可用於在請求之間傳遞數據,一般是在請求重定向的情境下使用
DispatcherServlet維護了一個列表,其中保存了其所依賴的全部bean的默認實現。這個列表保存在包
org.springframework.web.servlet下的DispatcherServlet.properties文件中。若是在web應用上下文
WebApplicationContext中配置了某個特殊bean(如InternalResourceViewResolver)後,那麼框架就
不會再使用bean ViewResolver的默認實現web