Spring MVC 简介

Spring MVC工作流程图

概述

Spring MVC 也叫 Spring Web MVC ,属于展示层框架。SpringMVC 是 Spring 框架的一部分。

Spring Web MVC 框架提供了 MVC (模型 - 视图 - 控制器) 架构和用于开发灵活和松散耦合的 Web 应用程序的组件。 MVC 模式导致应用程序的不同方面(输入逻辑,业务逻辑和 UI 逻辑)分离,同时提供这些元素之间的松散耦合。

  • 模型 (Model):封装了应用程序数据,通常指的数据层【DAO+entity】。
  • 视图 (View):负责渲染模型数据,一般来说它生成客户端浏览器可以解释 HTML 输出,例【html/css/js, JSP, Thymeleaf, Velocity, FreeMarker】。
  • 控制器 (Controller):负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。

mvc 的框架有很多,比较有名的有:

  • Struts1.x

  • Struts2.x -- 以前很流行

  • Spring MVC -- 现在很流行, 得益于SPRING框架的技术生态

  • ...

Spring MVC是一款非常优秀的MVC框架,它提供如下功能:

    • 有一个非常强大的前置控制器,本质上是一个 Servlet

    • 有强大的配置能力,包含请求到控制器的映射

    • 提供了很多辅助性的功能,比如:

      • 模型和视图 的封装

      • Bean Validation

      • 文件上传和下载

      • 对json的支持

      • 自动封装请求参数,并转换成你想的任何对象,直接以参数传递进来。

      • 提供编码过滤器

 

Spring MVC框架的搭建

  1. 准备一个基于maven的web项目结构

  2. 加入SpringMVC 相关的依赖【spring-webmvc】

  3. web.xml 中添加 SpringMVC的配置

  4. 如果采用注解配置的话,需要添加一个 WebMvcConfig.java

  5. 添加控制器,写一个JAVA类,打上 @Controller 注解,并且在方法上面添加 @RequestMapping

  6. 默认情况下,控制器方法的返回值被会SPRING MVC解析成 jsp 的名字,如果添加了 @ResponseBody的话,则SPRING MVC框架会把方法的返回值当做响应体的内容,响应给客户端。

 

Spring MVC 的前置控制器 ——》DispatcherServlet 组件类

Spring Web MVC 框架是围绕 DispatcherServlet 设计的,它处理所有的 HTTP 请求和响应。

Spring Web MVC DispatcherServlet 的请求处理工作流如下图所示:


以下是对应于到 DispatcherServlet 的传入 HTTP 请求的事件顺序:

  • 在接收到 HTTP 请求后,DispatcherServlet 会查询 HandlerMapping 以调用相应的 Controller。
  • Controller 接受请求并根据使用的 GET 或 POST 方法调用相应的服务方法。 服务方法将基于定义的业务逻辑设置模型数据,并将视图名称返回给 DispatcherServlet。
  • DispatcherServlet 将从 ViewResolver 获取请求的定义视图。
  • 当视图完成,DispatcherServlet 将模型数据传递到最终的视图,并在浏览器上呈现。

所有上述组件,即: HandlerMapping,Controller 和 ViewResolver 是 WebApplicationContext 的一部分,它是普通 ApplicationContext 的扩展,带有 Web 应用程序所需的一些额外功能。

posted @ 2019-07-28 23:27  十八岁的夏天  阅读(335)  评论(0编辑  收藏  举报