1. 程式人生 > >springMVC控制器,處理器,映射器,適配器

springMVC控制器,處理器,映射器,適配器

mage 行處理 load servle 工作 http 圖解 size ini

前端控制器DispatcherServlet

<!--定義spring mvc 的前端控制器Servlet -->
<servlet>
<!--Servlet的名稱-->
<servlet-name>SpringMVC</servlet-name>
<!--Servlet對應的java類-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--當前Servlet的參數信息-->

<init-param>
<!--contextConfigLocation是參數名稱,該參數的值包含SpringMVC的配置文件路徑-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<!--在web應用啟動時立即加載Servlet-->
<load-on-startup>1</load-on-startup>

</servlet>


<!--讓pringMVC的前端控制器攔截所有的請求url(不包括jsp-->
<!--Servlet映射聲明-->
<!--/表示攔截所有servlet請求-->
<!--/*表示攔截所有servlet請求,jsp文件-->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>



1)DispatcherServlet接收到請求後,根據對應配置文件中配置的處理器映射,找到對應的處理器映射項(HandlerMapping),根據配置的映射規則,找到對應的處理器(Handler)。

2)調用相應處理器中的處理方法,處理該請求,處理器處理結束後會將一個ModelAndView類型的數據傳給DispatcherServlet,這其中包含了處理結果的視圖和視圖中要使用的數據。
3)DispatcherServlet根據得到的ModelAndView中的視圖對象,找到一個合適的ViewResolver(視圖解析器),根據視圖解析器的配置,DispatcherServlet將視圖要顯示的數據傳給對應的視圖,最後給瀏覽器構造一個HTTP響應

1.DisPatcherServlet 前端控制器
核心。用戶在瀏覽器輸入url,發起請求,首先會到達DisPatcherServlet,由它來調用其他組件來配合工作的完成,DisPatcherServlet的存在大大降低了組件之間的耦合性
2.HandlerMapping 處理器映射器
記錄url與處理器的映射,方式有註解、XML配置等
3.HandLer 處理器
後端控制器(通俗一點:Controller層所寫的業務代碼)。對用戶的請求進行處理
4.HandlerAdapter 處理器適配器
通過HandlerAdapter對處理器進行執行,這是適配器模式的應用,通過擴展適配器可以對更多類型的處理器進行執行。(我也不太明白)
5.ViewResolver 視圖解析器
ViewResolver負責解析view視圖,並進行渲染(數據填充),將處理結果通過頁面展示給用戶看
6.View 視圖
View是一個接口,實現類支持不同的View類型(jsp、freemarker、velocity)


技術分享圖片



springMVC控制器,處理器,映射器,適配器