文章目录
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/24
Time: 18:21
User: 孙显圣
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/24
Time: 18:21
User: 孙显圣
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/24
Time: 18:21
User: 孙显圣
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!!!