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注解。