【黑马程序员】SSM框架——SpringMVC

文章目录

  • 前言
  • 一、SpringMVC 简介
    • 1. SpringMVC 概述
    • 2. 入门案例
      • 2.1 入门案例步骤
        • 2.1.1 导入坐标
        • 2.1.2 创建控制类
        • 2.1.3 创建配置类
        • 2.1.4 初始化容器
      • 2.2 入门案例实现
        • 2.2.1 导入坐标
        • 2.2.2 创建控制类
        • 2.2.3 创建配置类
        • 2.2.4 初始化容器
      • 2.3 常见注解
        • 2.3.1 @Controller
        • 2.3.2 @RequestMapping
        • 2.3.3 @ResponseBody
      • 2.4 AbstractDispatcherServletInitializer 类
        • 2.4.1 createServletApplicationContext( ) 方法
        • 2.4.2 getServletMappings( ) 方法
        • 2.4.3 createRootApplicationContext( ) 方法
      • 2.5 入门程序总结
    • 3. 入门案例工作流程分析
      • 3.1 入门案例容器初始化工作流程
      • 3.2 入门案例单次请求工作流程
    • 4. Controller 加载控制与业务 bean 加载控制
      • 4.1 SpringMVC 相关 bean 加载控制
      • 4.2 Spring 相关的 bean 加载控制
        • ① Spring 加载方式一
        • ② Spring 加载方式二
        • ③ Spring 加载方式三
          • 简化方式
      • 4.3 常见注解
        • @ComponentScan
    • 5. PostMan 工具介绍
      • 5.1 PostMan 简介
      • 5.2 PostMan 基础操作
  • 二、请求与响应
    • 1. 请求映射路径
      • 1.1 常用注解
        • 1.1.1 @RequestMapping
      • 1.2 请求方式
      • 1.2.1 Get 请求传参
        • 1.2.2 Post 请求参数
        • 1.2.3 Post 请求中文乱码处理
    • 2. 请求参数
      • 2.1 参数种类
        • 2.1.1 普通参数
          • ① 地址参数名与形参变量名相同
          • ② 地址参数名与形参变量名不同
        • 2.1.2 POJO 类型参数
        • 2.1.3 嵌套 POJO 类型参数
          • ① 嵌套 POJO 参数概述
          • ② 嵌套 POJO 类型参数的使用
        • 2.1.4 数组类型参数
        • 2.1.5 集合类型参数
      • 2.2 常见注解
        • 2.2.1 @RequestParam
      • 2.3 传递 json 数据
        • 2.3.1 创建步骤
          • ① 添加 json 数据转换相关坐标
          • ② 设置发送 json 数据
          • ③ 开启自动转换 json 数据的支持
          • ④ 设置接收 json 数据
      • 2.3.2 常见注解
        • ① @EnableWebMvc
        • ② @RequestBody
      • 2.3.3 传递 json 数据类型
        • ① json 数组
        • ② json 对象(POJO)
        • ③ json 数组(POJO)
      • 2.3.4 @RequestBody 与 @RequestParam 区别
    • 3. 日期类型参数传递
      • 3.1 常见注解
        • @DateTimeFormat
      • 3.2 类型转换器
    • 4. 响应
      • 4.1 响应页面
      • 4.2 响应数据
        • 4.2.1 文本数据
        • 4.2.2 json 数据
          • ① 对象转 json
          • ② 对象集合转 json 数组
    • 4.3 常见注解
      • @ResponseBody
    • 4.4 类型转换器
      • 4.4.1 HttpMessageConverter 接口
      • 4.4.2 实现方式
  • 三、REST 风格
    • 1. REST 简介
      • 1.1 REST 风格简介
    • 2. RESTful 入门案例
      • 2.1 RESTful 入门案例格式
        • ① 设定 http 请求动作
        • ② 设定请求参数
      • 2.2 常见注解
        • @RequestMapping
        • @PathVariable
      • 2.3 @RequestBody、@RequestParam、@PathVariable 的区别
    • 3. REST 快速开发
      • 3.1 常见注解
        • @RestController
        • @(Get、Post、Delete、Put)Mapping
    • 4. 案例:基于 RESTful 页面数据交互
      • 4.1 案例思路
        • 4.1.1 制作 SpringMVC 控制器,并通过 PostMan 测试接口功能
        • 4.1.2 设置对静态资源的访问
        • 4.1.3 前端页面通过异步提交访问后台控制器
      • 4.2 具体操作
        • 4.2.1 先做后台功能,开发接口并调通接口
          • ① 进行 SpringMVC 配置环境
          • ② domain 中的实体类
          • ③ 在 controller 中开发
        • 4.2.2 再做页面异步调用,确认功能可以正常访问
        • 4.2.3 最后完成页面数据展示
  • 四、SSM 整合
  • 五、拦截器
    • 1. 拦截器概念
      • 1.1 拦截器与过滤器区别
    • 2. 入门案例
      • 2.1 案例执行步骤
      • 2.1 执行流程
    • 3. 拦截器参数
      • 3.1 前置处理
      • 3.2 后置处理
      • 3.3 完成后处理
    • 4. 拦截器链
      • 4.1 拦截器链条配置方式
      • 4.2 拦截器链的运行顺序
  • 总结


