学习日记-SpringMVC-day50-9.8

发布于:2025-09-12 ⋅ 阅读:(15) ⋅ 点赞:(0)

知识点:


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动态赋值与网络请求监控


网站公告

今日签到

点亮在社区的每一天
去签到