知识点:
1.RequestMapping(3)
知识点 |
核心内容 |
重点 |
@RequestMapping注解的parameters属性 |
通过parameters指定请求参数条件 (如bookID),控制请求匹配规则(必须包含/排除特定参数或值) |
参数存在性检查 vs 参数值限制(如parameter1!=value1) |
多参数条件组合 |
支持逗号分隔多参数条件 (如parameter1=value1,parameter2),同时校验参数存在性及值匹配 |
值限制参数与无值限制参数的混合写法 |
请求参数自动绑定 |
方法形参(如String bookID)自动接收请求中同名参数的值 |
形参与parameters属性同名时的绑定机制 |
测试案例:search方法 |
@RequestMapping(value="/search", method=GET, parameters="bookID") + 形参接收bookID,输出并跳转页面 |
无参数请求报错 vs 带参数请求成功的对比 |
2.RequestMapping(4)
知识点 |
核心内容 |
重点 |
Request参数设置 |
在request.js页面添加代码,演示parameters的使用,要求携带bookID参数 |
问号后参数格式(?bookID=100)与工程路径处理 |
参数校验机制 |
通过parameters属性强制校验请求参数(如bookID必须存在且值需匹配100) |
参数名不匹配(bookID vs bookIDx)或值不匹配(200 vs 100)触发400错误 |
条件表达式扩展 |
支持 = 和 != 运算符限制参数值 |
动态校验逻辑(如bookID!=100时拒绝该值) |
工程路径处理 |
强调斜杠对路径的影响(如/user/search需避免重复斜杠) |
路径拼接错误导致缺失工程路径 |
3.RequestMapping(5)
知识点 |
核心内容 |
重点 |
Ant风格资源地址匹配规则 |
问号匹配单个字符,星号匹配任意字符,双星号匹配多层路径 |
双星号与单星号的区别(多层路径 vs 单层路径) |
单星号通配符 |
/user/*/createUser 匹配单层任意路径(如aaa/bbb) |
星号必须对应一层具体路径 |
双星号通配符 |
/user/**/createUser 匹配零到多层路径(如空/aa/aa/bb/cc) |
零路径的特殊情况 |
问号通配符 |
/user/createUser?? 匹配固定长度任意字符(如AA/BB) |
严格限定字符数量 |
实战配置案例 |
@RequestMapping("/user/message**") 实现多层路径匹配 |
需注意路径拼接规则(类级路径+方法级路径) |
测试验证方法 |
通过JSP超链接和Postman工具测试不同URL匹配情况 |
前端路径斜杠处理 |
4.RequestMapping(6)
知识点 |
核心内容 |
易混淆点 |
URL路径变量绑定 |
通过@PathVariable注解实现URL占位符与形参的自动绑定 |
占位符命名与形参命名的关系(占位符必须匹配注解值,形参名可自定义) |
RESTful风格参数传递 |
使用/user/reg/{username}/{id}形式替代传统?key=value传参方式 |
路径变量与传统查询字符串参数的应用场景区分 |
注解组合使用 |
@RequestMapping与@PathVariable的配合使用机制 |
注解值必须与URL模板变量严格一致 |
参数接收原理 |
通过反射机制实现路径变量到方法参数的自动赋值 |
前端URL结构与后端处理方法的层级对应关系 |
实战测试验证 |
演示/user/reg/k/300如何映射到name="k"和id=300 |
URL前缀路径(/user/reg)必须精确匹配控制器映射 |
5.RequestMapping注意事项(1)
知识点 |
核心内容 |
重点 |
RequestMapping注解的URL映射规则 |
URL路径不可重复,同一控制器内不同方法若配置相同路径会导致项目启动报错 |
语法检查阶段无法检测重复,需通过运行时异常(如There is already...错误)发现 |
重复URL的典型错误案例 |
UserHandler类中hi()与hi2()方法均配置路径/hi,引发"already mapped"冲突 |
报错信息明确提示重复映射的方法名(如user.hi()) |
问题复现与验证方式 |
通过重启项目触发异常,观察控制台输出的重复路径冲突提示 |
需区分语法错误(IDE提示)与运行时错误(部署阶段暴露) |
6.RequestMapping注意事项(2)
知识点 |
核心内容 |
重点 |
请求映射简写形式 |
@PostMapping 是 @RequestMapping(method = RequestMethod.POST) 的简写,同理适用于 @GetMapping、@PutMapping、@DeleteMapping |
注解等价性:两种写法功能相同,但简写形式更简洁 |
请求方式限制 |
使用 @PostMapping 后,仅允许 POST 请求,其他请求方式(如 GET)会报错 |
测试验证:通过修改请求方式触发错误,证明注解生效 |
源码解析 |
@PostMapping 源码中明确标注为 @RequestMapping(method = RequestMethod.POST) 的快捷方式 |
关键注释:"Shortcut for @RequestMapping(method = RequestMethod.POST)" |
同类注解 |
除 @PostMapping 外,还有 @GetMapping、@PutMapping、@DeleteMapping 等,用法一致 |
命名规律:前缀对应 HTTP 方法名 |
7.RequestMapping注意事项(3)
知识点 |
核心内容 |
重点 |
表单/超链接数据提交规则 |
提交参数名需与目标方法参数名严格一致(如email字段需匹配形参String email) |
参数名不一致时不会报错,但接收值为null |
GET请求参数绑定示例 |
通过@GetMapping路径(如/hello3)和URL参数(?email=xx@xx.com)自动绑定形参 |
需确保URL参数名(email)与形参名完全一致 |
空值处理机制 |
参数名不匹配时,后端接收空值而非抛出异常 |
需主动检查参数是否为空,避免逻辑漏洞 |
动态演示案例 |
通过浏览器地址栏直接测试(如/user/hello3?email=xx@xx.com),后台成功捕获参数值 |
未传参时控制台显示email: null |
8.Postman介绍
知识点 |
核心内容 |
重点 |
Postman工具介绍 |
功能强大的HTTP请求测试工具,支持GET/POST/PUT/DELETE等请求模拟,无需开发前端页面即可测试后端接口 |
与手动编写测试页面的对比:工具效率更高,但需注意请求参数配置准确性 |
学习必要性 |
后端开发人员必备工具,简化Web层Controller测试流程,提升开发效率 |
版本选择 |
工具核心功能 |
模拟HTTP请求、接收响应数据,支持多种请求类型 |
功能取舍:仅学习常用功能,无需掌握全部高级特性 |
资源获取 |
官网提供下载(www.postman.com)和文档(learning.postman.com) |
版本差异:新版功能可能增加学习成本,旧版更稳定 |
9,Postman安装
知识点 |
核心内容 |
重点 |
Postman安装步骤 |
1. 下载软件(已提供资源); 2. 双击安装(默认系统盘路径); 3. 桌面生成快捷图标 |
无需自定义安装路径; |
安装注意事项 |
- 需管理员身份运行; - 安装过程禁止乱点; - 首次启动较慢 |
自动启动与手动双击的区别 |
异常处理 |
未自动启动时:双击桌面图标手动启动 |
系统兼容性差异 |
10.Postman快速入门(1)
知识点 |
核心内容 |
重点 |
Postman基础功能 |
发送HTTP请求(GET/POST)、管理请求集合(Collections)、查看响应数据(HTML/JSON) |
请求方式选择(GET vs POST)、响应数据格式(Raw vs Preview) |
Postman界面设置 |
调整字体大小(File → Settings → Font Size)、界面缩放快捷键(Ctrl+/-) |
快捷键冲突(需区分系统全局快捷键) |
百度GET请求实战 |
输入www.baidu.com → 选择GET方式 → Send → 解析返回的HTML数据 |
参数携带(Query Params vs Headers)、预览模式(Preview显示不全问题) |
账号注册与免登录 |
通过邮箱注册(Create Account)或直接使用(Skip登录) |
工作空间同步(注册账号可跨设备同步请求历史) |
请求集合管理 |
创建Collection保存请求 → 命名规范(如hsp_百度) → 分类管理 |
集合共享(团队协作时需导出/导入) |
响应数据分析 |
Status Code(如200)、耗时、数据大小 → Preview模式(网页渲染效果) |
HTML解析差异(动态内容可能缺失) |
11.Postman快速入门(2)
知识点 |
核心内容 |
重点 |
HTTP请求创建 |
New HTTP Request操作步骤,包含命名、请求方式、URL设置 |
参数(parameter)与头信息(headers)配置区别 |
Connection管理机制 |
请求以connection集合形式管理,首次保存需创建集合 |
新建请求与选择已有集合的逻辑关系 |
请求保存流程 |
Save HTTP Request触发对话框的两种情形(新建/选择集合) |
集合与单个请求的从属关系 |
响应数据解析 |
Pretty(原生数据)与Preview(网页渲染)双模式对比 |
测试时数据正确性优先于界面展示 |
搜狐GET请求案例 |
完整演示从创建请求到解析HTML响应的全流程 |
集合中多请求的并行管理 |
Postman测试核心价值 |
重点验证服务器返回数据而非页面样式 |
接口测试与UI测试的本质差异 |