前言

跟着B站的黑马程序员学习SSM框架,语言为java,目前是第二个学习内容
课程传送门:SSM框架——SpringMVC


一、SpringMVC 简介

1. SpringMVC 概述

  • SpringMVC 技术与 Servlet 技术功能等同,均属于 web 层开发技术
  • SpringMVC 是一种基于 Java 实现 MVC 模型的轻量级 Web 框架
  • 优点
    ① 使用简单,开发便捷(相对于 Servlet)
    ② 灵活性强

【黑马程序员】SSM框架——SpringMVC_第1张图片

  • SpringMVC 是一种表现层框架技术
  • SpringMVC 用于进行表现层功能开发

2. 入门案例

2.1 入门案例步骤

2.1.1 导入坐标

【黑马程序员】SSM框架——SpringMVC_第2张图片

2.1.2 创建控制类

【黑马程序员】SSM框架——SpringMVC_第3张图片

2.1.3 创建配置类

【黑马程序员】SSM框架——SpringMVC_第4张图片

2.1.4 初始化容器

【黑马程序员】SSM框架——SpringMVC_第5张图片

2.2 入门案例实现

2.2.1 导入坐标

【黑马程序员】SSM框架——SpringMVC_第6张图片

2.2.2 创建控制类

【黑马程序员】SSM框架——SpringMVC_第7张图片

2.2.3 创建配置类

【黑马程序员】SSM框架——SpringMVC_第8张图片

2.2.4 初始化容器

【黑马程序员】SSM框架——SpringMVC_第9张图片

2.3 常见注解

2.3.1 @Controller

【黑马程序员】SSM框架——SpringMVC_第10张图片

2.3.2 @RequestMapping

【黑马程序员】SSM框架——SpringMVC_第11张图片

2.3.3 @ResponseBody

【黑马程序员】SSM框架——SpringMVC_第12张图片

2.4 AbstractDispatcherServletInitializer 类

  • AbstractDispatcherServletInitializer 类是 SpringMVC 提供的快速初始化 web3.0 容器的抽象类
  • AbstractDispatcherServletInitializer 提供三个接口方法供用户实现
2.4.1 createServletApplicationContext( ) 方法

加载 springMVC 容器配置
【黑马程序员】SSM框架——SpringMVC_第13张图片

2.4.2 getServletMappings( ) 方法

设置哪些请求归属 springMVC 处理
【黑马程序员】SSM框架——SpringMVC_第14张图片

2.4.3 createRootApplicationContext( ) 方法

加载 spring 容器配置
【黑马程序员】SSM框架——SpringMVC_第15张图片

2.5 入门程序总结

【黑马程序员】SSM框架——SpringMVC_第16张图片

3. 入门案例工作流程分析

3.1 入门案例容器初始化工作流程

【黑马程序员】SSM框架——SpringMVC_第17张图片

3.2 入门案例单次请求工作流程

【黑马程序员】SSM框架——SpringMVC_第18张图片

4. Controller 加载控制与业务 bean 加载控制

【黑马程序员】SSM框架——SpringMVC_第19张图片
思考:因为功能不同,如何避免 Spring 错误的加载到 SpringMVC 的 bean?

:加载 Spring 控制的 bean 的时候,排除掉 SpringMVC 控制的 bean

4.1 SpringMVC 相关 bean 加载控制

  • SpringMVC 加载的 bean 对应的包均在 com.itheima.contriller 包内

4.2 Spring 相关的 bean 加载控制

① Spring 加载方式一
  • Spring 加载的 bean 设定扫描范围为 com.itheima,排除掉 controller 包内的 bean
    【黑马程序员】SSM框架——SpringMVC_第20张图片
② Spring 加载方式二
  • Spring 加载的 bean 设定扫描范围为精确范围,例如 service 包、dao 包等
    【黑马程序员】SSM框架——SpringMVC_第21张图片
