SpringMVC框架深刻(八)--SpringMVC原理

前言

  SpringMVC Spring 的一個模塊,與 Spring 是直接整合在一塊兒
  SpringMVC 是基於 MVC web 框架
  MVC:模型-視圖-控制器
前端

1、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,更換很難;

  

 

2、web MVC改進

  一、前端控制器:全部的請求都會到達前端控制器;

  二、應用控制器:真正的處理請求,視圖管理,業務邏輯管理,策略模式;

  三、頁面控制器(動做):功能處理代碼(controller);

  四、上下文:全部請求的一些公用的邏輯,數據傳遞和共享;

  

  生命週期線性圖:

  

  總結:

  

 

3、SpringMVC框架圖

  

  

  一、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:因做者能力有限,若有誤還請諒解;

相關文章
相關標籤/搜索