1、什么是SpringMvc?
SpringMvc是spring的一個模塊 基於MVC的一個框架 無需中間整合層來整合
什么是MVC ?mvc在b/s下的應用:
首先請求發送request請求到C(control 接收用戶請求響應用戶) 然后控制器到M模型(pojo、action、service、dao)層處理 處理結果完了返回控制器 控制器要經過視圖渲染 最后返回終端(response)
在b/s系統下模型無法將數據直接填充到視圖 還是要返回控制器
MVC是一個設計模式 是開發程序的一種解決方案
前端控制器 DispatcherServlet
處理執行鏈HandlerExcutionChian
處理器映射器 HandlerMapping
處理器適配器 HandlerAdapter 去執行Handler
前端控制器 DispatcherServlet 請求執行Handler 處理完 返回 ModelAndView (模型和視圖的結合體) 前端控制器接收到ModelAndView后請求視圖解析器 返回view 前端控制器將視圖進行渲染
SpringMvc整個的執行流程:
1、發起請求到前端控制器(DispatcherServlet )
2、前端控制器請求HandlerMapping查找Handler(可以根據xml、注解進行查找)
3、處理器映射器HandlerMapping向前端控制器DispatcherServlet 返回Handler
4、前端控制器DispatcherServlet 調用處理器適配器HandlerAdapter 執行Handler
5、處理器適配器HandlerAdapter 執行Handler
6、Handler執行完給處理器適配器返回ModelAndView
7、處理器適配器向前端控制器返回ModelAndView (ModelAndView 是SpringMvc的底層對象 包括model和view)
8、前端控制器請求視圖解析器去解析視圖
根據邏輯視圖名解析成真正的視圖(jsp)
9、視圖解析器向前端控制器返回view
10、前端控制器進行視圖渲染
視圖渲染將模型數據(模型數據在ModelAndView對象中)填充到request域
11、前端控制器向用戶響應結果
組件:
1、前端控制器 DispatcherServlet(不需要程序員開發)
作用:接收請求、響應結果 相當於轉發器
有了DispatcherServlet 就減少了其它組件之間的耦合度
2、處理器映射器HandlerMapping(不需要程序員開發)
作用:根據請求的URL來查找Handler
3、處理器適配器HandlerAdapter
作用:按照特定的規則(HandlerAdapter要求的規則)去執行Handler
注意:在編寫Handler的時候要按照HandlerAdapter要求的規則去編寫,這樣適配器HandlerAdapter才可以正確的去執行Handler
4、處理器Handler(需要程序員開發)
5、視圖解析器 View Resolver(不需要程序員開發)
作用:進行視圖的解析 根據視圖邏輯名解析成真正的視圖(view)
6、視圖View(需要程序員開發jsp)
View是一個接口, 它的實現類支持不同的視圖類型(jsp,freemarker,pdf。。。)