为什么使用Spring MVC
Spirng MVC是一种实现了MVC涉及模式的轻量级WEB框架,使用了MVC的架构思想,将web层的职责进行解耦,简化开发。
什么是MVC设计模式
MVC即Model-View-Controller,将程序按照Model,View,Controller进行分离。
View:代表与用户交互的界面,对于Web程序来说,可以使HTML,也可以使JSP,XML等,每个应用可以有多个不同的视图,MVC设计模式对于视图的处理进行与视图上数据的采集和处理,和用户的请求,而不包含视图上的业务流程处理。
Model:是业务的处理及规则的制定,模型接收视图请求的数据,并返回处理的结果。
Controller:可以理解成是从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。Controller只做请求的接收与相应,具体的业务处理并不在Controller中处理。
Spring的请求流程
用户首先发起请求到达前端控制器DispatcherServlet,前端控制器根据请求消息URL,来决定由哪一个页面控制器进行处理,并将请求委托给Controller,控制器在接收到请求后,进行业务的处理,业务处理完成后会返回ModelAndView到前端控制器,然后前端控制器根据返回的视图名,选择响应的视图进行渲染,并将模型数据填充到视图中,最终由前端控制器将响应返回给用户。
Spring MVC的工作流程
1:客户端发起请求到达前端控制器(DispatcherServlet)
2:前端控制器通过HandlerMapping查找到能够处理请求的Handler
3:HandlerMapping返回Handler,HandlerMapping将请求映射成HandlerExecutionChain对象
4:前端控制器调用HandlerAdapter去执行Handler
5:HandlerAdapter根据适配的结果去执行Handler
6,7:Handler执行完成后返回ModelAndView到DispatcherServlet
8:前端控制器根据视图解析器进行视图解析
9:视图解析器返回view给DispatcherServlet
10:前端控制器进行视图渲染,将数据填充到view中
11:前端控制器向用户返回响应结果