mvc执行流程,mvc的流程简单易懂

http://www.itjxue.com  2023-01-05 18:07  来源:未知  点击次数: 

spring mvc 的工作流程是什么

spring mvc 的工作流程:

1、用户发送请求至前端控制器DispatcherServlet。

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、 DispatcherServlet调用HandlerAdapter处理器适配器。

5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

6、Controller执行完成返回ModelAndView。

7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

9、ViewReslover解析后返回具体View。

10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户。

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。

SpringMVC是一种web层的mvc框架,用于替代servlet(处理响应请求,获取表单参数,表单验证等)。

MVC即Model-View-Controller,将应用按照Model(模型)、View(视图)、Controller(控制)这样的方式分离。

视图(View):代表用户交互界面,对于Web应用来说,可以是HTML,也可能是jsp、XML和Applet等。

一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。

模型(Model):是业务的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计是MVC最主要的核心。

MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,抽象与具体不能隔得太远,也不能太近。

MVC并没有提供模型的设计方法,而只是组织管理这些模型,以便于模型的重构和提高重用性。

控制(Controller):可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。

划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。

springmvc工作流程

springmvc工作流程:

1、 用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。

2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Controller,只是得知)。

3、DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller。

4、HandlerAdapter处理器适配器去执行Controller并得到ModelAndView(数据和视图),并层层返回给DispatcherServlet。

5、DispatcherServlet将ModelAndView交给ViewReslover视图解析器解析,然后返回真正的视图。

6、DispatcherServlet将模型数据填充到视图中。

7、DispatcherServlet将结果响应给用户。

组件说明:

DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,组件的调用由它统一调度。

HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应的后端处理器 Handler。也就是说它知道处理用户请求的后端处理器,但是它并不执行后端处理器,而是将处理器告诉给中央处理器。

HandlerAdapter:处理器适配器,它调用后端处理器中的方法,返回逻辑视图 ModelAndView 对象。

ViewResolver:视图解析器,将 ModelAndView 逻辑视图解析为具体的视图(如 JSP)。

Handler:后端处理器,对用户具体请求进行处理,也就是我们编写的 Controller 类。

ASP.NET MVC 执行流程?

首先你要知道MVC中,M是什么意思(Model模型),V是什么意思(View视图),C是什么意思(Controller控制器),这三者代表的含义都知道了,那么执行流程就很容易理解了。Model可以简单的理解为数据,包括应用程序数据和数据库数据,View可以简单看成是前台页面,用于响应交互操作,Controller可以简单理解为处理交互操作的逻辑。从用户使用方向考虑,用户通过View来提交自己的操作,然后View层将用户操作提交给Controller层,Controller通过内部的逻辑处理,将用户的交互操作反映给Model层,在Model层完成数据的处理,然后Model层将处理后的数据提交给View层,用户就得到了自己的操作结果了。这就是MVC一个处理流程。更细节的就自行百度吧

MVC工作流程

Spring MVC工作流程描述:

1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;

2.?DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;

3.?DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter;

4. ?提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。

在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。

数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。

数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等。

数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。

5. ?Handler执行完成后,向DispatcherServlet?返回一个ModelAndView对象;

6. ?根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet?;

7.?ViewResolver 结合Model和View,来渲染视图;

8. 将渲染结果返回给客户端。

Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。Spring MVC的特点:

1、轻量;

2、高效;

3、与Spring兼容性好;

4、功能强大,RESTful、数据验证、格式化、绑定机制、本地化、主题等;

5、简洁灵活。

Spring mvc执行流程图-1

1.1 Spring mvc的执行流程图

Spring mvc的执行流程大致如下:

1)所有请求被DispatcherServlet控制器拦截。

2)被拦截的请求去handlerMappings中寻找对应的HandlerMapping对象并得到请求对应的Handler对象。

3)把获取到的Handler对象以及根据请求查找跟请求对应的拦截器作为入参,封装成一个HandlerExectionChain对象,返回到DispatcherServlet控制器。

4)把HandlerExecutionChain对象作为入参,去handlerAdapters集合中寻找对应的HandlerAdapter对象。

5)把HandlerExectionChain对象作为入参调用HandlerAdapter对象的handle方法,执行完毕将返回ModelAndView对象到DispatcherServlet控制器中。

6)从viewResolvers集合中查找对应的View对象,并返回给到DispatcherServlet控制器。

7)View视图渲染成具体的文件格式并返回给客户端。

View视图渲染

render具体源码

View的类型如下图(ctrl+h可查看类的所有子类)

(责任编辑:IT教学网)

更多

推荐Illustrator教程文章