Spring框架學習筆記(三)-- Spring MVC
阿新 • • 發佈:2018-12-30
所謂MVC,即模型-檢視-控制器,是一種比較普遍使用的設計模式。它通過分離模型、檢視、控制器在程式中的角色進行解耦的。通常,模型負責封裝應用程式資料在檢視層的展示,檢視負責展示這些資料,控制器負責接收來自使用者的請求,並呼叫後臺服務來處理業務邏輯。(核心思想是將業務邏輯從介面中分離開來,允許它們單獨的改變而不互相影響)
所謂Spring MVC,是基於Spring實現MVC設計模式的一種Web框架,它與spring無需通過中間整合層進行整合 。它以強大的Spring Ioc容器為基礎,充分利用容器的特性來簡化配置的。
Spring MVC與Struts2的區別:
- Spring MVC的入口是一個servlet(前端控制器),而Struts2則是一個filter(過濾器)
- Spring MVC是基於方法(切面)開發的,而Struts2是基於類開發的
- Spring MVC通過引數解析器將request請求資料解析,並給方法形參賦值,將資料和檢視封裝成物件,最好通過request域傳輸到頁面,而Struts2通過值棧儲存請求和響應資料的。
Spring MVC的執行原理:
- 使用者傳送請求-->DispatcherServlet:發起請求到前端控制器(DispatcherServlet);
- DispatcherServlet-->HandlerMapping:前端控制器請求HandlerMapping查詢 Handler可以根據xml配置、註解進行查詢會把請求對映為HandlerExecutionChain物件;(這樣,很容易新增新的對映策略)
- 處理器對映器HandlerMapping向前端控制器返回Handler;
- 前端控制器呼叫處理器介面卡去執行Handler;
- 處理器介面卡去執行Handler;
- Handler執行完成給介面卡返回ModelAndView;
- 處理器介面卡向前端控制器返回ModelAndView;
- 前端控制器請求檢視解析器去進行檢視解析;
- 檢視解析器向前端控制器返回View;
- 前端控制器進行檢視渲染;
- 前端控制器向用戶響應結果,流程結束;
Spring MVC使用流程:
- 匯入Spring MVC所需要的jar包
- 新增Web.xml配置檔案中關於Spring MVC的配置
- 新增xxx-servlet.xml配置檔案(xxx與Web.xml檔案中相匹配)
- 建立jsp檔案(test.jsp),用於顯示檢視(View層)
- 建立Controller類,用於控制層操作(Controller層)
- 配置並啟動Tomcat伺服器進行執行
Spring MVC常見註解:
@Controller:負責註冊一個bean到Spring上下文中
@RequestMapping:註解為控制器指定可以處理哪些URL請求
@RequestBody:用於讀取Request請求的Body不等資料,並進行解析,然後把相應的資料繫結到返回物件中,再把返回物件繫結到controller中方法的引數裡
@ResponseBody:用於將Controller方法返回的物件轉換為指定的格式後,寫入到Response物件的body資料區
@RequestParam:把請求引數傳遞給請求方法中
@PathVariable:繫結URL佔位符到入參
@ExceptionHandler:出現異常時會呼叫此方法
@ControllerAdvice:將一個controller成為全域性的異常處理類,處理所有Controller發生的異常