SpringMVC工作流程

图一:请求流程概述

图二:请求在每个组件的处理

解释Spring工作流程

1.用户向服务器发送请求,请求被spring前端控制Servelt DispatcherServelt捕获

2.DispatcherServelt解析URL得到URI(资源标识符),根据URI找到对应的要处理的Handler和相关对象(包括handler和对应的拦截器),最后以handlerExecutionChain对象的形式返回

3.DispatcherServelt根据的得到的Handler,选择合适的HandlerAdapter(如果成功找到HandlerAdapter后,将开始执行拦截器的preHandler方法)

4.提取Request中的模型数据,填充handler入参,开始执行Handler(controller),在填充参数入handler时,会帮你进行HttpMessageConveter(将请求消息转换成一个对象,将对象转换成指定的响应信息)数据验证,数据格式化,数据转换

5.handler执行完毕,返回一个ModelAndView对象给dispatcherServelt

6.dispatcherServelt根据返回的ModelAndView对象,找到一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServelt

7.ViewResolver结合Model和View来进行渲染视图

8.将渲染结果返回给前端

问:Spring为什么要结合HandlerMapping和HandlerAdapter来处理Handler?

答:符合面向对象的单一职责,代码结构清晰,可复用性高,HandlerAdapter可被用于处理各种Handler

1.dispatcherServelt接到请求,先查找合适的处理程序来处理请求,DispatcherServelt通过一个或者多个处理程序映射,将每个请求映射到处理程序中,处理程序映射配置在web应用程序的上下文中,是实现了HandlerMapping接口的bean,他负责为请求返回一个适当的处理程序(也就是controller)。处理程序映射通常根据请求的url将请求映射到处理程序

2.一旦dispatcherServelt找到合适的controller,就会调用这个controller来处理请求

3.控制器处理完请求之后,会把model和view返回给DispatcherServelt,model包含了控制器要传递给视图进行显示的属性,如果返回的是view名称,他会被解析成视图对象进行展示,绑定模型和视图的基本类就是MOdelAndView

4.当DispatcherServelt接收到模型和视图名称时,他会将逻辑视图名称解析成视图对象在进行呈现,DispatcherServelt从一个或者多个视图解析器中解析视图,视图解析器配置在web应用程序上下文中,是实现了ViewResolver接口的bean,他的任务是根据逻辑视图名称返回视图对象

5.当DispatcherServelt将视图名称解析成视图对象,他就会呈现视图对象,并传递控制器返回的模型,视图的任务是将模型属性展示给用户

问:DispatcherServelt接到请求后如何映射到controller?

在Spring MVC中,web请求被web应用程序上下文中声明的一个或者多个处理程序映射bean(实现了了HandlerMapping接口的)映射到controller,spring提供了几种HandlerMapping的实现:

1.BeanNameUrlHandlerMapping:根据controller bean名称中指定的url模式将请求映射到处理程序中

2.ControllerClassNameHandlerMapping:按控制器类名称映射请求

3.SimpleUrlHandlerMapping:用定制的映射定义来映射请求

