SpringMVC工作原理

SpringMVC框架介绍:

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。

    

spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。

Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

     Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。

    在讲springMVC之前我们先来看一下什么是MVC模式

    MVC:MVC是一种设计模式

    MVC的原理图:

 

分析:

   M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity)

   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的一个子模块,所以根本不需要同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):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面

 

 

原文地址:https://www.cnblogs.com/ckwblogs/p/6766934.html