大部分的Java應用都是基于Web的,作為輕量級的JavaEE框架,Spring也提供了自己的Web層的展現技術,一個優秀的MVC框架—— Spring MVC。與其它的Web框架相比Spring的MVC框架在可擴展性和靈活性上有很大提高。但是相對要
復雜很多。Spring的MVC框架主要由DispatcherServlet、處理器映射、處理器、視圖解析器、視圖組成。以DI(筆者更喜歡DI這個概念,覺得IoC表達沒有DI清晰)為核心的Spring MVC也有的技術人員認為設計太復雜,有過度設計的嫌疑。
不過它確實提供了一個接近于完美的Web框架,或許這也正是Rod Johnson先生的初衷吧。下圖是Spring MVC的原理框圖:
整個處理過程從一個HTTP請求開始:
1)DispatcherServlet接收到請求后,根據對應配置文件中配置的處理器映射,找到對應的處理器映射項(HandlerMapping),根據配置的映射規則,找到對應的處理器(Handler)。
2)調用相應處理器中的處理方法,處理該請求,處理器處理結束后會將一個ModelAndView類型的數據傳給DispatcherServlet,這其中包含了處理結果的視圖和視圖中要使用的數據。
3)DispatcherServlet根據得到的ModelAndView中的視圖對象,找到一個合適的ViewResolver(視圖解析器),根據視圖解析器的配置,DispatcherServlet將視圖要顯示的數據傳給對應的視圖,最后給瀏覽器構造一個HTTP響應。
DispatcherServlet是整個Spring MVC的核心。它負責接收HTTP請求組織協調Spring MVC的各個組成部分。其主要工作有以下三項:
1)截獲符合特定格式的URL請求。
2)初始化DispatcherServlet上下文對應的WebApplicationContext,并將其與業務層、持久化層的
WebApplicationContext建立關聯。
3)初始化Spring MVC的各個組成組件,并裝配到DispatcherServlet中。
復雜很多。Spring的MVC框架主要由DispatcherServlet、處理器映射、處理器、視圖解析器、視圖組成。以DI(筆者更喜歡DI這個概念,覺得IoC表達沒有DI清晰)為核心的Spring MVC也有的技術人員認為設計太復雜,有過度設計的嫌疑。
不過它確實提供了一個接近于完美的Web框架,或許這也正是Rod Johnson先生的初衷吧。下圖是Spring MVC的原理框圖:

整個處理過程從一個HTTP請求開始:
1)DispatcherServlet接收到請求后,根據對應配置文件中配置的處理器映射,找到對應的處理器映射項(HandlerMapping),根據配置的映射規則,找到對應的處理器(Handler)。
2)調用相應處理器中的處理方法,處理該請求,處理器處理結束后會將一個ModelAndView類型的數據傳給DispatcherServlet,這其中包含了處理結果的視圖和視圖中要使用的數據。
3)DispatcherServlet根據得到的ModelAndView中的視圖對象,找到一個合適的ViewResolver(視圖解析器),根據視圖解析器的配置,DispatcherServlet將視圖要顯示的數據傳給對應的視圖,最后給瀏覽器構造一個HTTP響應。
DispatcherServlet是整個Spring MVC的核心。它負責接收HTTP請求組織協調Spring MVC的各個組成部分。其主要工作有以下三項:
1)截獲符合特定格式的URL請求。
2)初始化DispatcherServlet上下文對應的WebApplicationContext,并將其與業務層、持久化層的
WebApplicationContext建立關聯。
3)初始化Spring MVC的各個組成組件,并裝配到DispatcherServlet中。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
