当前位置: 首页 > news >正文

学习日记-SpringMVC-day50-9.8

知识点:


1.Postman-Controller测试实例(1)

知识点

核心内容

重点

Postman测试Controller层

使用Postman对UserHandler控制器进行测试

请求URL构建规则(localhost:8080/springmvc/user/by)

HTTP请求要素

确定请求方式(POST)、URL、参数、headers

PostMapping注解与请求方式对应关系

请求头设置

Headers选项卡的特殊参数配置

Content-Type等HTTP头字段作用

测试流程标准化

四步测试法:

1. 确定URL;

2. 确定请求方式;

3. 确定参数;

4. 确定headers

参数携带方式选择(Params/Body)

实战演示

对by方法的完整测试过程

服务未启动时的错误排查

方法测试扩展

同控制器内search/im/register等方法测试

不同请求方法的参数传递差异

2.Postman-Controller测试实例(2)

知识点

核心内容

重点

Postman基础请求测试

通过GET/POST请求测试userHandler控制器方法,包括URL构造、参数传递、请求头设置

路径变量(如/reg/{username}/{userId})与查询参数(如bookId=100)的区别

HTTP请求方式验证

演示@RequestMapping默认支持GET/POST,而@GetMapping仅限GET

错误请求方式(如POST调用@GetMapping)触发405错误

动态路径测试

多层路径通配符​**​(如/message/m1/​**​)和占位符(如/reg/{username})的应用

路径变量值提取与参数绑定的关联性

请求参数校验

必填参数(如bookId必须为100)和可选参数(如email可空)的测试逻辑

参数缺失或格式错误的处理差异

响应结果对比

通过Preview和后台日志双重验证请求成功/失败(如操作成功 vs 405错误)

响应状态码(如200/405)与实际业务逻辑的匹配

3.Postman发送Json

知识点

核心内容

重点

Postman的HTTP请求头修改

在发送JSON数据时需设置Content-Type: application/json,并在Body中填写对应JSON格式数据

Headers拼写易错(如hiders应为headers)

JSON数据格式规范

通过大括号{}定义键值对(如{"name":"Jackie", "id":100, "email":"xx@sohu.com"})

JSON语法校验(冒号/引号使用)

文件上传测试

通过修改Content-Type可支持文件格式提交(如multipart/form-data)

与JSON请求头的区别

后端响应处理

成功操作后返回200 success及JSON格式结果,需检查数据表记录更新

响应格式混淆(页面/JSON)

Postman实操流程

1. 设置Headers → 2. 填写Body → 3. 点击Send → 4. 验证返回数据

步骤遗漏风险(如未设Content-Type)

4.Rest基本介绍

知识点

核心内容

 重点

REST概念

表现层状态转换的架构风格,通过URL和HTTP方法体现资源操作

全称理解(Representational State Transfer)与中文翻译对应关系

HTTP方法语义

GET(查询)、POST(新增)、PUT(更新)、DELETE(删除)的CRUD对应关系

PUT与POST在更新操作时的区别应用场景

传统URL vs REST风格

传统方式通过参数说明操作类型,REST通过HTTP方法体现业务逻辑

/getBook?id=1 与 /book/1 的范式对比

浏览器方法限制

默认只支持GET/POST,需通过HiddenHttpMethodFilter转换PUT/DELETE

过滤器仅能处理POST请求的转换机制

过滤器配置

需在web.xml中配置HiddenHttpMethodFilter实现方法转换

必须通过_method字段传递真实请求类型

方法转换原理

过滤器读取_method参数值,将POST请求转换为目标HTTP方法

源码级判断逻辑:先验证POST再读取method字段

5.Rest实例-需求说明

知识点

核心内容

重点

REST风格API设计

通过URL路径和HTTP方法(GET/POST/PUT/DELETE)区分操作类型

POST请求模拟DELETE/PUT(需_method参数转换)

前端页面交互

超链接触发GET查询,表单提交触发POST新增

REST风格URL与HTTP方法的匹配逻辑

请求方法转换

使用过滤器将POST请求转换为Spring MVC的PUT/DELETE请求

HiddenHttpMethodFilter的工作原理

增删改查实现

通过统一URL路径(如/books)结合不同HTTP方法完成操作

URL路径设计与参数传递方式

6.Rest实例-配置

知识点

核心内容

重点

REST风格URL请求实现

配置HiddenHttpMethodFilter过滤器,将POST请求转换为PUT/DELETE请求