③ Spring 加载方式三
  • 不区分 Spring 与 SpringMVC 的环境,加载到同一个环境中
    【黑马程序员】SSM框架——SpringMVC_第22张图片
简化方式

【黑马程序员】SSM框架——SpringMVC_第23张图片

4.3 常见注解

@ComponentScan

【黑马程序员】SSM框架——SpringMVC_第24张图片

5. PostMan 工具介绍

5.1 PostMan 简介

【黑马程序员】SSM框架——SpringMVC_第25张图片

5.2 PostMan 基础操作

【黑马程序员】SSM框架——SpringMVC_第26张图片

二、请求与响应

1. 请求映射路径

思考:团队多人开发,每人设置不同的请求路径,冲突问题如何解决?

:设置模块名作为请求路径前缀

1.1 常用注解

1.1.1 @RequestMapping

【黑马程序员】SSM框架——SpringMVC_第27张图片

1.2 请求方式

  • Get 请求
  • Post 请求

1.2.1 Get 请求传参

【黑马程序员】SSM框架——SpringMVC_第28张图片

1.2.2 Post 请求参数

【黑马程序员】SSM框架——SpringMVC_第29张图片

1.2.3 Post 请求中文乱码处理

【黑马程序员】SSM框架——SpringMVC_第30张图片

2. 请求参数

2.1 参数种类

2.1.1 普通参数
① 地址参数名与形参变量名相同

【黑马程序员】SSM框架——SpringMVC_第31张图片

② 地址参数名与形参变量名不同

【黑马程序员】SSM框架——SpringMVC_第32张图片

2.1.2 POJO 类型参数

【黑马程序员】SSM框架——SpringMVC_第33张图片

2.1.3 嵌套 POJO 类型参数
① 嵌套 POJO 参数概述

【黑马程序员】SSM框架——SpringMVC_第34张图片

② 嵌套 POJO 类型参数的使用

【黑马程序员】SSM框架——SpringMVC_第35张图片

2.1.4 数组类型参数

【黑马程序员】SSM框架——SpringMVC_第36张图片

2.1.5 集合类型参数

【黑马程序员】SSM框架——SpringMVC_第37张图片

2.2 常见注解

2.2.1 @RequestParam

【黑马程序员】SSM框架——SpringMVC_第38张图片

2.3 传递 json 数据

2.3.1 创建步骤
① 添加 json 数据转换相关坐标

【黑马程序员】SSM框架——SpringMVC_第39张图片

② 设置发送 json 数据

在这里插入图片描述

③ 开启自动转换 json 数据的支持

【黑马程序员】SSM框架——SpringMVC_第40张图片
注意@EnableWebMvc 注解功能强大,该注解整合了多个功能,此处仅使用其中一部分功能,即 json 数据进行自动类型转换

④ 设置接收 json 数据

【黑马程序员】SSM框架——SpringMVC_第41张图片

2.3.2 常见注解

① @EnableWebMvc

【黑马程序员】SSM框架——SpringMVC_第42张图片

② @RequestBody

【黑马程序员】SSM框架——SpringMVC_第43张图片

2.3.3 传递 json 数据类型

① json 数组

【黑马程序员】SSM框架——SpringMVC_第44张图片

② json 对象(POJO)

【黑马程序员】SSM框架——SpringMVC_第45张图片

③ json 数组(POJO)

【黑马程序员】SSM框架——SpringMVC_第46张图片

2.3.4 @RequestBody 与 @RequestParam 区别

在这里插入图片描述

3. 日期类型参数传递

【黑马程序员】SSM框架——SpringMVC_第47张图片

3.1 常见注解

@DateTimeFormat

【黑马程序员】SSM框架——SpringMVC_第48张图片

3.2 类型转换器

【黑马程序员】SSM框架——SpringMVC_第49张图片

4. 响应

4.1 响应页面

【黑马程序员】SSM框架——SpringMVC_第50张图片

4.2 响应数据

4.2.1 文本数据

【黑马程序员】SSM框架——SpringMVC_第51张图片

4.2.2 json 数据
① 对象转 json

【黑马程序员】SSM框架——SpringMVC_第52张图片

② 对象集合转 json 数组

【黑马程序员】SSM框架——SpringMVC_第53张图片

4.3 常见注解

@ResponseBody

【黑马程序员】SSM框架——SpringMVC_第54张图片

4.4 类型转换器

4.4.1 HttpMessageConverter 接口

【黑马程序员】SSM框架——SpringMVC_第55张图片

4.4.2 实现方式

【黑马程序员】SSM框架——SpringMVC_第56张图片

三、REST 风格

1. REST 简介

