SpringMVC 是 Spring 的一個模塊,與 Spring 是直接整合在一塊兒
SpringMVC 是基於 MVC 的 web 框架
MVC:模型-視圖-控制器前端
一、標準MVCjava
(1)、是架構型的模型;web
(2)、Model:模型,包含數據和行爲,提供模型數據查詢和模型數據更新等功能,包含數據和業務;架構
(3)、View:視圖,負責模型的展現;app
(4)、Controller:控制器,讓模型進行數據處理,讓視圖進行數據返回和展現;框架
(5)、推模型spa
二、web MVC對象
web是一個請求響應的模型,沒法作到模型推送數據blog
三、model1
JSP 負責表現邏輯、業務對象調用、控制邏輯,調用 javaBean 業務對象;
接口
四、model2
(1)、在JavaEE裏,web MVC就是指model2的模型;
(2)、servlet做爲控制器,JSP做爲視圖,JavaBean做爲模型;
(3)、控制器的問題
a、請求參數封裝麻煩;
b、給視圖傳輸共享數據,視圖和視圖數據嚴重依賴控制器;
c、控制器邏輯麻煩(增刪改查)
(4)、模型:業務和數據,service/dao;
(5)、視圖:被綁定爲JSP,更換很難;
一、前端控制器:全部的請求都會到達前端控制器;
二、應用控制器:真正的處理請求,視圖管理,業務邏輯管理,策略模式;
三、頁面控制器(動做):功能處理代碼(controller);
四、上下文:全部請求的一些公用的邏輯,數據傳遞和共享;
生命週期線性圖:
總結:
一、DispatcherServlet
(1)、前端控制器,會接收全部請求的servlet;
(2)、全部的交互都是來自於前端處理器,能夠減小耦合;
二、HandlerMapping
(1)、處理器映射器;
(2)、將URL映射到Handler,找到的是通過封裝的Handler的類型;
三、HandlerExecutionChain
(1)、Handler+interceptor攔截器;
(2)、方法執行前,視圖返回前,方法執行完成後,對其附加上通用功能;
四、Handler
(1)、controller
五、HandlerAdapter
(1)、接口,找到適配的類來實現Handler的執行,是真正執行Handler的地方;
六、ViewResolver
(1)、視圖解析,將ModelAndView對應的邏輯視圖轉換爲物理視圖;
七、View
(1)、接口,不一樣的視圖實現(JSP,freemarker等);
八、SpringMVC靈活的體現
(1)、攔截器,可自定義攔截器進入執行鏈;
(2)、HandlerAdapter:執行controller,可自定義adapter執行各類Handler;
(3)、ViewResolver:能夠解析不一樣的視圖;
PS:因做者能力有限,若有誤還請諒解;