springmvc框架原理分析

springmvc全名是spring web mvc,springmvc是spring的一个模块,并且看名字即可知道,springmvc是一个基于mvc设计模式的前端web框架。mvc:m(model模型)、v(view视图)、c(control控制)

SpringMVC的工作原理图:

1、发起请求到前端控制器(DispatcherServlet),该控制器中就会过滤出你哪些请求可以访问该servlet哪些不可以,就是url-pattern的作用,并且会加载springmvc.xml配置文件

2、前端控制器会找到HandlerMapping(处理器映射器),通过HandlerMapping完成url到controller映射的组件,通俗点讲,就是将在springmvc.xml中配置的或者注解的url与对应的处理类找到并进行存储,实际上是用一个map集合来保存这种映射关系,map<url,handler>; 这样,就将所有的这种映射关系都记录保存了下来

3、通过HandlerMapping有了这些映射关系,并且找到了url对应的处理器,HandlerMapping就会将其处理器(图中红色标明的handler)返回,在其返回之前,在加上很多的拦截器,其作用后面进行讲解,这里知道在返回的处理器前会有很多的拦截器即可。

4、DispatcherServlet拿到了handler之后,找到HandlerAdapter(处理器适配器),通过它来访问处理器,并且执行处理器。

这里会有人会有疑惑,为什么需要处理器适配器,我们都获得了处理类了,直接调用不就行了吗?

不行,因为我们只知道处理类在哪里,并不知道执行处理类中的哪个方法,其实也就是不知道处理类是通过哪种方式创建出来的,实现HttpRequestHandler?还是注解方式,或者是其他方式,我们不知道,所以需要HandlerAdapter来帮我们确认调用哪个方法。

5、执行处理器

6、处理器会返回一个ModelAndView对象给HandlerAdapter

7、通过HandlerAdapter将ModelAndView对象返回给前端控制器(DispatcherServlet)

8、前端控制器请求视图解析器(ViewResolver)去进行视图解析,根据逻辑视图名解析成真正的视图(jsp),其实就是将ModelAndView对象中存放视图的名称进行查找,找到对应的页面形成视图对象

9、返回视图对象到前端控制器。

10、视图渲染,就是将ModelAndView对象中的数据放到request域中,用来让页面加载数据的。

11、通过第8步,通过名称找到了对应的页面,通过第10步,request域中有了所需要的数据,那么就能够进行视图渲染了。最后将其返回

组件说明:

DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。

HandlerMapping:通过扩展处理器映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

HandlAdapter:通过扩展处理器适配器,支持更多类型的处理器。

ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。

原文地址:http://blog.51cto.com/13777880/2164674

时间: 2024-11-13 05:16:54

springmvc框架原理分析的相关文章

springmvc框架原理分析和简单入门程序

一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交道,而前面刚写的mybatis跟hibernate一样,与数据库打交道在dao层的另一个框架,而今天所要讲解的springmvc是在web层的另一个框架. springmvc全名是spring web mvc,springmvc是spring的一个模块,并且看名字即可知道,springmvc是一个基

springmvc框架原理简介

springmvc框架,先来说说他的好处吧! 首先它是spring框架的一部分,所以整合spring框架时,无需中间整合包.而struts2则需要中间整合包 通过图我们看一下 原理文字描述: 前端页面发送请求前端控制器接收DistacherServlet 前端控制器请求处理器映射器根据url查找处理器 映射器返回HandlerExecutionChain对象给前端控制器 前端控制器会请求适配器执行对应的处理器 适配器执行对应的处理器 处理器返回ModelAndView对象给适配器 适配器返回mo

SpringMVC实例分析

Spring的MVC模块 Spring提供了自己的MVC框架实现,相比Struts.WebWork等MVC模块,Spring的MVC模块显得小巧而灵活.Spring的MVC使用Controller处理用户请求,此处的Controller类似于Struts1.x中的Action.SpringMVC作为Spring框架的一部分,在进行框架整合时不需要像Struts1&2那样特意的去融合到Spring里面,其本身就在Spring里面. 先定义如下各层: 域模型层实体类Cat: 1 package co

快速学习springMVC框架原理

一.通过导图的方法快速去理解springmvc的原理 二.架构流程. 1. 用户发送请求至前端控制器DispatcherServlet 2. DispatcherServlet收到请求调用HandlerMapping处理器映射器. 3. 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet. 4. DispatcherServlet通过HandlerAdapter处理器适配器调用处理器 5. 执行处理器(Contro

SpringMvc流程分析,简单源码分析

SpringMvc的请求入口:web.xml中的DispatcherServlet <servlet> <servlet-name>springServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfi

springmvc框架原理

1.  用户发送请求至前端控制器DispatcherServlet 2.  DispatcherServlet收到请求调用HandlerMapping处理器映射器. 3.  处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet. 4.  DispatcherServlet通过HandlerAdapter处理器适配器调用处理器 5.  执行处理器(Controller,也叫后端控制器). 6.  Controller执

SPRINGMVC原理分析

1,用户发送REQUEST请求至前端控制器DISPATCHERSERVLET(相当于STRUTS2中的核心过滤器FILTER). 2,DISPATCHERSERVLET收到请求调用HANDLERMAPPING(相当于STRUTS2中的ACTION)处理器映射器 来查找HANDLER. 3,处理器映射器找到具体的处理器(可以根据XML配置.注解进行查找),生成处理器对象及处理器拦截器HANDLER(如果有则生成)一并返回给DISPATCHERSERVLET. 4,DISPATCHERSERVLET

框架 day68 SpringMVC入门(框架原理,springmvc和mybatis整合)

第一天:注解开发基础(springmvc入门) springmvc框架原理(掌握) DispatcherServlet前端控制器.HandlerMapping处理器映射器.HandlerAdapter处理器适配器.ViewResolver视图解析器 springmvc入门程序 目标:加深对springmvc三大组件的认识 查询商品信息 重点掌握注解的HandlerMapping处理器映射器.HandlerAdapter处理器适配器(掌握) springmvc和mybatis整合(掌握) 通过一个

springmvc对同名参数处理-我们到底能走多远系列(44)

springmvc对同名参数处理 扯淡: 中断发博客几个月,其实蛮不爽的,可能最近太忙太劳累了些,很多总结也没时间写,今天刚好遇到个小问题,就阅读下源码找找乐.因为考虑到网上大多是提供解决问题的方案,没有实际去看spring源码流程,所以就发个博文记录下,万一以后有同学搜到我的文章能深入看些东西吧. 问题描述: 前端有多个相同name的input: <input type="text" min="1" max="31" name="