课程简介和目标
什么是MVC模式
MVC模式是目前WEB项目主要的项目架构模式,是一种非常优秀的三层架构模式,其三层是指视图层View,控制层Controller和模型层Model,它们分别完成不同的功能
View 层:视图层,用户提供用户的操作页面,是数据的展现层,也是用户接触的界面层
Controller层:控制层,接收视图层的请求数据并作出相应,控制页面跳转和交互逻辑的层面
Model层:模型层,包含处理业务逻辑的的服务部分(Service)和操作持久层的DAO,以及和数据库对应的实体类模型(pojo)。
mvc模式下开发的项目往往具备这样的几个组成部分
1 视图部分,对应MVC的VIEW层,其实就是一些页面,放在项目专门存放页面的位置即可,不同的项目位置稍有差异,一般该层的技术包含HTML CSS JS jQuery 等一些前端技术和框架以及一些 JSP FreeMaker Thymeleaf等模板引擎技术
2 controller包,对应MVC的Controller层,用于专门存放控制层代码,一般该层次技术包含Servlet或者对于Servlet封装之后的框架技术. SpringMVC框架主要就是对于该层次的处理
3 service 包,属于Model层的一部分,专门用于存放模型层计算业务逻辑的代码,在MyBatis-Plus中,也提供了一些对于该层次的基础的业务逻辑的封装
4 dao或者mapper包,也是属于Model层的一部分,专门用于存放操作持久层数据,实现CURD功能的代码,一般该层次的技术包含JDBC以及或者对于JDBC封装的框架技术,包含Hibernate ,MyBatis, MyBatisPlus, JDBCTemplate, JPA等等
5 pojo或者entity包,也是属于Model层的一部分,专门用于存放和数据库表格对应的实体类包,专门用于封装和传递数据,该层次一般设计的技术或者插件有Lombok,序列化等等
6 其他工具或者配置信息等包
SpringMVC的架构
![](https://i-blog.csdnimg.cn/blog_migrate/65ba9e2a992c6324afe86846841e6f5f.png)
SpringMVC运行流程
![](https://i-blog.csdnimg.cn/blog_migrate/62c2f0a5cc1d2352520c10c5292fbad7.png)
1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求调用处理器映射器HandlerMapping。 3.处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。 4.DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作 5.执行处理器Handler(Controller,也叫页面控制器)。 6.Handler执行完成返回ModelAndView 7.HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet 8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器 9.ViewReslover解析后返回具体View 10.DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)。 11.DispatcherServlet响应用户。
SpringMVC运行时序
![](https://i-blog.csdnimg.cn/blog_migrate/ee65fb12e667f1ec510d1330102a28be.png)
SpringMVC三大组件
DispatcherServlet前端控制器
HandlerMapping处理器映射器
HandlerAdapter处理器适配器
本阶段学习目标
熟悉SpringMVC执行流程
可以搭建SpringMVC项目配置三大组件
熟练进行前后端数据传递和页面跳转控制
能够独立整合SSM项目
能够在SpringMVC项目下实现文件上传下载
熟练使用SpringMVC拦截器
能够使用SpringMVC的异常处理机制
熟练使用所有SpringMVC的常见注解
课程大纲
第一章 SpringMVC简介和项目搭建
SpringMVC简介
SpringMVC项目搭建
SpringMVC配置三大组件和请求访问资源细节问题
SpringMVC支持RESTFUL风格
SpringMVC三大组件
![](https://i-blog.csdnimg.cn/blog_migrate/26fc2301749d6a02f87fae77c61fbac7.png)
RESTFUL风格
![](https://i-blog.csdnimg.cn/blog_migrate/bec5c04a05cb8f8db3fafaec2def63f0.png)
第二章 SpringMVC参数注入问题
注入POJO类型参数
注入Date类型参数
注入List类型参数
注入Map类型参数
参数乱码问题及参数注入相关注解
第三章 SpringMVC 响应相关问题
响应void
请求转发和响应重定向
forward和redirect关键字
ModelAndView的使用
异步响应及JSON的使用
Spring SpringMVC MyBatis整合
请求转发
![](https://i-blog.csdnimg.cn/blog_migrate/4f1a0e05c12e124365fb1ad7cb97b376.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cdbe309dd8436f3c7b21e0b5ed7941f3.png)
第四章 文件上传和下载
文件上传
文件下载
文件上传下载
![](https://i-blog.csdnimg.cn/blog_migrate/80de1a224033a7637247f32b7d58e238.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fd26a71a3bfd194316077901cd33cb2a.png)
第五章 拦截器,异常处理机制和SpringMVC常见注解总结
拦截器概念引入
拦截器API解释
拦截器执行顺序
异常处理机制简介
异常处理的四种方式
SpringMVC常见注解总结
拦截器
![](https://i-blog.csdnimg.cn/blog_migrate/085dc9eafd3fae9493d83b8ab896cfb9.png)