Spring MVC处理的流程:

具体执行步骤如下:

  1 首先用户发送请求给前端控制器,前端控制器根据请求信息(如url)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的1、2步骤

  2 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在spring web mvc中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;

     处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图中3、4、5步骤

  3 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图中的6、7步骤

  4 前端控制器再次收回控制权,将响应返回给用户,图中的步骤8

Spring MVC 的运行原理

  

  1. 首先,用户向服务器发送请求,请求被前端控制器DispatcherServet截获
  2.  
  3.  
      DispatcherServlet没有业务处理的能力,调用HandlerMapping处理器映射器
  4.  
  5.   HandlerMapping根据xml配置和注解找到具体的Handler,并将处理器执行链(包括Handler和拦截器数组)返回给DispatcherServlet
  6.  
  7.   
      DispatcherServlet调用HandlerAdapter处理器适配器
  8.  
  9.   HandlerAdapter经过适配器调用具体的处理器(Controller,也称后端控制器)
  10.  
  11.   Controller执行完返回ModleAndView
  12.  
  13.   HandlerAdapterModleAndView返回给DispatcherServlet
  14.  
  15.   
      DispatcherServletModleAndView传给ViewReslover视图解析器
  16.  
  17.   ViewReslover解析后返回具体的View
  18.  
  19.   Dispatcher根据View进行视图渲染(将Modle填充至View
  20.  
  21.   
      DispatcherServlet响应用户

springMVC执行细节:

  DispatcherServlet在执行时会加载默认的配置文件:DispatcherServlet.properties来加载相关组件

     可以在springMVC-servlet.xml中更改配置:

  1. <!-- 视图解析器 -->
  2. <bean
  3. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  4. <property name="prefix" value="/WEB-INF/jsp/" />
  5. <property name="suffix" value=".jsp" />
  6. </bean>
  7. <!-- 处理器映射器 -->
  8. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
  9. <!-- 处理器适配器 -->
  10. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>

    也可以使用注解驱动来代替上面的 处理器映射器 和处理器适配器的配置:

  1. <!-- 配置注解驱动 -->
  2. <mvc:annotation-driven />

Spring MVC 底层原理的更多相关文章

  1. (4.1)Spring MVC执行原理和基于Java的配置过程

    一.Spring MVC执行原理和基于Java配置的配置过程 (一)Spring MVC执行过程,大致为7步. 所有的请求都会经过Spring的一个单例的DispacherServlet. Dispa ...

  2. Spring MVC简单原理

    Spring MVC原理 针对有Java Web基础.Spring基础和Spring MVC使用经验者. 前言 目前基于Java的web后端,Spring生态应该是比较常见了.虽然现在流行前后端分离, ...

  3. Spring Aop底层原理详解

    Spring Aop底层原理详解(来源于csdn:https://blog.csdn.net/baomw)

  4. 拜托!面试请不要再问我Spring Cloud底层原理[z]

    [z]https://juejin.im/post/5be13b83f265da6116393fc7 拜托!面试请不要再问我Spring Cloud底层原理 欢迎关注微信公众号:石杉的架构笔记(id: ...

  5. spring Mvc 执行原理 及 xml注解配置说明 (六)

    Spring MVC 执行原理 在 Spring Mvc 访问过程里,每个请求都首先经过 许多的过滤器,经 DispatcherServlet 处理; 一个Spring MVC工程里,可以配置多个的 ...

  6. MVC底层原理

    窥探ASP.Net MVC底层原理 实现跨越Session的分布式TempData 1.问题的引出 我相信大家在项目中都使用过TempData,TempData是一个字典集合,一般用于两个请求之间临时 ...

  7. spring AOP底层原理实现——jdk动态代理

    spring AOP底层原理实现——jdk动态代理

  8. Spring AOP底层原理

    ------------------siwuxie095                                 Spring AOP 底层原理         AOP 即 Aspect Or ...

  9. Spring IoC底层原理

    -------------------siwuxie095                                 Spring IoC 底层原理         1.IoC 即 Invers ...

随机推荐

  1. ASIHTTPRequest缓存策略download cache

    本文为大家介绍了iOS开发ASIHTTPRequest使用download cache的内容,其中包括cache策略,存储策略,其他cache相关的特性,编写自己的cache等等内容. 从1.8版本开 ...

  2. influxdb基本操作

    名词解释 在具体的讲解influxdb的相关操作之前先说说influxdb的一些专有名词,这些名词代表什么. influxDB名词 database:数据库: measurement:数据库中的表: ...

  3. diary of django

    1.安装django -> pip install django ----- 某些时候竟然需要FQ 2.JsonResponse 需要    (不需要了,django.http自带) pip i ...

  4. Kotlin Reference (十二) Extensions

    most from reference Kotlin与C#和Gosu类似,提供了扩展一个新功能的类,而不必继承类或使用任何类型的设计模式,如Decorator(装饰者模式).这是通过称为扩展的特殊声明 ...

  5. test20181004 苹果树

    题意 分析 对每个点维护子树所能达到的dfn最大值.最小值.次大值.次小值,然后就可以计算原树中每个点与父亲的连边对答案的贡献. 如果子树中没有边能脱离子树,断掉该边与任意一条新加的边都成立,答案就加 ...

  6. 用pthon来写个跳板机

    用pthon来写个跳板机   1.需求 程序一:1.后台管理- 堡垒机上创建用户和密码(堡垒机root封装的类,UserProfile表)- .bashrc /usr/bin/python3 /dat ...

  7. IE7下对某些seajs压缩文件不兼容的解决方法

    seajs.config({ comboExcludes: /common.js/ }) (杨磊哥提供)

  8. 实习第二天-今年第一场雨-方法的重载(马上想到println()函数和abs(函数))

    在C语言中 调用函数abs()返回一个整数的绝对值, fabs(返回一个单精度浮点型的绝对值)若要返回这些数的绝对值,则必须记住这些函数的名字 java可以用方法的重载:即是方法名必须相同,参数必须不 ...

  9. USB设备驱动_WDS

    1. usb_alloc_dev中的 bus_type 中指定了匹配函数,和uevent中的环境参数. ====>不同的bus_type的匹配函数可能是不同的,uevent的环境变量参数也可能是 ...

  10. day37 mysql数据库学习

    3.什么是数据库 用来存储数据的仓库 数据是以文件的形式保存 海峰补充内容   ↓ 4 数据库服务器.数据管理系统.数据库.表与记录的关系(重点理解!!!) 记录:1 刘海龙  324245234 2 ...