-
springMVC是如何請求的?-2019.8.5
springMVC = struts2+spring.
請求涉及組件:前端控制器DispatcherServlet、處理器映射器HandlerMapping、處理器適配器HandlerAdapter、視圖解析器View Resolver、處理器Handler、視圖View
涉及組件的介紹:
DispatcherServlet | 由框架提供 |
接收請求,響應結果,相當於轉發器,中間處理器,減少其他組件耦合度。 相當於mvc模式中的c,DispatcherServlet是整個流程控制的中心,由它調用其他組件處理用戶的請求。 |
HandlerMapping | 由框架提供 | 根據請求的url查找Handler。負責根據用戶請求找到處理器Handler即Controller,SpringMVC提供了不同映射器實現不同的映射方式,例如:配置文件方式,實現接口方式,註解方式等. |
HandlerAdapter | 由框架提供 | 按照特定特定規則(HandlerAdapter要求的規則)去執行Handler,通過HandlerAdapter對處理器進行執行——適配器模式的應用 |
Handler | 工程師開發 | 根據HandlerAdapter[適配器]的要求去做,Handler涉及具體業務需求,[即後端控制器用controller表示] |
ViewResolver | 由框架提供 | 進行視圖解析,根據邏輯視圖名解析成真正的視圖View |
View | 工程師開發 | 一個接口,支持不同View類型(jsp、freemarker、pdf...) |
請求的使用順序或地點:前端控制器作爲中心,負責調用其他組件處理請求,當用戶發起請求來到前端控制器的時候:
1.前端控制器調用處理器映射器,解析到請求對應的處理器[代碼處理邏輯,Handler],返回 執行鏈[HandlerExecutionChain ]
2.前端控制器調用處理器適配器,執行處理器[Handler],返回 ModelAndView
3.前端控制器調用視圖解析器,進行視圖解析,返回 View
4.前端控制器 對視圖 進行 渲染,向用戶展示響應結果