1. 程式人生 > >SpringMVC和Struts2的執行流程,面試中簡單回答

SpringMVC和Struts2的執行流程,面試中簡單回答

1、SpringMVC的執行流程:

傳送請求——>DispatcherServiet捕獲——>HandlerMapping查詢Handler返回HandlerExecutionChain——>執行Handler返回ModelAndView ——>選擇ViewResoler渲染檢視——>返回客戶端

1、客戶端向伺服器傳送請求,請求被前端控制器DispatcherServlet捕獲。

2、DispatcherServlet對請求URL進行解析,得到請求資源識別符號URI,通過URI呼叫HandlerMapping處理器對映器獲取Handler配置的所有相關物件,返回Handler和HandlerExecutionChain。

3、DispatcherServlet根據獲得的Handler選擇一個適合的HandlerAdapter處理器介面卡,提取Request中的模型資料,填充Handler入參,執行Controller,返回一個ModlerAndView。

4、DispatcherServlet根據返回的ModlerAndView選擇一個合適的ViewResoler。

5、DispatcherServlet通過ViewResoler結合Model和View來渲染檢視。並將渲染結果返回給客戶端。

2、Struts2的執行流程:

傳送請求——>StrutsPrepareAndExecutionFilter攔截——>ActionMapper判斷——>ConfigurationManager查詢——>建立ActionInvocation例項——>執行相關攔截器——>響應客戶端

1、客戶端傳送請求,經過一系列的過濾器,被核心過濾器StrutsPrepareAndExecutionFilter進行攔截。

2、StrutsPrepareAndExecutionFilter通過ActionMapper來判斷是否需要Action來處理,不需要就繼續執行,需要的話就交給ActionProxy處理。

3、ActionProxy通過ConfigurationManager詢問框架的配置檔案Struts.xml找到對應的Action。

4、建立一個ActionInvocation例項,呼叫對應的方法獲取結果集的name,在呼叫的前後會執行相關的攔截器。

5、通過結果集的name找到對應的結果集對瀏覽器進行響應。