要想理解Spring MVC需要先理解什么是MVC
MVC是模型(Model )、视图(View)、控制器(Controller)的简写,是一种软件设计的典范。
模型 Model 通俗来说就是项目中的DAO层(或者Mapper层)+ 项目中的Service层(业务逻辑层)。
视图 View 就好理解了,比如你现在所看的这个网页,就是视图View。专业角度来说,是负责模型的展示。
控制器 Controller 通俗来说就是,你现在给我文章点赞就会发送一个请求,这个请求就是被控制器接收(Controller),然后由控制器来调用模型(Model)中的对应方法来处理,最后返回处理结果(成功或失败)。
什么是Spring MVC?为什么要使用Spring MVC?
Spring MVC是一种实现了MVC软件设计的轻量级框架,底层使用的是java实现,属于Spring的一个子模块 。
Spring MVC简单易学、与Spring兼容性好、功能强大(支持Restful、数据验证、格式化、本地化等),这些优点吸引了一大片用户、企业选择使用Spring MVC。
Spring MVC工作原理
Spring MVC框架围绕核心控制器DispatcherServlet [ 调度Servlet ] 设计,功能是对客户端(View)发送的请求分发到不同的处理器
Spring MVC执行步骤如下
1、客户端(View)发起请求到控制器(DispatcherServlet)
2、控制器请求HandlerMapping根据URL查找 Handler,可以根据xml配置、注解进行查找
3、处理器映射器HandlerMapping向控制器(DispatcherServlet)返回Handler
4、控制器调用处理器适配器(HandlerAdapter)其按照特定的规则去执行Handler
5、Handler执行完成给适配器返回ModelAndView
6、处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括 Model和view
7、控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图
视图解析器向前端控制器返回View
8、前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域
9、控制器向用户响应结果