SpringMVC工作流程
SpringMVC的执行流程以及运行原理
什么是MVC
MVC 是 Model、View 和 Controller 的缩写,分别代表 Web 应用程序中的 3 种职责,MVC是一种软件设计规范。它将业务逻辑、数据、显示分离的方法来组织代码,降低了视图与业务逻辑之间的双向耦合
- Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
- View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。
- Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。
最典型的MVC模式就是JSP+Servlet+JavaBean的模式。
什么是SpringMVC
- SpringMVC是一个基于MVC模式的Web框架,是Spring框架的一个模块 。
- 它以SpringIOC容器为基础,并利用容器的特性来简化它的配置,所以 SpringMVC 和 Spring 可直接整合使用。
- SpringMVC 对 MVC 流程进行了封装,屏蔽掉很多底层代码,让开发者可以更加轻松快捷的完成基于 MVC 模式的 Web 开发。
- 总的来说:Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。
SpringMVC的特点
- 轻量级,简单易学
- 高效 , 基于请求响应的MVC框架
- 与Spring兼容性好,无缝结合
- 约定优于配置
- 功能强大:RESTful、数据验证、格式化、本地化、主题等
- 简洁灵活
SpringMVC中的核心组件
- 前端控制器:DispatherServlet
- 处理器映射器:HandlerMapping
- 处理器适配器:HandlerAdapter
- 处理器:Adapter
- 视图解析器:ViewResolver
- 视图:View
组件介绍
- 前端控制器:接收请求、响应结果,相当于转发器,它是SpringMVC框架最核心的组件,有了它就能减少其他组件之间的耦合度。(不需要程序员开发)
- 处理器映射器:根据配置的映射规则(根据请求的URL),找到对应的处理器。(不需要程序员开发)
- 处理器适配器:适配调用具体的处理器,并且执行处理器中处理请求的方法,执行完毕之后返回一个ModelAndView对象。
- 处理器:(需要程序员手动开发)。
- 视图解析器:会根据传递过来的ModelAndView对象进行视图解析,根据视图解析名解析称真正的视图View。(不需要程序员开发)
- 视图:View是一个接口,它的实现类支持不同类型的视图。比如:JSP、freemarker、Thymeleaf等等。
- 当用户通过浏览器发起一个HTTP请求,请求直接到前端控制器DispatcherServlet;
- 前端控制器接收到请求以后调用处理器映射器HandlerMapping,处理器映射器根据请求的URL找到具体的Handler,并将它返回给前端控制器;
- 前端控制器调用处理器适配器HandlerAdapter去适配调用Handler;
- 处理器适配器会根据Handler去调用真正的处理器去处理请求,并且处理对应的业务逻辑;
- 当处理器处理完业务之后,会返回一个ModelAndView对象给处理器适配器,HandlerAdapter再将该对象返回给前端控制器;这里的Model是返回的数据对象,View是逻辑上的View。
- 前端控制器DispatcherServlet将返回的ModelAndView对象传给视图解析器ViewResolver进行解析,解析完成之后就会返回一个具体的视图View给前端控制器。(ViewResolver根据逻辑的View查找具体的View)
- 前端控制器DispatcherServlet将具体的视图进行渲染,渲染完成之后响应给用户(浏览器显示)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WereAsh!
评论
ValineDisqus