Java教程

Spring MVC

本文主要是介绍Spring MVC,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

MVC 架构模式

MVC 架构模型是按照职责划分将三层架构中的表现层分为控制器(Controller)、模型(Model)和视图(View)三部分,目的是使系统组织架构更合理和清晰

image-20210925215607156

Spring MVC 是什么

Spring MVC 是 Spring 框架的 Web 组件,它是一种基于 Java 实现的 Web MVC 的轻量级 Web 框架

  • SpringMVC 使用 MVC 架构模式的思想,将 Web 层进行职责解耦,基于请求-响应模型,目的就是简化开发
  • SpringMVC 的前端控制器是 DispatcherServlet,应用控制器被拆分为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为 Controller 接口的实现

Spring MVC 是三层架构中表现层最主流的 MVC 框架

Spring MVC 特点

  • 天生与 Spring 框架集成(如Ioc容器、AoP等)
  • 进行更简洁的 Web 层的开发
  • 提供强大的约定大于配置的契约式编程支持
  • 能简单的进行 Web 层的单元测试
  • 支持灵活的 URL 到页面控制器的映射
  • 非常容易与其他视图技术集成,如 Velocity、FreeMarker 等
  • 非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API
  • 提供一套强大的JSP标签库,简化JSP开发
  • 支持灵活的本地化、主题等解析
  • 更加简单的异常处理
  • 对静态资源的支持
  • 支持 Restful 架构风格

Spring MVC 框架环境搭建

  • 创建动态 Web 项目
  • 导入动态 Web 项目 的 Spring MVC 依赖包
  • web.xml 中配置 Spring MVC 前端控制器
  • springmvc.xml 中配置 Spring MVC 运行环境

Spring MVC 工作流程图

image-20210925215920301

Spring MVC 核心注解

@Controller 注解(控制器类)
  • 只要在定义类上标注 @Controller 注解,则表示该类为页面控制器类,可以用于处理前端控制器转发的 HTTP 请求
  • 每个控制器类可拥有多个处理 HTTP 请求的方法,每个方法负责不同的请求操作
  • 需要使用<context:component-scan/>扫描器扫描页面控制器类所在包,@Controller 注解才能会生效
@RequestMapping 注解(映射请求方法)
  • @RequestMapping 注解的作用就是将前端控制器转发的 HTTP 请求映射到对应的控制器类的方法中
  • 将请求映射到控制器类的处理方法的工作包含一系列的映射规则,这些规则是根据请求中的各种信息制定的,具体包括请求URL、请求参数、请求方法、请求头这4个方面的信息项

Spring MVC 特性

请求参数绑定

Spring MVC 请求参数绑定特性是将 HTTP 请求参数直接绑定到页面控制器的处理方法的参数中

数据类型转换

Spring MVC 数据类型转换特性是将 HTTP 请求参数的类型自动转换为直接绑定到页面控制器的处理方法的参数类型

Spring MVC 内建的类型转换器如下:

image-20210925220110957

注:Spring MVC 支持自定义类型转换器

数据校验

应用程序在执行业务逻辑前,必须通过数据校验保证接收的输入数据时正确合法的。在一般情况下,应用程序的开发是分层的,不同层的代码由不同开发人员负责。很多时候,同样的数据校验会出现在不同层中,这样会导致代码冗余,为了避免这样的情况,最好是将验证逻辑和相应的域模型进行绑定,将代码校验的逻辑集中起来管理

JSR 303(数据合法性校验标准框架)

JSR 303 是 Java 为 Bean 数据合法性校验所提供的标准框架。JSR 303 通过在 Bean 属性中标注注解来指定校验规则,并通过标准的验证接口对 Bean 进行验证

image-20210925220211779

拦截器

Spring MVC 拦截器特性用于拦截页面控制处理的客户端请求,分别有三个拦截点如下:

image-20210925220233716

文件上传

Spring MVC为文件上传提供了直接的支持(这种支持使通过即插即用的MultipartResolver 实现的)

AJAX

AJAX 技术是 Web 客户端 和 Web 服务器交互(通信)的一种新方式

这篇关于Spring MVC的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!