文章目录
- 1.Postman
- 1.基本介绍
-
- 2.Postman快速入门
- 1.Postman下载
-
- 2.基本操作
- 1.修改字体大小
- 2.ctrl + “+” 放大页面
- 3.进入创建请求界面
- 2.需求分析
- 3.具体操作
- 4.保存请求到文件夹中
-
- 3.使用Postman完成对前面编写的UserHander方法的请求
-
- 4. 对search方法进行请求(带参数)
-
- 5.对im方法发送请求(ant)
-
- 6.对register方法发送请求(路径参数)
-
- 7.对hello方法发送请求(带参数)
-
- 8.Postman发送json数据(需要修改请求头)
- 2.Rest(优雅的url请求风格)
- 1.基本介绍
- 2.Rest风格的url案例(crud)
- 1.需求分析
- 2.环境配置(在上一篇的环境基础)
- 1.配置web.xml
- 2.配置springDispatcherServlet-servlet.xml
- 3.前端样式模板rest.jsp
- 4.GET
- 1.BookHandler.java
- 2.rest.jsp
- 3.结果展示
- 5.POST
- 1.BookHandler.java
- 2.rest.jsp
- 3.结果展示
- 6.DELETE(重点看)
- 1.rest.jsp
- 2.BookHandler.java
- 3.结果展示
- 7.PUT
- 1.rest.jsp
- 2.BookHandler.java
- 3.结果展示
- 8.HiddenHttpMethodFilter源码解析(debug)
- 1.下断点
- 2.点击修改书籍
- 3.下一步,发现了请求是POST
- 4.下一步,发现参数_method的值为PUT
- 5.下一步,将这个值转换成大写(意味着,在填值的时候,不区分大小写)
- 6.下一步,判断取得的值PUT是不是在集合中
- 7.下两步,将请求转换成PUT类型使得SpringMVC框架可以识别
- 9.Rest的DELETE和PUT总结
1.Postman
1.基本介绍
Postman是什么?
2.Postman快速入门
1.Postman下载
点击安装自动安装在系统盘
2.基本操作
1.修改字体大小
2.ctrl + “+” 放大页面
3.进入创建请求界面
2.需求分析
3.具体操作
4.保存请求到文件夹中
1.点击保存
2.创建新的文件夹
3.保存成功
3.使用Postman完成对前面编写的UserHander方法的请求
1.分析
2.发送请求
4. 对search方法进行请求(带参数)
1.分析
2.发送请求
5.对im方法发送请求(ant)
1.分析
2.发送请求
6.对register方法发送请求(路径参数)
1.分析
2.发送请求
7.对hello方法发送请求(带参数)
发送请求
8.Postman发送json数据(需要修改请求头)
2.Rest(优雅的url请求风格)
1.基本介绍
2.Rest风格的url案例(crud)
1.需求分析
2.环境配置(在上一篇的环境基础)
1.配置web.xml
<filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>HiddenHttpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
2.配置springDispatcherServlet-servlet.xml
<mvc:annotation-driven></mvc:annotation-driven><mvc:default-servlet-handler></mvc:default-servlet-handler>
3.前端样式模板rest.jsp
<%--Date: 2024/2/24Time: 18:21User: 孙显圣Version:1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<h3>rest风格的crud</h3>
<br>
<hr>
<h3>rest风格的查阅书籍(get)</h3>
<a href="">点击查阅书籍</a>
<br>
<hr>
<h3>rest风格的添加书籍(post)</h3><form action="" method="">name:<input name="bookName" type="text"><br><input type="submit" value="添加书籍">
</form>
<br>
<hr>
<h3>rest风格的删除书籍(delete)</h3>
<a href="">删除指定id的书籍</a>
<br>
<hr>
<h3>rest风格的修改书籍(put)</h3><form action="" method=""><input type="submit" value="修改书籍">
</form>
<br>
<hr>
</body>
</html>
4.GET
1.BookHandler.java
@RequestMapping("/user")
@Controller
public class BookHandler {@GetMapping("/book/{id}") public String getBook(@PathVariable("id") String id) {System.out.println("查询书籍id为" + id);return "success";}
}
2.rest.jsp
3.结果展示
5.POST
1.BookHandler.java
@RequestMapping("/user")
@Controller
public class BookHandler {@PostMapping("/book")public String addBook(String bookName) {System.out.println("添加书籍:" + bookName);return "success";}
}
2.rest.jsp
3.结果展示
6.DELETE(重点看)
1.rest.jsp
<%--Date: 2024/2/24Time: 18:21User: 孙显圣Version:1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title><%--引入jquery--%><script src="script/jquery-3.6.0.min.js"></script><script>$(function () {//当点击删除按钮的时候动态设置隐藏表单的action和_method的值$("#deleteBook").click(function () {//获取表单的jyquery对象,并将超链接的网址给其赋值$("#hiddenForm").attr("action", this.href);//获取隐藏按钮的值,并设置为delete$(":hidden").val("DELETE");//提交表单$("#hiddenForm").submit();//阻止超链接的默认提交行为!!!!!!return false;})})</script>
</head>
<body>
<h3>rest风格的crud</h3>
<br>
<hr><h3>rest风格的删除书籍(delete)</h3>
<a href="user/book/100" id="deleteBook">删除指定id的书籍</a>
<%--隐藏表单,用于传递name=_method的参数--%>
<%--动态传入action和_method的参数,并且以post的形式发送--%>
<form action="" method="post" id="hiddenForm" ><input type="hidden" name="_method">
</form>
<br>
<hr>
2.BookHandler.java
package com.sun.web.rest;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@RequestMapping("/user")
@Controller
public class BookHandler {@RequestMapping (value = "/book/{id}", method = RequestMethod.DELETE) public String deleteBook(@PathVariable("id") String id) {System.out.println("删除书籍: id为" + id);return "redirect:/user/success";}@RequestMapping("/success")public String success() {return "success";}}
3.结果展示
7.PUT
1.rest.jsp
<%--Date: 2024/2/24Time: 18:21User: 孙显圣Version:1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head></head>
<body>
<h3>rest风格的crud</h3>
<br>
<hr><h3>rest风格的修改书籍(put)</h3>
<%--1.post类型--%>
<form action="user/book/update" method="post">请输入id:<input type="text" name="id"><%--2.传入一个name=_method值为PUT的参数--%><input type="hidden" name="_method" value="PUT"><input type="submit" id="update" value="修改书籍">
</form>
<br>
<hr>
</body>
</html>
2.BookHandler.java
package com.sun.web.rest;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@RequestMapping("/user")
@Controller
public class BookHandler {@PutMapping("/book/update")public String updateBook(String id){System.out.println("修改书籍id为" + id);return "redirect:/user/success";}@RequestMapping("/success")public String success() {return "success";}
}
3.结果展示
8.HiddenHttpMethodFilter源码解析(debug)
1.下断点
2.点击修改书籍
3.下一步,发现了请求是POST
4.下一步,发现参数_method的值为PUT
5.下一步,将这个值转换成大写(意味着,在填值的时候,不区分大小写)
6.下一步,判断取得的值PUT是不是在集合中
7.下两步,将请求转换成PUT类型使得SpringMVC框架可以识别
9.Rest的DELETE和PUT总结
- PUT
- 表单提交的方式要是POST
- 表单内部有一个参数名为_method,值为PUT
- 如果是以超链接的形式提交(比如前面的例子中的DELETE)
- 表单提交的方式为POST
- 动态设置参数名为_method的值为DELETE
- 动态设置action
- 注意要阻止超链接自己的提交行为,否则会变成GET!!!