SpringMVC 基础知识

学习目标

  1. 掌握基于 SpringMVC 获取请求参数与响应 json 数据操作
  2. 熟练应用基于 REST 风格的请求路径设置与参数传递
  3. 能够根据实际业务建立前后端开发通信协议并进行实现
  4. 基于 SSM 整合技术开发任意业务模块功能

1 SpringMVC 简介

1.1 概述

1.1.1 web程序开发流程

【执行过程】

web 程序通过浏览器访问页面,前端页面使用异步提交的方式发送请求到后端服务器;

后端服务器采用表现层、业务层、数据层的三层架构的形式进行开发,页面发送的请求由表现层接收,获取用户的请求参数后,将参数传递到业务层,再由业务层访问数据层,得到用户需要访问的数据后,将数据返回给表现层,表现层拿到数据,将数据转换成 json 格式发送给前端页面;

前端页面接收数据后解析数据,并组织成用户浏览的最终页面信息交给浏览器

1.1.2 SpringMVC 概述

一种基于 Java 实现 MVC 模型的轻量级 Web 框架,是表现层框架技术,用于进行表现层功能开发

1.2 入门案例

1.2.1 代码开发

1.2.2 注解介绍

1.3 入门案例工作流程分析

1.4 Controller 加载控制

简化开发

1.5 PostMan

网页调试与发送网页 HTTP 请求的插件,用于接口测试

【注】这类插件有很多,比如 YApi 等,可自行选择一个合适的工具

2 请求与响应

2.1 请求映射路径

为避免多个模块下的请求路径发生冲突,需要设置模块名作为请求路径前缀

2.2 请求参数

2.2.1 Get 请求

2.2.2 Post 请求

2.2.3 五种参数类型传递

普通参数

【注】如果地址参数和形参变量名不相同,可以采用 @RequestParam 注解的方式 可以实现请求参数和形参的绑定

复制代码
public String commonParam(@RequestParam("name") String userName,int age)

POJO 类型参数

【注】请求参数名与形参对象属性名相同,定义POJO类型形参即可接收参数

嵌套 POJO 类型参数

【注】 请求参数名与形参对象属性名相同,按照对象层次结构关系接收嵌套POJO属性参数

数组类型参数

【注】请求参数名与形参对象属性名同且请求参数为多个,定义数组类型形参即可接收参数

集合类型参数

2.2.4 json 数据传递

传递 json 对象

传递 json 数组

2.3 日期类型参数传递

内部转换工作过程:利用 Converter 接口

2.4 响应 json 数据

内部转换工作过程:HttpMessageConverter 接口

【注】和上述 Converter 接口功能一样,只是转换的东西不一样,这个是用来转换 http 的消息, 并不是一个类型转换到另一个类型

3 REST 风格

3.1 REST 简介

【注】REST 风格描述的是一种资源的访问形式, 根据 REST 风格对资源进行访问称为RESTful

【注】① 通过上述约定,通过路径和请求的方式就可以确认一个资源的访问行为。② 描述模块的名称通常使用复数,也就是加 s 的格式描述,表示此类资源,而非单个资源,例如:users、books、accounts.....

3.2 RESTful 入门案例

3.3 REST 快速开发

问题描述:

当前程序仍然存在代码冗余

代码简化:

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

相关推荐
怒放吧德德4 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆6 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌8 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊9 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang9 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
Ray Liang11 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解11 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
SimonKing15 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean15 小时前
Jackson View Extension Spring Boot Starter
java·后端
Seven9716 小时前
剑指offer-79、最⻓不含重复字符的⼦字符串
java