什么是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的架构
SpringMVC运行流程
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运行时序
SpringMVC三大组件
- DispatcherServlet前端控制器
- HandlerMapping处理器映射器
- HandlerAdapter处理器适配器
RESTFUL风格
请求转发
响应重定向
拦截器