Spring MVC(3)——REST风格

文章目录

    • @PathVariable 获取 URL 中的占位符
    • REST风格在项目中的体现
    • 如何发送 PUT 和 DELETE 请求
      • 1. 在 web.xml 中配置 HiddenHttpMethodFilter
      • 2. 前端发送 POST 请求并带上 _method 请求参数,参数值是要转换成的请求的名称(PUT或DELETE)

@PathVariable 获取 URL 中的占位符

  • 带占位符的 URL 是 Spring3.0 新增的功能,该功能在 SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义
  • 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过 @PathVariable(“xxx”) 绑定到操作方法的入参中
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id) {
	System.out.println("testPathVariable: " + id);
	return “success”;
}

REST风格在项目中的体现

HTTP 协议里面,四个表示操作方式的动 词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET 用来获 取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源

对于数据库的增删改查操作

  • 传统的写法:
    • /getOrder?id=1:得到 id = 1 的 order
    • /deleteOrder?id=1:删除 id = 1的 order
    • /updateOrder?id=1:更新id = 1的 order
    • /addOrder:新增 order
  • REST风格的写法:
    • /order/1 [GET请求]:得到 id = 1 的 order
    • /order/1 [DELETE请求]:删除 id = 1的 order
    • /order/1 [PUT请求]:更新id = 1的 order
    • /order [POST请求]:新增 order
      是不是比上面的简洁很多

如何发送 PUT 和 DELETE 请求

1. 在 web.xml 中配置 HiddenHttpMethodFilter

HiddenHttpMethodFilter 可以根据发送过来的 POST 请求中的 _method 参数值将POST请求转为 DELETE 或 PUT 请求

<filter>
	<filter-name>HiddenHttpMethodFilterfilter-name>
	<filter-class>org.springframework.web.filter.HiddenHttpMethodFilterfilter-class>
filter>

<filter-mapping>
	<filter-name>HiddenHttpMethodFilterfilter-name>
	<url-pattern>/*url-pattern>
filter-mapping>

2. 前端发送 POST 请求并带上 _method 请求参数,参数值是要转换成的请求的名称(PUT或DELETE)

  • 以表单的形式发送 POST 请求
<form action="springmvc/testRest/1" method="post">
	<input type="hidden" name="_method" value="DELETE"/>
	<input type="submit" value="TestRest DELETE"/>
form>
  • 以 Ajax 形式发送 POST 请求
$.ajax({
	url: 'xxxxxxx',
	type: 'post',
	data: {
		_method: 'put'
	},
	success: res => {
		.......
	}
});

你可能感兴趣的:(Spring,MVC学习笔记,java,rest,springmvc)