在网上浏览了一下,发现这篇文章写的很不错http://exceptioneye.iteye.com/blog/1014123,特此借鉴一下。
SpringMVC框架的核心构件
1、Dispatcher Servlet
2、Controller
3、Handler Mapping
4、ViewResolver & View
5、Interceptors
6、LocalResolver
7、Validate
SpringMVC框架实现的功能
1. 以Controller为中心完成对系统流程的控制管理
2. 对请求数据的收集
3. 对传入的参数进行验证
4.更加请求调用相应的业务逻辑完成数据处理
5. 将处理结果返回给试图
6. 国际化的支持
7. 提供不同视图的支持方案
8. 标签库
9. 拦截器
10. 对文件上传、下载的支持
Spring MVC的原理框图
整个处理过程从一个HTTP请求开始:
1)DispatcherServlet接收到请求后,根据对应配置文件中配置的处理器映射,找到对应的处理器映射项(HandlerMapping),根据配置的映射规则,找到对应的处理器(Handler)。
2)调用相应处理器中的处理方法,处理该请求,处理器处理结束后会将一个ModelAndView类型的数据传给DispatcherServlet,这其中包含了处理结果的视图和视图中要使用的数据。
3)DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将视图要显示的数据传给对应的视图,最后给浏览器构造一个HTTP响应。
DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:
1)截获符合特定格式的URL请求。
2)初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。
3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。
DispatcherServlet是怎么把请求映射到对应的处理器上的?
Spring MVC中的DispatcherServlet收到一个请求后经过HandlerMapping会得到一个处理器链(HandlerExecutionChain)对象。它包括了处理这个请求的处理器和若干个对请求进行拦截处理的拦截器(HandlerInterceptor)。
处理器链的工作原理如下图:
通过图示我们可以发现,处理器链在处理请求的时候首先要经过所有的拦截器,然后通过HandlerAdapter来执行处理器。
HandlerExecutionChain定义了如下的两个接口方法:
Object getHandler():返回处理请求的处理器对象。
HandlerInterceptor[] getInterceptors():返回处理器调用前后的拦截器数组。
拦截器HandlerInterceptor接口定义了如下3个方法:
boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler):在请求到达Handler之前,先执行这个前置方法。
void postHandle(HttpServletRequest request,HttpServletResponse response,Object handler,ModelAndView modelAndView):在请求被处理器执行后执行。
void afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception ex):在相应被渲染后执行。
HandlerAdapter接口定义如下:
ModelAndView handle(HttpServletRequest request,HttpServletResponse response,Object handler):使用处理器处理请求。
boolean supports(Object handler):判断处理器适配器是否支持这个Handler类型。
下面我们回过头来再来了解一下HandlerMapping。HandlerMapping的作用就是根据请求产生一个HandlerExecutionChain。具有如下几个属性:
interceptors:拦截器列表。
defaultHandler:默认处理器。
order:处理器的优先级。
alwaysUseFullPath:boolean类型,用于设定映射是绝对路径还是相对路径。默认值为false,相对路径。
urlPathHelper:指定分析URL时的UrlPathhelper。
相关推荐
在本文中,我们将深入探讨SpringMVC的原理,并尝试通过手写一个简易版来理解其核心机制。 首先,SpringMVC的工作流程如下: 1. 用户发送请求:客户端通过HTTP协议向服务器端发送请求,请求中包含了URL和方法类型...
这个“SpringMVC原理及配置详解Demo”旨在深入解析SpringMVC的工作机制和配置过程,帮助开发者更好地理解和应用这一强大的Web开发工具。 **SpringMVC核心组件** 1. **DispatcherServlet**: SpringMVC的前端控制器,...
SpringMVC是Spring框架的一个模块,专...通过这个项目,开发者可以深入理解SpringMVC的工作原理,并能够运用到自己的Web开发实践中。通过动手实践,你可以更有效地掌握SpringMVC的每一个组件和功能,提升你的编程技能。
SpringMVC是Spring框架的一个重要模块,用于构建Web应用程序。这个"非常全面的SpringMVC学习JAR包合集"提供了开发SpringMVC项目所...通过学习和实践,你可以深入理解SpringMVC的工作原理,掌握Web应用开发的关键技能。
### SpringMVC基础知识详解 #### 一、SpringMVC概览 **SpringMVC**是Spring框架中的一个重要组成部分,主要用于构建Web应用程序。...通过这些内容的学习,可以帮助初学者快速入门并掌握SpringMVC的基本用法。
对于初学者来说,这是一个很好的实践平台,通过查看和运行这些代码,可以加深对SpringMVC工作原理的理解。同时,结合人工智能的标签,可能还涉及到如何将SpringMVC应用于AI相关的Web应用,如机器学习模型的API接口...
在提供的 "springMVC.rar" 和 "springmvc3.0资料.zip" 文件中,您可以找到详细的教程文档、代码示例、练习项目等资源,帮助您逐步深入理解和掌握 Spring MVC。通过这些学习资料,您将能够独立地开发和维护基于 ...
在"springmvc-学习指南(第二版)源码"中,你可以找到关于Spring MVC的详细示例和代码实现,这些资源对于深入理解和学习该框架非常有帮助。 在"描述"中提到,这个源码包含书中的各种实例,可以在Spring Tool Suite ...
通过以上知识点的学习,我们不仅了解了SpringMVC的基本原理和用法,还掌握了如何将其应用于实际项目中,包括与MyBatis的整合、注解开发、高级特性等。这有助于我们在实际工作中更加熟练地运用SpringMVC框架。
在这个"SpringMvc学习系列整合源码"中,你将有机会深入理解SSM(Spring、SpringMVC、MyBatis)框架的集成和工作原理。 首先,Spring作为基础框架,负责管理应用的组件,包括依赖注入(DI)和面向切面编程(AOP)。...
让我们深入了解一下SpringMVC的核心概念和工作原理。 1. **DispatcherServlet**:SpringMVC的入口点,它是一个前端控制器,负责接收所有HTTP请求,并根据配置的映射规则分发到相应的处理器。 2. **Model-View-...
2. springmvc框架原理 前端控制器、处理器映射器、处理器适配器、视图解析器 3. springmvc入门程序 目的:对前端控制器、处理器映射器、处理器适配器、视图解析器学习 非注解的处理器映射器、处理器适配器 注解...
学习源码部分,你可以深入了解SpringMVC的内部工作原理,包括DispatcherServlet、HandlerMapping、HandlerAdapter等关键类的源码,这将有助于提升你对SpringMVC的理解和使用技巧。在解决乱码问题时,要注意请求编码...
本学习笔记将深入探讨SpringMVC的核心概念、配置、工作原理以及实际应用。 一、SpringMVC概述 SpringMVC是Spring框架的一部分,它提供了处理HTTP请求、数据绑定、异常处理等能力。通过使用SpringMVC,开发者可以将...
**SpringMVC学习框架概述** SpringMVC是Spring框架的一部分,是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。它提供了一种组织应用代码的结构,简化了处理HTTP请求和响应的过程,使得开发人员可以更加...
以上就是 SpringMVC 的基本工作原理和配置过程。通过这些知识点,我们可以搭建起一个简单的 SpringMVC 应用来处理 HTTP 请求,实现数据的传递和视图的渲染。在实际开发中,还会涉及到更多的高级特性,如拦截器...
SpringMVC是Java EE开发中一个非常重要的Web MVC框架,由Spring Framework提供,主要用于构建表现层。对于初学者来说,理解其...对于初学者,深入理解SpringMVC的工作原理和组件交互,是掌握Java EE开发的关键步骤。
通过学习这些文档,你可以全面了解SpringMVC的工作原理,掌握如何利用它来构建高效、可维护的Web应用程序。理解MVC模式能帮助你更好地组织代码,提高开发效率;熟悉SpringMVC的配置和API能让你在项目中更加游刃有余...
本《SpringMVC学习指南》的源代码旨在帮助开发者深入理解SpringMVC的工作原理和实践技巧。 1. **SpringMVC简介** SpringMVC通过解耦业务逻辑、数据处理和用户界面,简化了Web应用的开发。它将请求转发给处理器,...
本篇笔记主要介绍了 SpringMVC 的核心组件、工作原理以及实现 HelloWorld 示例。 1. SpringMVC 主要组件: - 前端控制器 (DispatcherServlet):作为整个 MVC 框架的入口点,它负责接收来自用户的请求,然后根据...