一、springMVC介绍
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
二、Spring工作流程描述
1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;
2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;
3. DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)
4. 提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息
数据转换:对请求消息进行数据转换。如String转换成Integer、Double等
数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等
数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中
5. Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;
6. 根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;
7. ViewResolver 结合Model和View,来渲染视图
8. 将渲染结果返回给客户端。
时序图
三、SpringMVC接口解释
DispatcherServlet接口:
Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。
HandlerMapping接口:
能够完成客户请求到Controller映射。
Controller接口:
需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。
ViewResolver接口:
Spring提供的视图解析器(ViewResolver)在Web应用中查找View对象,从而将相应结果渲染给客户。
四、Spring MVC优势:
1、清晰的角色划分:前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器( Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。
2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;
3、由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象;
4、和Spring 其他框架无缝集成,是其它Web框架所不具备的;
5、可适配,通过HandlerAdapter可以支持任意的类作为处理器;
6、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;
7、功能强大的数据验证、格式化、绑定机制;
8、利用Spring提供的Mock对象能够非常简单的进行Web层单元测试;
9、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。
10、强大的JSP标签库,使JSP编写更容易。
11、RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。
相关推荐
### 注解的SpringMVC介绍 #### SpringMVC框架概述 SpringMVC是一个基于`DispatcherServlet`的MVC(Model-View-Controller)框架,它主要用于构建基于Java的应用程序中的Web层逻辑。在这个框架中,每一个HTTP请求...
spring的入门介绍 Spring为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一 • Spring3.0后全面超越Struts2,成为最优秀的MVC框架 • Spring MVC通过一套MVC注解,让POJO成为处理请求的...
SpringMVC_1_开发环境搭建 共41页.pptx SpringMVC_2_HelloWorld 共19页.pptx SpringMVC_3_方法入参 共41页.pptx SpringMVC_4_方法返回值 共25页.pptx SpringMVC_5_常用注解 共22页.pptx SpringMVC_6_数据校验 共26页...
一、SpringMVC介绍 SpringMVC是Spring框架的一部分,作为轻量级的Java Web MVC(Model-View-Controller)框架,它提供了一种模型驱动的方式来处理HTTP请求和响应。SpringMVC通过DispatcherServlet接收请求,然后根据...
**SpringMVC介绍** SpringMVC是模型-视图-控制器(MVC)架构模式的一个实现,它允许开发者将业务逻辑、用户界面和控制逻辑分离。SpringMVC通过DispatcherServlet接收HTTP请求,然后根据配置的映射规则分发到相应的...
1、SpringMVC介绍 2、入门程序 3、SpringMVC架构讲解 a)框架结构 b)组件说明 4、SpringMVC整合MyBatis 5、参数绑定 a)SpringMVC默认支持的类型 b)简单数据类型 c)Pojo类型 d)Pojo包装类型 e)自定义参数绑定 6、...
【SpringMVC框架架构介绍】 SpringMVC是一个广泛使用的Java Web开发框架,它遵循Model-View-Controller(MVC)设计模式,简化了构建可维护和高性能的企业级应用程序的复杂性。以下是SpringMVC框架的一些核心概念和...
SpringMVC 介绍与快速入门 SpringMVC 是一个基于 Spring 的 Web 层 MVC 框架,旨在简化 Web 应用程序的开发。SpringMVC 的主要特点包括易用性、高效率、低耦合设计、支持 REST 风格的 URL 请求等。下面是 SpringMVC...
1. **SpringMVC介绍** SpringMVC是Spring框架的一部分,它为构建Web应用程序提供了模型-视图-控制器(MVC)架构。SpringMVC通过DispatcherServlet作为前端控制器,接收请求并分发到相应的处理器,处理完成后将结果...
2. **SpringMVC介绍** - **SpringMVC**是Spring框架的一部分,专门为Web应用提供了灵活的MVC实现。它继承了Spring框架的核心特性,如依赖注入(DI)和面向切面编程(AOP),并且简化了Web应用的开发过程。 - **...
本文档旨在详细介绍 Spring、SpringMVC 和 Hibernate 框架的集成,旨在帮助开发人员快速了解这三个框架的集成过程。 Spring 框架 Spring 框架是一个 Java 语言的开源框架,旨在简化 Java 应用程序的开发。Spring ...
二、SpringMVC介绍 SpringMVC是Spring框架的一部分,是一个用于构建Web应用的Model-View-Controller(MVC)架构。SpringMVC通过依赖注入(DI)和面向切面编程(AOP)等特性,简化了Java Web开发,降低了组件之间的...
**SpringMVC详解** SpringMVC是Spring框架的一部分,它是一个用于构建Web应用程序的轻量级、模型-视图-控制器(MVC)架构。在本文中,我们将深入探讨SpringMVC的核心概念、工作原理以及如何在实际项目中应用。 **1...
SpringMVC介绍** SpringMVC是Spring框架的一部分,提供了一个模型-视图-控制器(MVC)架构,使开发者可以更方便地处理Web应用程序中的业务逻辑和视图呈现。它具有依赖注入、AOP(面向切面编程)支持、数据验证和...
6. AOP在SpringMVC中的应用:介绍如何利用Spring的面向切面编程特性进行日志记录、事务管理等。 总之,《黑马程序员SpringMVC课堂笔记》全面覆盖了SpringMVC的基本概念、配置、开发模式和实践技巧,对于初学者和...
本指南提供了 SpringMVC 的核心思想、框架特点、入门示例、参数传递、标签介绍、拦截器、类型转换、JSON 格式数据的输入和输出、文件上传、国际化和本地化、验证等方面的知识点,旨在帮助开发者快速掌握 SpringMVC ...
9. **MyBatis集成**:作为此次资料的主体,MyBatis是另一款流行的持久层框架,会介绍如何与SpringMVC整合,实现DAO层操作,包括SqlSession管理、Mapper接口的使用等。 源代码部分可能包含上述概念的实际示例,帮助...
7. **RESTful Web服务**:介绍如何利用SpringMVC创建符合REST原则的API。 最后,《跟我学spring3(8-13).pdf》可能涵盖了更高级的主题,如Spring的事务管理、Spring与其它框架的整合(如Spring Security、Spring ...
本资料包包含丰富的SpringMVC学习资源,提供了代码示例和详细介绍,对于深入理解和掌握SpringMVC非常有帮助。 一、SpringMVC基础 SpringMVC的核心组件包括DispatcherServlet(前端控制器)、Controller(控制器)、...