如何使用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网络请求封装