1、什么是SpringMVC
SpringMVC又名Spring Web MVC,是一种基于java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品
SpringMVC本质上可以认为是对servlet的封装,简化了对于servlet的开发;SpringMVC通过一套注解,让一个简单Java类成为处理请求的控制器,而无须实现任何接口。同时还支持RESTful编程风格的请求
2、SpringMVC的体系结构
2.1、三层架构
开发架构一般分为C/S架构(客户端/服务器)和B/S架构(浏览器/服务器),JavaEE的开发中,一般使用B/S架构。B/S架构中系统标准的三层架构包括:表现层、业务层、持久层;这三层架构中,每层都各司其职
2.1.1、表现层
- 表现层也就是我们所说的Web层。负责接受客户端请求,向客户端响应结果,通常客户端使用 http协议请求web层,web需要接收http请求,完成http响应
- 表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。
- 表现层依赖业务层,接收到客户端请求⼀般会调⽤业务层进⾏业务处理,并将处理结果响应给客户端。
- 表现层的设计⼀般都使⽤ MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)
2.1.2、业务层
- 业务层也就是我们所说的Service层
- 负责业务逻辑处理,和我们开发项⽬的需求息息相关。
- web 层依赖业 务层,但是业务层不依赖 web 层。
- 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务⼀致性。(也就是我们说 的, 事务应该放到业务层来控制)
2.1.3、持久层
- 也就是我们所说的Dao层
- 负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进 ⾏持久化的载体,数据访问层是业务层和持久层交互的接⼝,业务层需要通过数据访问层将数据持久化 到数据库中。通俗的讲,持久层就是和数据库交互,对数据库表进⾏增删改查的。
2.2、MVC设计模式
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller) 的缩写, 是⼀ 种⽤于设计创建 Web 应⽤程序表现层的模式。MVC 中每个部分各司其职:
- 模型(model) :模型包含业务模型和数据模型,数据模型⽤于封装数据,业务模型⽤于处理业 务。
- View(视图): 通常指的就是我们的 jsp 或者 html。作⽤⼀般就是展示数据的。通常视图是依据 模型数据创建的。
- Controller(控制器): 是应⽤程序中处理⽤户交互的部分。作⽤⼀般就是处理程序逻辑的。 MVC提倡:每⼀层只编写⾃⼰的东⻄,不编写任何其他的代码;分层是为了解耦,解耦是为了维 护⽅便和分⼯协作。
3、SpringMVC工作流程
3.1、工作流程说明
- 第⼀步:⽤户发送请求⾄前端控制器DispatcherServlet
- 第⼆步:DispatcherServlet收到请求调⽤HandlerMapping处理器映射器
- 第三步:处理器映射器根据请求Url找到具体的Handler(后端控制器),⽣成处理器对象及处理器拦截 器(如果 有则⽣成)⼀并返回DispatcherServlet
- 第四步:DispatcherServlet调⽤HandlerAdapter处理器适配器去调⽤Handler
- 第五步:处理器适配器执⾏Handler
- 第六步:Handler执⾏完成给处理器适配器返回ModelAndView
- 第七步:处理器适配器向前端控制器返回 ModelAndView,ModelAndView 是SpringMVC 框架的⼀个 底层对 象,包括 Model 和 View
- 第⼋步:前端控制器请求视图解析器去进⾏视图解析,根据逻辑视图名来解析真正的视图。
- 第九步:视图解析器向前端控制器返回View
- 第⼗步:前端控制器进⾏视图渲染,就是将模型数据(在 ModelAndView 对象中)填充到 request 域
- 第⼗⼀步:前端控制器向⽤户响应结果