网站地图表现形式,深圳市建设厅网站,高培淇自己做的网站,wordpress关注功能springMVC处理请求的流程 SpringMVC的工作原理图#xff1a; SpringMVC流程
1、 用户发送请求至前端控制器DispatcherServlet。
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)…springMVC处理请求的流程 SpringMVC的工作原理图 SpringMVC流程
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响应用户。
组件说明
以下组件通常使用框架提供实现
DispatcherServlet作为前端控制器整个流程控制的中心控制其它组件执行统一调度降低组件之间的耦合性提高每个组件的扩展性。
HandlerMapping通过扩展处理器映射器实现不同的映射方式例如配置文件方式实现接口方式注解方式等。
HandlAdapter通过扩展处理器适配器支持更多类型的处理器。
ViewResolver通过扩展视图解析器支持更多类型的视图解析例如jsp、freemarker、pdf、excel等。
组件1、前端控制器DispatcherServlet不需要工程师开发,由框架提供 作用接收请求响应结果相当于转发器中央处理器。有了dispatcherServlet减少了其它组件之间的耦合度。 用户请求到达前端控制器它就相当于mvc模式中的cdispatcherServlet是整个流程控制的中心由它调用其它组件处理用户的请求dispatcherServlet的存在降低了组件之间的耦合性。
2、处理器映射器HandlerMapping(不需要工程师开发),由框架提供 作用根据请求的url查找Handler HandlerMapping负责根据用户请求找到Handler即处理器springmvc提供了不同的映射器实现不同的映射方式例如配置文件方式实现接口方式注解方式等。
3、处理器适配器HandlerAdapter 作用按照特定规则HandlerAdapter要求的规则去执行Handler 通过HandlerAdapter对处理器进行执行这是适配器模式的应用通过扩展适配器可以对更多类型的处理器进行执行。
4、处理器Handler(需要工程师开发)注意编写Handler时按照HandlerAdapter的要求去做这样适配器才可以去正确执行Handler Handler 是继DispatcherServlet前端控制器的后端控制器在DispatcherServlet的控制下Handler对具体的用户请求进行处理。 由于Handler涉及到具体的用户业务请求所以一般情况需要工程师根据业务需求开发Handler。
5、视图解析器View resolver(不需要工程师开发),由框架提供 作用进行视图解析根据逻辑视图名解析成真正的视图view View Resolver负责将处理结果生成View视图View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址再生成View视图对象最后对View进行渲染将处理结果通过页面展示给用户。 springmvc框架提供了很多的View视图类型包括jstlView、freemarkerView、pdfView等。 一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户需要由工程师根据业务需求开发具体的页面。
6、视图View(需要工程师开发jsp...) View是一个接口实现类支持不同的View类型jsp、freemarker、pdf...
核心架构的具体流程步骤如下 1、首先用户发送请求——DispatcherServlet前端控制器收到请求后自己不进行处理而是委托给其他的解析器进行处理作为统一访问点进行全局的流程控制 2、DispatcherServlet——HandlerMapping HandlerMapping 将会把请求映射为HandlerExecutionChain 对象包含一个Handler 处理器页面控制器对象、多个HandlerInterceptor 拦截器对象通过这种策略模式很容易添加新的映射策略 3、DispatcherServlet——HandlerAdapterHandlerAdapter 将会把处理器包装为适配器从而支持多种类型的处理器即适配器设计模式的应用从而很容易支持很多类型的处理器 4、HandlerAdapter——处理器功能处理方法的调用HandlerAdapter 将会根据适配的结果调用真正的处理器的功能处理方法完成功能处理并返回一个ModelAndView 对象包含模型数据、逻辑视图名 5、ModelAndView的逻辑视图名—— ViewResolver ViewResolver 将把逻辑视图名解析为具体的View通过这种策略模式很容易更换其他视图技术 6、View——渲染View会根据传进来的Model模型数据进行渲染此处的Model实际是一个Map数据结构因此很容易支持其他视图技术 7、返回控制权给DispatcherServlet由DispatcherServlet返回响应给用户到此一个流程结束。
下边两个组件通常情况下需要开发
Handler处理器即后端控制器用controller表示。
View视图即展示给用户的界面视图中通常需要标签语言展示模型数据。 在将SpringMVC之前我们先来看一下什么是MVC模式
MVCMVC是一种设计模式
MVC的原理图 分析
M-Model 模型完成业务逻辑有javaBean构成servicedaoentity
V-View 视图做界面的展示 jsphtml……
C-Controller 控制器接收请求—调用模型—根据结果派发页面 springMVC是什么 springMVC是一个MVC的开源框架springMVCstruts2springspringMVC就相当于是Struts2加上sring的整合但是这里有一个疑惑就是springMVC和spring是什么样的关系呢这个在百度百科上有一个很好的解释意思是说springMVC是spring的一个后续产品其实就是spring在原有基础上又提供了web应用的MVC模块可以简单的把springMVC理解为是spring的一个模块类似AOPIOC这样的模块网络上经常会说springMVC和spring无缝集成其实springMVC就是spring的一个子模块所以根本不需要同spring进行整合。
SpringMVC的原理图 看到这个图大家可能会有很多的疑惑现在我们来看一下这个图的步骤可以对比MVC的原理图进行理解
第一步:用户发起请求到前端控制器DispatcherServlet
第二步前端控制器请求处理器映射器HandlerMappering去查找处理器Handle通过xml配置或者注解进行查找
第三步找到以后处理器映射器HandlerMappering像前端控制器返回执行链HandlerExecutionChain
第四步前端控制器DispatcherServlet调用处理器适配器HandlerAdapter去执行处理器Handler
第五步处理器适配器去执行Handler
第六步Handler执行完给处理器适配器返回ModelAndView
第七步处理器适配器向前端控制器返回ModelAndView
第八步前端控制器请求视图解析器ViewResolver去进行视图解析
第九步视图解析器像前端控制器返回View
第十步前端控制器对视图进行渲染
第十一步前端控制器向用户响应结果
看到这些步骤我相信大家很感觉非常的乱这是正常的但是这里主要是要大家理解springMVC中的几个组件
前端控制器DispatcherServlet接收请求响应结果相当于电脑的CPU。
处理器映射器HandlerMapping根据URL去查找处理器
处理器Handler需要程序员去写代码处理逻辑的
处理器适配器HandlerAdapter会把处理器包装成适配器这样就可以支持多种类型的处理器类比笔记本的适配器适配器模式的应用
视图解析器ViewResovler进行视图解析多返回的字符串进行处理可以解析成对应的页面