天天看點

spring mvc運作原理

大家都知道對于spring mvc架構,最核心的就是DispatcherServlet。

那麼DispatcherServlet到底能幹些什麼活呢,其實DispatcherServlet就是負責協調群組織不同元件以完成請求處理并傳回響應的工作。

spring mvc 處理請求的過程簡單如下:

1.一個請求過來,首先去比對DispatcherServlet的請求映射路徑(web.xml中可配置,如:

      <servlet>

<servlet-name>springServlet</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath*:/applicationContext-mvc.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>springServlet</servlet-name>

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

</servlet-mapping>

),如果比對成功,則web容器将該請求轉交給DispatcherServlet進行處理;

2.DispatcherServlet接收到請求後,将根據請求資訊及HandlerMapping的配置找到處理請求的Handler;

3.通過HandlerAdapter對該Handler進行封裝,再以統一的擴充卡接口調用Hander;

4.Handler完成業務邏輯的處理後,傳回一個ModelAndView(包含視圖邏輯名和模型資料資訊)給DispatcherServlet;

5.DispatcherServlet借助ViewResoler完成邏輯視圖名到真實視圖對象的解析;

6.得到真實視圖對象View後,DispatcherServlet使用這個View對ModerAndView中的模型資料進行視圖渲染。

總結:可以發現整個過程DispatcherServlet擔任了協調群組織不同元件,完成請求處理并傳回響應的工作。

繼續閱讀