Spring MVC 流程

1. 检查是否为上传文件。

2. 通过HandlerMapping获取HandlerExecutionChain:

DispatcherServlet 中包含:handlerMappings ,

遍历获取正确的:HandlerMapping(RequestMappingHandlerMapping ) ,

具体的handleMapping中包含:handlerMap ;

handlermap中为键值对:path = 对应的controller,例如:/hello/[email protected]

得到请求对应的HandlerExecutionChain,HandlerExecutionChain中包含:

1). interceptors:

2). 对应的controller实例

3. HandlerAdapter:

1). 将[email protected]传给获取适配器方法,遍历DispatcherServlet的handlerAdapters ,判断启用的是哪种Adapter,

继承Controller的还是注解的

2). 根据合适的Adater获取ServletHandlerMethodResolver:

org.springfram[email protected]156b510 的 methodResolverCache:

{class com.mumu.controller.HelloController=org.springframework.web.servlet.mvc.annotat[email protected]15c2d4e}

3). ServletHandlerMethodResolver,在它里面存储了方法和注释的关系

org.springframework.web.servlet.mvc.annotat[email protected]15c2d4e

[public java.lang.String com.mumu.controller.HelloController.hello3(javax.servlet.http.HttpServletRequest)=[/hello3.htm], public java.lang.String

com.mumu.controller.HelloController.hello2(java.lang.String,org.springframework.ui.Model)=[/hello2.htm], public java.lang.String

com.mumu.controller.HelloController.hello(java.lang.String,java.util.Map)=[/hello1.htm],

public java.lang.String com.mumu.controller.HelloController.hello(java.lang.String)=[/hello.htm]]

4. 将上面信息汇总,反射调用方法,获取返回值

5. 返回值交给视图解析器去解析:InternalResourceViewResolver

时间: 2024-11-07 04:36:57

Spring MVC 流程的相关文章

spring MVC流程

Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获: 2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI).然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回: 3. DispatcherServlet 根据获得

Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二)

在上一篇文章中我详细的介绍了如何搭建maven环境以及生成一个maven骨架的web项目,那么这章中我将讲述Spring MVC的流程结构,Spring MVC与Struts2的区别,以及例子中的一些配置文件的分析. 一.Spring MVC 3.0介绍 Spring MVC是一个典型的MVC框架,是Spring内置的Web框架,可以作为应用项目的展示层,继Spring 2.0对Spring MVC进行重大升级后,Spring 2.5又为Spring MVC引入了注解驱动功能,再到3.0时代,全

[学习笔记]spring mvc 与struts2比较

Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二) 在上一篇文章中我详细的介绍了如何搭建maven环境以及生成一个maven骨架的web项目,那么这章中我将讲述Spring MVC的流程结构,Spring MVC与Struts2的区别,以及例子中的一些配置文件的分析. 一.Spring MVC 3.0介绍 Spring MVC是一个典型的MVC框架,是Spring内置的Web框架,可以作为应用项目的展示层,继Spring 2.0对Spring

Spring MVC 原理介绍(执行流程)

Spring MVC工作流程图 图一 图二  Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获: 2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI).然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回: 3.

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

前言 Spring mvc框架相信很多人都很熟悉了,关于这方面的资料也是一搜一大把.但是感觉讲的都不是很细致,让很多初学者都云里雾里的.本人也是这样,之前研究过,但是后面一段时间不用发现又忘记了.所以决定写下来,以备后用. 本系列文基于spring-4.3.1,配置方式全部基于java-based方式 从配置讲起 先上一段配置的代码: @EnableWebMvc @Configuration public class MvcConfig extends WebMvcConfigurerAdapt

spring mvc控制框架的流程及原理2: 例子说明

spring mvc运行步骤: 首先用户发送请求http://localhost:8080/hello——>web容器,web容器根据“/hello”路径映射到DispatcherServlet(url-pattern为/)进行处理: DispatcherServlet——>BeanNameUrlHandlerMapping进行请求到处理的映射,BeanNameUrlHandlerMapping将“/hello”路径直接映射到名字为“/hello”的Bean进行处理,即HelloWorldCo

spring mvc控制框架的流程及原理1: 总概及源码分析

主要介绍spring mvc控制框架的流程及原理 Spring Web MVC处理请求的流程 具体执行步骤如下: 首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分:图2-1中的1.2步骤: 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理:处理完毕后返回一个Model

spring mvc的工作流程

Spring MVC工作流程图 图一 图二  Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获: 2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI).然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回: 3.

Spring MVC请求处理流程

从web.xml中 servlet的配置开始, 根据servlet拦截的url-parttern,来进行请求转发 Spring MVC工作流程图 图一 图二  Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获: 2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI).然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handle