Spring MVC 请求处理流程概览的更多相关文章

  1. Spring MVC请求处理流程

    从web.xml中 servlet的配置开始, 根据servlet拦截的url-parttern,来进行请求转发   Spring MVC工作流程图   图一   图二    Spring工作流程描述 ...

  2. Spring mvc请求处理流程详解(一)之视图解析

      本文链接:https://blog.csdn.net/lchpersonal521/article/details/53112728 前言 Spring mvc框架相信很多人都很熟悉了,关于这方面 ...

  3. ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程

    好听的歌 我一直觉得看一篇文章再听一首好听的歌,真是种享受.于是,我在这里嵌入一首好听的歌,当然你觉得不想听的话可以点击停止,歌曲 from 王菲 <梦中人>: --> 开篇:上一篇 ...

  4. spring mvc处理流程概述

    大部分Java应用都是Web应用,展现层是Web应用不可忽略的重要环节.Spring为展现层提供了一个优秀的Web框架-Spring MVC.和众多其他Web框架一样,它基于MVC设计理念,此外,它采 ...

  5. ASP.Net MVC请求处理流程

    ASP.Net MVC请求处理流程 好听的歌 我一直觉得看一篇文章再听一首好听的歌,真是种享受.于是,我在这里嵌入一首好听的歌,当然你觉得不想听的话可以点击停止,歌曲 from 王菲 <梦中人& ...

  6. Spring MVC 编程流程步骤

    Spring MVC 编程流程步骤 1. 建立Maven工程 2. 添加Spring MVC依赖 <dependencies> <dependency> <groupId ...

  7. asp.net mvc 请求处理流程,记录一下。

    asp.net mvc 请求处理流程,记录一下.

  8. 一文读懂Spring MVC执行流程

    说到Spring MVC执行流程,网上有很多这方面的文章介绍,但是都不太详细,作为一个初学者去读会有许多不理解的地方,今天这篇文章记录一下我学习Spring MVC的心得体会 话不多说,先上图:   ...

  9. Java——一文读懂Spring MVC执行流程

    说到Spring MVC执行流程,网上有很多这方面的文章介绍,但是都不太详细,作为一个初学者去读会有许多不理解的地方,今天这篇文章记录一下我学习Spring MVC的心得体会 话不多说,先上图: Sp ...

随机推荐

  1. 老李分享:大数据框架Hadoop和Spark的异同 2

    Spark数据处理速度秒杀MapReduce Spark因为其处理数据的方式不一样,会比MapReduce快上很多.MapReduce是分步对数据进行处理的: ”从集群中读取数据,进行一次处理,将结果 ...

  2. 手机自动化测试:Appium源码分析之跟踪代码分析五

    手机自动化测试:Appium源码分析之跟踪代码分析五   手机自动化测试是未来很重要的测试技术,作为一名测试人员应该熟练掌握,POPTEST举行手机自动化测试的课程,希望可以训练出优秀的手机测试开发工 ...

  3. (转)Java ConcurrentModificationException异常原因和解决方法

    转载自:http://www.cnblogs.com/dolphin0520/p/3933551.html 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会 ...

  4. 纯JS写最简单的图片轮播

    非常简单的一个大图轮播,通过将控制显示位置来进行轮播效果,写来给正在学习的新手朋友们参考交流. 先看效果:(实际效果没有这么快) 先看布局: <div id="display" ...

  5. js实现文本框溢出文字用省略号(...)表示

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. DC平衡双向控制串行器 转接IC GM8913:LVTTL转FPD-LINK III芯片

    1 概述     GM8913型DC平衡双向控制串行器,其主要功能是实现将10或12位并行控制信号和一路时钟信号串行为一路2.8Gbps高速串行数据:同时接收低速通道信号实现模式配对的功能.芯片内部集 ...

  7. SpringMVC 自定义全局日期转换器

    第一步: 编写自定义转换器的类 /* * 自定义日期转换器 */ public class CustomDateConverter implements Converter<String, Da ...

  8. JavaScript基础学习(九)—DOM

    一.DOM概述      DOM(Document Object Model)文本对象模型.      D: 文档,HTML文档或XML文档.      O: 对象,document对象的属性和方法. ...

  9. Neuron:Neural activities in V1 create a bottom-up saliency map

    Neural activities in V1 create a bottom-up saliency map 本文证明了人类的初级视皮层可以在视觉信息加工的非常早期阶段,生成视觉显著图,用以引导空间 ...

  10. 【Hololens】微软Hololens虚拟现实视频集

    混合虚拟现实(Hololens眼镜) 微软还是混合虚拟现实的行业领导者,Hololens眼镜在很多行业有了令人印象深刻的应用和演示.譬如: Hololens中文宣传片: https://pan.bai ...