【黑马程序员】SSM框架——SpringMVC_第57张图片

1.1 REST 风格简介

【黑马程序员】SSM框架——SpringMVC_第58张图片
【黑马程序员】SSM框架——SpringMVC_第59张图片

2. RESTful 入门案例

2.1 RESTful 入门案例格式

① 设定 http 请求动作

【黑马程序员】SSM框架——SpringMVC_第60张图片

② 设定请求参数

【黑马程序员】SSM框架——SpringMVC_第61张图片

2.2 常见注解

@RequestMapping

在这里插入图片描述

@PathVariable

【黑马程序员】SSM框架——SpringMVC_第62张图片

2.3 @RequestBody、@RequestParam、@PathVariable 的区别

【黑马程序员】SSM框架——SpringMVC_第63张图片

3. REST 快速开发

【黑马程序员】SSM框架——SpringMVC_第64张图片

3.1 常见注解

@RestController

【黑马程序员】SSM框架——SpringMVC_第65张图片

@(Get、Post、Delete、Put)Mapping

【黑马程序员】SSM框架——SpringMVC_第66张图片

4. 案例:基于 RESTful 页面数据交互

4.1 案例思路

4.1.1 制作 SpringMVC 控制器,并通过 PostMan 测试接口功能

【黑马程序员】SSM框架——SpringMVC_第67张图片

4.1.2 设置对静态资源的访问

【黑马程序员】SSM框架——SpringMVC_第68张图片

4.1.3 前端页面通过异步提交访问后台控制器

【黑马程序员】SSM框架——SpringMVC_第69张图片

4.2 具体操作

4.2.1 先做后台功能,开发接口并调通接口
① 进行 SpringMVC 配置环境
  1. 配置类
  2. 扫 Controller
  3. 开启 @EnableWebMvc
② domain 中的实体类
  1. 图书 book 类
③ 在 controller 中开发

【黑马程序员】SSM框架——SpringMVC_第70张图片

4.2.2 再做页面异步调用,确认功能可以正常访问
  1. 把页面添加进来
  2. SpringMVC 容器中拦截了所有,进行资源过滤
    【黑马程序员】SSM框架——SpringMVC_第71张图片
4.2.3 最后完成页面数据展示

【黑马程序员】SSM框架——SpringMVC_第72张图片

四、SSM 整合

内容过长,另起篇幅。
传送门点击前往:SSM 整合

五、拦截器

1. 拦截器概念

  • 拦截器(Interceptor)是一种动态拦截方法调用的机制
  • 作用
    ① 在指定的方法调用前后执行预先设定的代码
    ② 阻止原始方法的执行

【黑马程序员】SSM框架——SpringMVC_第73张图片

1.1 拦截器与过滤器区别

拦截器 Filter 过滤器 Interceptor
归属 Servlet 技术 SpringMVC 技术
拦截内容 所有访问进行增强 仅针对 SpringMVC 的访问进行增强

2. 入门案例

2.1 案例执行步骤

① 声明拦截器的 bean,并实现 HandleInterceptor 接口
【黑马程序员】SSM框架——SpringMVC_第74张图片

② 定义配置类,继承 WebMvcConfigurationSupport,实现 addInterceptor 方法
【黑马程序员】SSM框架——SpringMVC_第75张图片

③ 添加拦截器并设定拦截的访问路径,路径可以通过可变参数设置多个
【黑马程序员】SSM框架——SpringMVC_第76张图片

④ 使用标准接口 WebMvcConfigurer 简化开发
【黑马程序员】SSM框架——SpringMVC_第77张图片

2.1 执行流程

【黑马程序员】SSM框架——SpringMVC_第78张图片

3. 拦截器参数

3.1 前置处理

【黑马程序员】SSM框架——SpringMVC_第79张图片

3.2 后置处理

【黑马程序员】SSM框架——SpringMVC_第80张图片

3.3 完成后处理

【黑马程序员】SSM框架——SpringMVC_第81张图片

4. 拦截器链

4.1 拦截器链条配置方式

直接把多个拦截器按顺序填写,执行时会按照运行顺序前行。
【黑马程序员】SSM框架——SpringMVC_第82张图片

4.2 拦截器链的运行顺序

  • preHandle:与配置顺序相同,必定运行
  • postHandle:与配置顺序相反,可能不运行
  • afterCompletion:与顺序配置相反,可能不运行

【黑马程序员】SSM框架——SpringMVC_第83张图片


总结

以上就是本章要讲的内容,本文仅仅简单复述了老师讲课的文本内容,内容有误麻烦联系。

你可能感兴趣的:(SSM框架,java)