SpringMvc框架原理簡述
MVC 設計模式
M:model ===> service / dao / 模型類
V:view ===> jsp檢視 / json
C:Controller ===> servlet
Spring MVC 核心流程
1.傳送請求到前端控制器(DispatcherServlet)
2.委託給後端控制器(Controller)
3.訪問Model層,返回model資料
4.後端控制器返後ModelAndView
5.DispatcherServlet根據ModelAndView查詢到對相應的View並渲染
6.相應渲染後的結果給使用者
SpringMVC的功能特性
引數繫結,格式轉換
引數校驗(JSR303 hibernate-validator實現)
全域性處理
@ControllerAdvice
@ExceptionHandler
檔案上傳
新增依賴
bean:multipartResolver
form表單:
input type=file
enctype="multipart/form-data"
method="post"
Controller方法引數含有MulitpartFile 變數名為input的name
restful
路徑引數@PathVariable
@RestController:
@RestController註解相當於@ResponseBody + @Controller合在一起的作用。
1) 如果只是使用@RestController註解Controller,則Controller中的方法無法返回jsp頁面,或者html,配置的檢視解析器 InternalResourceViewResolver不起作用,返回的內容就是Return 裡的內容。
2) 如果需要返回到指定頁面,則需要用 @Controller配合檢視解析器InternalResourceViewResolver才行。
如果需要返回JSON,XML或自定義mediaType內容到頁面,則需要在對應的方法上加上@ResponseBody註解。