如何使用RES请求风格

Posted bwlu---ed

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用RES请求风格相关的知识,希望对你有一定的参考价值。

REST:即 Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。
它结构清晰、符合标准、易于理解、扩展方便, 所以正得到越来越多网站的采用。
HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。
它们分别对应四种基本操作:

  • GET 用来获取资源
  • POST 用来新建资源
  • PUT 用来更新资源
  • DELETE 用来删除资源

示例:

  • /order/1 HTTP GET :得到 id = 1 的 order
  • /order/1 HTTP DELETE:删除 id = 1的 order
  • /order/1 HTTP PUT:更新id = 1的 order
  • /order HTTP POST:新增 order

浏览器 form 表单只支持 GET 与 POST 请求,而DELETE、PUT 等 method 并不支持,Spring3.0 添加了一个过滤器HiddenHttpMethodFilter,可以将这些请求转换为标准的 http 方法,使得支持 GET、POST、PUT 与 DELETE 请求。
POST请求如何转化为put请求和delele请求?
1、在web.xml文件中配置:

1 <!-- HiddenHttpMethodFilter过滤器可以将POST请求转化为put请求和delete请求! -->
2 <filter>
3   <filter-name>hiddenHttpMethodFilter</filter-name>
4   <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
5 </filter>
6 <filter-mapping>
7   <filter-name>hiddenHttpMethodFilter</filter-name>
8   <url-pattern>/*</url-pattern>
9 </filter-mapping>

2、在表单域中需要携带一个name值为_method,value值为put或者delete的参数,get和post方法正常使用,如下所示:

 1 <!-- REST-----GET -->
 2 <a href="${pageContext.request.contextPath }/order/1">提交get请求</a>
 3 <!-- REST-----POST -->
 4 <form action="${pageContext.request.contextPath }/order/1" method="post">
 5     <input type="submit" value="提交POST请求">
 6 </form>
 7 <!-- REST-----PUT -->
 8 <form action="${pageContext.request.contextPath }/order/1" method="post">
 9     <input type="hidden" name="_method" value="put">
10     <input type="submit" value="提交put请求">
11 </form>
12 <!-- REST-----DELETE -->
13 <form action="${pageContext.request.contextPath }/order/1" method="post">
14     <input type="hidden" name="_method" value="delete">
15     <input type="submit" value="提交delete请求">
16 </form>

3、在后台接收参数并作处理,

@RequestMapping中的参数名称必须和@PathVariable中value的值相同。
 1 public static String SUCCESS="success";//WEB-INF下的success.jsp
 2 //REST请求方式-----GET获取
 3 @RequestMapping(value="/order/{id}",method=RequestMethod.GET)
 4 public String helloGet(@PathVariable(value="id") Integer id){
 5     System.out.println("GET-------"+id);
 6     return SUCCESS;
 7 }
 8 //REST请求方式-----POST添加
 9 @RequestMapping(value="/order/{id}",method=RequestMethod.POST)
10 public String helloPost(@PathVariable(value="id") Integer id){
11     System.out.println("POST-------"+id);
12     return SUCCESS;
13 }
14 //REST请求方式-----PUT修改
15 @RequestMapping(value="/order/{id}",method=RequestMethod.PUT)
16 public String helloPut(@PathVariable(value="id") Integer id){
17     System.out.println("PUT-------"+id);
18     return SUCCESS;
19 }
20 //REST请求方式-----DELETE删除
21 @RequestMapping(value="/order/{id}",method=RequestMethod.DELETE)
22 public String helloDelete(@PathVariable(value="id") Integer id){
23     System.out.println("DELETE-------"+id);
24     return SUCCESS;
25 }

 

以上是关于如何使用RES请求风格的主要内容,如果未能解决你的问题,请参考以下文章

如何从一个片段导航到另一个片段?

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

如何使用滚动片段容器实现通用布局?

如何修改Android App的样式风格