`
苹果超人
  • 浏览: 200244 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring MVC请求处理流程图

 
阅读更多

1. 当DispatcherServlet接到请求时,他先回查找适当的处理程序来处理请求。DispatcherServlet通过一个或者多个处理程序映射,将每个请求映射到处理程序中。处理程序映射配置在web应用程序的上下文中,是实现了HandlerMapping接口的Bean。它负责为请求返回一个适当的处理程序(也就是Controller)。处理程序映射通常根据请求的URL将请求映射到处理程序(Controller)。
2. 一旦DispatcherServlet选择了适当的控制器,它就会调用这个控制器来处理请求。
3. 控制器处理完请求后,会将模型和视图名(有时候是视图对象)返回给DispatcherServlet。模型包含了控制器要传递给视图进行显示的属性。如果返回的是视图名称,它会被解析成视图对象再进行呈现。绑定模型和视图的基本类是ModelAndView
4. 当DispatcherServlet接收到模型和视图名称时,它会将逻辑视图名称解析成视图对象再进行呈现。DispatcherServlet从一个或者多个视图解析器中解析视图。视图解析器配置在Web应用程序上下文中,是实现了ViewResolver接口的Bean。它的任务是根据逻辑视图名称返回试图对象。
5. 一旦DispatcherServlet将视图名称解析称为试图对象,它就会呈现视图对象,并传递控制器返回的模型。视图的任务是将模型属性展示给用户。

DispatcherServlet接到请求后如何映射到Controller呢?
在Spring MVC中,Web请求被Web应用程序上下文中声明的一个或者多个处理程序映射Bean(是吸纳了HandlerMapping接口的Bean)映射到Controller。Spring MVC提供了几种HandlerMapping实现:
1. BeanNameUrlHandlerMapping(默认情况),他根据Controller Bean名称中指定的URL模式将请求映射到处理程序上。
eg. <bean name="/welcome.htm" class="com.kevin.controller.WelcomeController">...</bean>
当你访问http://******/welcome.htm这个URL时,DispatcherServlet通过BeanNameUrlHandlerMapping映射就找到了WelcomeController。
2. ControllerClassNameHandlerMapping,它是按控制器类名称映射请求。
3. SimpleUrlHandlerMapping,用定制的映射定义来映射请求。


下面我们就来看一下Controller。


Controller接口是Spring MVC中所有控制器类的基本接口。通过实现这个接口,你可以创建自己的控制器。在handleRequest()方法中,可以随意地处理Web请求。

AbstractController:如果你想让控制器具备一些基本的特性,如过滤受支持的HTTP方法(GET,POST和HEAD),以及在HTTP响应中生成cache-control头部等,你可以让它扩展AbstractController类。

ParameterizableViewController:用来创建带有参数化视图的控制器。

SimpleFormController:它支持命令对象的概念(commandName),并且可以将表单域的值绑定到命令对象的同名属性上。

AbstractWizardFormController:为向导表单的处理定义了基本的任务。向导表单有多个单页,因此必须为向导表单控制器定义多个页面视图。然后这个控制器可以跨越所有这些表单页面来管理表单状态。向导表单会有多个动作,不像SimpleFormController只有单个提交动作。AbstractWizardFormController会根据特殊的请求参数决定用户的动作,通常是用提交按钮的名称来指定动作的。
_finished: 完成向导表单。
_cancel: 取消向导表单。
_targetx: 进入目标页面,这里的x是从0开始的页面索引。

MultiActionController:允许你将多个相关的动作分组到一个控制器中。

常见的视图类型:


几种常见的ViewResolver的解析:
1. InternalResourceViewResolver: 根据URL解析视图。通过添加前缀和后缀的方法,将每个视图名称都映射到一个URL上。
2. XmlViewResolver: 从XML配置文件中解析视图。将视图声明成Spring的Bean,并按他们的Bean Name进行解析。
3. ResourceBundleViewResolver: 从ResourceBundle中解析视图。
4. 用多个视图解析器解析视图, 需要注意的是,您需要为你配置的视图解析器配置解析的优先级。<property name="order" value="0"/> value越小,优先级越高。
分享到:
评论
1 楼 IT_LDB 2014-01-17  
   ......    新手来学习...

相关推荐

    Spring MVC 教程快速入门 深入分析

    三、Spring MVC核心流程图:描述了Spring MVC处理请求的流程,包括前端控制器接收请求,经过分发器分发给具体的控制器,然后由控制器处理业务逻辑,最后将结果返回给用户。 四、Spring MVC DispatcherServlet说明:...

    基于Spring + Spring MVC + MyBatis的图书馆管理系统

    Spring MVC + MyBatis的图书馆管理系统,充分展示了Java企业级开发的强大之处,通过合理的技术选型和设计模式,实现了功能完善的图书管理服务,同时也为开发者提供了良好的开发体验和高效的开发流程。

    Spring MVC入门教程

    三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置文件片段讲解 七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc...

    Spring MVC 教程 快速入门 深入分析

    三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置文件片段讲解 七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc...

    spring mvc 的入门级资料

    在 Spring MVC 中,核心流程图如下: 1. 客户端发送 HTTP 请求 2. DispatcherServlet 接收到请求,并将其转发给 HandlerMapping 3. HandlerMapping 将 URL 映射到 Controller 中的方法上 4. HandlerAdapter 将 ...

    第二章 Spring MVC 增改查实例

    总结,Spring MVC 提供了一套完整的 Web 开发解决方案,通过注解驱动和依赖注入简化了开发流程。通过实例化的增删改查操作,我们可以深入了解其工作原理,并结合源码分析,进一步掌握 Spring MVC 的精髓。

    一个完整的Spring MVC的CRUD操作实例

    它基于Spring框架,提供了模型-视图-控制器(MVC)架构模式,简化了从前端到后端的数据处理流程。本实例将深入探讨如何实现一个完整的Spring MVC CRUD操作。 首先,我们来了解CRUD操作的基本概念。CRUD是Create...

    综合spring mvc + spring + hibernate + bootstrap开发图书管理系统

    最后,使用Spring MVC创建控制器(Controller),处理HTTP请求,结合Bootstrap设计用户界面。 为了实现图书管理的各项功能,可能涉及到以下具体知识点: 1. **用户认证与授权**:利用Spring Security进行权限控制...

    Spring MVC运行流程

    Spring MVC 的运行流程涉及多个组件协同工作,确保了请求的正确处理和响应的生成。以下是详细的步骤解释: 1. **启动阶段**:当客户端(通常是浏览器)发起一个HTTP请求时,请求首先被Web应用服务器接收。如果请求...

    spring mvc过程详解

    1. **拦截器**:Spring MVC 支持多种类型的拦截器,包括但不限于预处理拦截器、后处理拦截器等,它们可以在请求处理前后执行自定义的逻辑。 2. **异常处理**:Spring MVC 提供了多种机制来处理异常,可以通过自定义...

    Spring MVC Demo

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了...通过学习和实践这个Demo,你可以更好地理解Spring MVC的运作机制,以及如何利用Gradle来优化项目构建流程。

    activiti、spring mvc 基础web项目

    在业务逻辑处理上,Spring MVC控制器会接收到前端的请求,根据请求内容调用Activiti的API,比如启动流程实例、查询当前任务、完成任务等。此外,还可以通过监听Activiti的事件,例如任务分配、流程结束等,实现...

    02-01-06-一步一步手绘Spring MVC运行时序图1

    在这个课程中,我们将深入理解Spring MVC的核心原理和设计思想,通过手绘Spring MVC的运行时序图来帮助我们更好地掌握其重要细节。 首先,让我们从Spring MVC的基础开始。Spring MVC的核心组件包括...

    【预习资料】一步一步手绘Spring MVC运行时序图.docx

    首先,了解Spring MVC的请求处理流程至关重要。当一个HTTP请求到达服务器,Spring MVC会通过一系列组件协同工作来处理请求。这一过程包括: 1. **MultipartResolver**:处理多部分表单数据,如上传文件。 2. **...

    SpringMVC框架架构介绍

    Spring MVC可以无缝处理AJAX请求,通过配置和注解来定义JSON或XML的响应格式。 十一、配置文件: SpringMVC.xml是核心配置文件,用于配置DispatcherServlet、拦截器、视图解析器等组件。 十二、获取Spring管理的...

    【预习资料】一步一步手绘Spring MVC运行时序图.pdf

    首先,我们探讨Spring MVC的请求处理流程。当一个HTTP请求到达服务器,Spring MVC会通过一系列组件协同工作来处理这个请求。1.1章节中,我们将初探这一过程:请求被DispatcherServlet捕获后,它将根据配置的...

    基于 Spring MVC 和 MyBatis 的图书馆管理简单系统,功能齐全且很容易上手

    借阅过程中,Spring MVC 负责处理请求,MyBatis 处理数据的增删改查,确保数据的准确无误。 4. 统计分析:系统提供各类统计报表,如图书借阅频率、借阅期限分布等,帮助管理员了解图书馆的运营情况,为决策提供数据...

    Spring MVC学习笔记MD.7z

    `img` 文件夹很可能包含了一些示例截图或者流程图,帮助解释一些复杂的概念,比如请求处理流程、视图解析机制等。 学习Spring MVC,你需要理解的核心概念包括: 1. **DispatcherServlet**:作为Spring MVC的前端...

    spring mvc的相关教程

    三、Spring MVC工作流程 1. 用户发送HTTP请求到DispatcherServlet。 2. DispatcherServlet根据HandlerMapping找到对应的Controller。 3. Controller处理请求,可能涉及数据库操作、业务逻辑处理等。 4. Controller...

Global site tag (gtag.js) - Google Analytics