MVC工作原理(mvc的实现原理)
MVC工作原理(mvc的实现原理),本文通过数据整理汇集了MVC工作原理(mvc的实现原理)相关信息,下面一起看看。
pringMVC的工作原理图:
SpringMVC过程
1.用户向前端控制器DispatcherServlet发送请求。
2.DispatcherServlet接收调用HandlerMapping处理器映射器的请求。
3.处理器映射器找到特定的处理器(可以根据xml配置和注释进行搜索),生成处理器对象和处理器拦截器(如果有),并将其返回给DispatcherServlet。
4.DispatcherServlet调用HandlerAdapter处理器适配器。
5.HandlerAdapter通过适配调用特定的处理器(控制器,也叫后端控制器)。
6.控制器完成执行后,返回ModelAndView。
7.HandlerAdapter将控制器执行结果ModelAndView返回给DispatcherServlet。
8.DispatcherServlet将ModelAndView传递给ViewReslover视图解析器。
9.ViewReslover解析后返回特定视图。
10.DispatcherServlet根据视图呈现视图(即,将模型数据填充到视图中)。
1.DispatcherServlet响应用户。
组件描述:
以下组件通常使用框架来实现:
DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其他组件的执行,统一调度,降低组件之间的耦合,提高各个组件的可扩展性。
HandlerMapping:通过扩展处理器映射器实现不同的映射方法,如配置文件、接口实现和注释。
HandlAdapter:通过扩展处理器适配器来支持更多类型的处理器。
ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,如jsp、freemarker、pdf、excel等。
组件:
1.DispatcherServlet,前端控制器(不带工程师& # 039;开发),是由框架提供的。
功能:接收请求并响应结果,相当于转发器和CPU。使用dispatcherServlet,减少了其他组件之间的耦合。
当用户& # 039;s请求到达前端控制器,它相当于mvc模式中的C。dispatcherServlet是整个过程控制的中心,它调用其他组件来处理用户& # 039;的要求。dispatcherServlet的存在降低了组件之间的耦合。
2.处理器映射器HandlerMapping(不需要工程师开发),框架提供。
角色:根据请求的url查找处理程序。
HandlerMapping负责根据用户寻找处理程序,也就是处理器& # 039;的要求。springmvc提供不同的映射器来实现不同的映射方法,如配置文件、接口实现、注释等。
3.处理器适配器处理器适配器
角色:根据特定的规则执行处理程序(HandlerAdapter需要的规则)。
HandlerAdapter用于执行处理器,是适配器模式的应用。通过扩展适配器,可以执行更多类型的处理器。
4.处理器处理器(由工程师开发)
注意:编写Handler时,要遵循HandlerAdapter的要求,这样适配器才能正确执行Handler。
Handler是DispatcherServlet前端控制器之后的后端控制器。在DispatcherServlet的控制下,处理程序处理特定的用户请求。
由于Handler涉及到具体的用户业务请求,一般需要工程师根据业务需求开发Handler。
5.视图解析器(不需要工程师开发),框架提供。
功能:分析视图,根据逻辑视图名解析成真实视图。
视图解析器负责将处理结果生成到视图视图中。视图解析器首先将逻辑视图名解析为物理视图名,即特定的页面地址,然后生成视图对象,最后渲染视图,通过页面向用户展示处理结果。springmvc框架提供了很多视图类型,包括jstlView、freemarkerView、pdfView等。
一般情况下,需要通过页面标签或者页面模板将模型数据通过页面展现给用户,工程师需要根据业务需求开发具体的页面。
6.视图视图(要求工程师开发jsp…)
视图是一个接口,实现类支持不同的视图类型(jsp,freemarker,pdf…)
核心架构的具体流程步骤如下:
1.首先,用户发送一个请求——DispatcherServlet。前端控制器收到请求后,不自行处理,而是委托给其他解析器处理,作为全局进程控制的统一接入点;
2.dispatcher Servlet —— Handler mapping,将请求映射到HandlerExecutionChain对象(包括一个Handler处理器(页面控制器)对象和多个HandlerInterceptor拦截器)。通过这种策略模式,很容易添加新的映射策略;
3.dispatcher Servlet —— handler adapter,将处理器封装成适配器,从而支持各种类型的处理器,即适配器设计模式的应用,从而轻松支持多种类型的处理器;
4.HandlerAdapter——处理器函数处理方法的调用。Handler适配器会根据适配结果调用真正的处理器函数处理方法来完成函数处理;并返回一个ModelAndView对象(包括模型数据和逻辑视图名);
5.ModelAndView的逻辑视图名称是—— ViewResolver,它会将逻辑视图名称解析为特定的视图。通过这种策略模式,很容易改变其他视图技术;
6.视图——渲染。视图将根据输入的模型数据进行渲染。这里的模型实际上是一个地图数据结构,所以很容易支持其他视图技术;
7.将控制权返回给DispatcherServlet,DispatcherServlet返回一个响应给用户,这个过程结束。
通常需要开发以下两个组件:
Handler:处理器,也就是后端控制器,用controller表示。
视图:View,即呈现给用户的界面。在视图中,通常需要用标记语言显示模型数据。
在介绍SpringMVC之前,让& # 039;让我们来看看什么是MVC模式。
MVC:MVC是一种设计模式。
MVC示意图:
分析:
M-Model模型(完整的业务逻辑:由javaBean、服务dao实体组成)
V-View视图(界面显示的jsp,html…….)
C-Controller控制器(接收请求-调用模型-根据结果分配页面)
什么是springMVC:
SpringMVC是MVC的开源框架,springMVC=struts2 spring,springMVC相当于struts2和sring的集成,但是这里有一个疑问,springMVC和spring是什么关系?这个百度百科里有个很好的解释:意思是springMVC是spring的后续产品。事实上,spring在原有的基础上为web应用提供了MVC模块。可以简单理解为springMVC是spring的一个模块(和AOP、IOC一样)。网上经常说springMVC和spring无缝集成。实际上springMVC是spring的一个子模块,所以它不& # 039;根本不需要和spring集成。
SpringMVC示意图:
看到这个图你可能会有很多疑惑。现在让& # 039;让我们来看看这个图的步骤:(对比MVC的示意图就能明白了)
步骤1:用户向前端控制器(DispatcherServlet)发起请求。
第二步:前端控制器请求处理器映射器找到处理器(句柄):通过xml配置或注释。
第三步:找到处理程序映射器,像前端控制器一样返回执行链。
第四步:前端控制器(DispatcherServlet)调用HandlerAdapter执行处理程序。
步骤5:处理器适配器执行处理程序。
步骤6: Handler在执行后将ModelAndView返回给处理器适配器。
步骤7:处理器适配器向前端控制器返回ModelAndView。
步骤8:前端控制器请求ViewResolver分析视图。
第九步:视图解析器像前端控制器一样返回视图。
步骤10:前端控制器呈现视图
步骤11:前端控制器将结果回复给用户。
我相信大家看到这些步骤的时候都会感到很困惑,这很正常,但是这里我们主要想让你了解springMVC中的几个组件:
前端控制器(DispatcherServlet):接收请求,响应结果,相当于计算机的CPU。
HandlerMapping:根据URL找到处理器。
处理程序:(要求程序员编写代码处理逻辑)
HandlerAdapter:将处理器封装成适配器,这样可以支持各种类型的处理器,类似于笔记本的适配器(适配器模式的应用)。
ViewResovler:解析视图,处理返回的字符串,并将它们解析到相应的页面中。
更多MVC工作原理(mvc的实现原理)相关信息请关注本站。