过滤器需配置在web.xml中,映射路径为/*

Spring MVC高级功能支持

配置mvc:annotation-driven以支持JSR303校验和动态请求映射

注意命名空间选择(mvc:而非tx:)

静态资源处理

配置mvc:default-servlet-handler将CSS/JS请求交给Tomcat处理

易忽略点:Spring MVC默认不处理静态资源

REST风格前端页面

JSP页面通过表单隐藏字段(_method=PUT/DELETE)触发请求转换

需与后端过滤器配合使用

源码调试

通过Debug分析HiddenHttpMethodFilter的请求转换逻辑

核心方法:doFilterInternal()

7.Rest实例-Get

知识点

核心内容

重点

REST风格请求处理

创建BookHandler处理书籍相关请求

路径变量配置 vs 传统参数传递

控制器配置

使用@Controller和@RequestMapping注解

GetMapping与RequestMapping区别

前后端交互

前端JSP页面调用后端REST接口

URL拼接规范(斜杠处理)

请求方法设计

实现GET查询接口(/user/book/{id})

路径变量@PathVariable使用

代码结构规范

在src/web下创建rest子包

包命名约定与项目结构

测试验证流程

重新发布项目并测试接口连通性

接口调试技巧与日志查看

8.Rest实例-Post

知识点

核心内容

重点

REST风格添加书籍

通过POST请求提交表单数据,后端使用@PostMapping接收并处理

前端表单action路径与后端接口匹配、参数名一致性

中文乱码问题

提交中文数据时会出现乱码,需通过过滤器解决

乱码原因与解决方案的关联性

RESTful接口设计

使用@PostMapping("/book")简化配置,替代@RequestMapping(method=POST)

注解选择对代码可读性的影响

前后端参数传递

表单字段名(如bookName)必须与后端形参名严格一致

参数绑定机制的理解

功能测试验证

通过页面提交数据,检查后端控制台输出是否匹配

测试用例覆盖边界值(如中文、特殊字符)

9.Rest实例-Delete(1)

知识点

核心内容

重点

REST风格删除操作

需要通过HiddenHttpMethodFilter将GET请求转换为DELETE请求

必须使用POST方式提交DELETE参数

HiddenHttpMethodFilter机制

1. 默认读取_method参数;

2. 仅支持POST方式提交的PUT/DELETE/PATCH转换

1. 参数名可配置;

2. 只处理POST请求

前端解决方案

使用jQuery拦截超链接点击事件,通过隐藏表单提交POST请求

GET转POST的技术实现

后端方法配置

@RequestMapping(value="/book/{id}", method=RequestMethod.DELETE)

路径变量名必须与方法参数名一致

错误处理

直接返回success视图会导致错误

需要特殊处理DELETE请求的响应

10.Rest实例-Delete(2)

知识点

核心内容

重点

表单提交方式转换

通过隐藏表单将GET请求转换为POST请求,实现RESTful风格操作

method属性动态赋值与return false阻止默认提交行为

jQuery事件绑定

使用$(document).ready()加载后绑定超链接点击事件

this.href获取链接地址与submit()手动提交表单

隐藏域参数传递

通过<input type="hidden">传递method=DELETE参数

隐藏域name属性需与后端接收参数名匹配

后端请求处理

使用@RequestMapping(method=RequestMethod.DELETE)接收转换后的请求

JSP仅支持GET/POST的报错解决方案

调试技巧

通过alert和console.log分阶段验证前端代码执行逻辑

表单action动态赋值与网络请求监控


文章转载自:

http://ktTn8dIR.dLmqn.cn
http://Hh0BGi1s.dLmqn.cn
http://UOQjjzkN.dLmqn.cn
http://PnolI4eC.dLmqn.cn
http://4eUVazkS.dLmqn.cn
http://5oSzKVTa.dLmqn.cn
http://qj6TwLcZ.dLmqn.cn
http://sllRR93i.dLmqn.cn
http://UW3UEjKt.dLmqn.cn
http://FzPocAPr.dLmqn.cn
http://TvLo9xwI.dLmqn.cn
http://ewGTXXaU.dLmqn.cn
http://lWf6muzS.dLmqn.cn
http://guYxJ7C5.dLmqn.cn
http://rKx0k4vu.dLmqn.cn
http://rEKq3Vwn.dLmqn.cn
http://ZF3tDoAl.dLmqn.cn
http://ZSFD4BPV.dLmqn.cn
http://oS0E5rLD.dLmqn.cn
http://wEV37GDY.dLmqn.cn
http://G8pZ6sls.dLmqn.cn
http://O9OPoo6i.dLmqn.cn
http://RsIgvfkE.dLmqn.cn
http://qXpIuBUc.dLmqn.cn
http://F4Dl1VLs.dLmqn.cn
http://War8myUQ.dLmqn.cn
http://Q7zMnd7U.dLmqn.cn
http://onHCgYMR.dLmqn.cn
http://iit3LP33.dLmqn.cn
http://Fd9r8is2.dLmqn.cn
http://www.dtcms.com/a/373334.html

相关文章:

  • VUE3加载cesium,导入czml的星座后页面卡死BUG 修复
  • Redis集群——redis cluster(去中心化)
  • HCIE安全为什么是T0级别的选项?
  • IDEA开启并配置Services窗口(一个项目开启多个项目运行窗口并且显示端口)
  • Sourcetree使用
  • 【Docker】Docker安装
  • 个人日记系统00
  • 20.42 QLoRA微调实战:四层提示工程让批量数据生成错误率跌破0.5%
  • S32K3平台eMIOS 应用说明
  • iOS 开发入门指南-HelloWorld
  • HCIE数通/云计算真机实验机架展示
  • 【.Net技术栈梳理】04-核心框架与运行时(线程处理)
  • 量化金融|基于算法和模型的预测研究综述
  • HarmonyOS 数据处理性能优化:算法 + 异步 + 分布式实战
  • 1304. 和为零的 N 个不同整数
  • Java 集合Collection—List
  • leetcode9(跳跃游戏)
  • 在UnionTech OS Server 20 (统信UOS服务器版) 上离线安装PostgreSQL (pgsql) 数据库
  • Azure Logic App 与 Azure Function 对比分析
  • 房屋安全鉴定注意事项
  • 【Go】:mac 环境下GoFrame安装开发工具 gf-cli——gf_darwin_arm64
  • 知识竞赛活动舞台道具全面指南
  • Linux《进程信号(下)》
  • 力扣.1054距离相等的条形码力扣767.重构字符串力扣47.全排列II力扣980.不同路径III力扣509.斐波那契数列(记忆化搜索)
  • 区块链:重构企业数字化的信任核心与创新动力
  • 【系统架构设计师(22)】面向服务的软件架构风格
  • Google Play账户与App突遭封禁?紧急应对与快速重构上架策略
  • 操作系统进程/线程的状态与转换
  • 保姆级教程 | travis-Linux版本安装编译
  • 【HarmonyOS 6】Install Failed: error: failed to install bundle.code:9568322