1. 程式人生 > >Spring框架學習筆記(三)-- Spring MVC

Spring框架學習筆記(三)-- Spring MVC

      所謂MVC,即模型-檢視-控制器,是一種比較普遍使用的設計模式。它通過分離模型、檢視、控制器在程式中的角色進行解耦的。通常,模型負責封裝應用程式資料在檢視層的展示檢視負責展示這些資料控制器負責接收來自使用者的請求,並呼叫後臺服務來處理業務邏輯。(核心思想是將業務邏輯從介面中分離開來,允許它們單獨的改變而不互相影響)

      所謂Spring MVC,是基於Spring實現MVC設計模式的一種Web框架,它與spring無需通過中間整合層進行整合    。它以強大的Spring Ioc容器為基礎,充分利用容器的特性來簡化配置的。

   Spring MVC與Struts2的區別:

  1. Spring MVC的入口是一個servlet(前端控制器),而Struts2則是一個filter(過濾器)
  2. Spring MVC是基於方法(切面)開發的,而Struts2是基於類開發的
  3. Spring MVC通過引數解析器將request請求資料解析,並給方法形參賦值,將資料和檢視封裝成物件,最好通過request域傳輸到頁面,而Struts2通過值棧儲存請求和響應資料的。

   Spring MVC的執行原理:

  1. 使用者傳送請求-->DispatcherServlet:發起請求到前端控制器(DispatcherServlet);
  2. DispatcherServlet-->HandlerMapping:前端控制器請求HandlerMapping查詢 Handler可以根據xml配置、註解進行查詢會把請求對映為HandlerExecutionChain物件;(這樣,很容易新增新的對映策略)
  3. 處理器對映器HandlerMapping向前端控制器返回Handler;
  4. 前端控制器呼叫處理器介面卡去執行Handler;
  5. 處理器介面卡去執行Handler;
  6. Handler執行完成給介面卡返回ModelAndView;
  7. 處理器介面卡向前端控制器返回ModelAndView;
  8. 前端控制器請求檢視解析器去進行檢視解析;
  9. 檢視解析器向前端控制器返回View;
  10. 前端控制器進行檢視渲染;
  11. 前端控制器向用戶響應結果,流程結束;

   Spring MVC使用流程:

  1. 匯入Spring MVC所需要的jar包
  2. 新增Web.xml配置檔案中關於Spring MVC的配置
  3. 新增xxx-servlet.xml配置檔案(xxx與Web.xml檔案中相匹配)
  4. 建立jsp檔案(test.jsp),用於顯示檢視(View層)
  5. 建立Controller類,用於控制層操作(Controller層)
  6. 配置並啟動Tomcat伺服器進行執行

    Spring MVC常見註解:

    @Controller:負責註冊一個bean到Spring上下文中

    @RequestMapping:註解為控制器指定可以處理哪些URL請求

    @RequestBody:用於讀取Request請求的Body不等資料,並進行解析,然後把相應的資料繫結到返回物件中,再把返回物件繫結到controller中方法的引數裡

    @ResponseBody:用於將Controller方法返回的物件轉換為指定的格式後,寫入到Response物件的body資料區

    @RequestParam:把請求引數傳遞給請求方法中

    @PathVariable:繫結URL佔位符到入參

    @ExceptionHandler:出現異常時會呼叫此方法

    @ControllerAdvice:將一個controller成為全域性的異常處理類,處理所有Controller發生的異常