码迷,mamicode.com
首页 > Web开发 > 详细

3、REST风格的URL

时间:2015-11-09 22:39:26      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:

 

1、概述

  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   

 

2、如何发送一个PUT和DELETE请求?
    常见的有post和get请求,那么怎么弄一个put和delete请求出来呢?浏览器的form表单只支持GET和POST请求,而DELETE和PUT请求并不支持。为解决这个题,Spring3.0添加了一个 HiddenHttpMethodFilter 过滤器,可以将带有_method参数的http post请求转换为put或delete请求。从而解决问题。

  如何发送PUT和DELETE请求呢?

  ①、需要在web.xml文件中配置一个HiddenHttpMethodFilter:

<!-- 配置org.springframework.web.filter.HiddenHttpMethodFilter:可以把POST请求转化为DELETE或PUT请求 -->
<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>

  ②、需要发送post请求

  ③、在发送post请求时携带一个 name="_method" 的隐藏域,其值为delete或者是put。如下:

<!-- 发送put请求 -->
<form action="rest/put/1" method="post">
    <input type="hidden" name="_method" value="put" >
    <input type="submit" value="3、tetRest PUT请求">
</form>
    
<!-- 发送delete请求 -->
<form action="rest/delete/1" method="post">
    <input type="hidden" name="_method" value="delete" >
    <input type="submit" value="4、tetRest DELETE请求">
</form>

  ④、在接受PUT或DELETE请求方法的注解@RequestMapping中设定method为PUT或DELETE,如下:

@RequestMapping(value="/rest/put/{id}", method=RequestMethod.PUT)
public String testRestPut(@PathVariable Integer id){
    System.out.println("testRestPut 方法,响应PUT请求。id = " + id);
        
    return SUCCESS;
}
    
@RequestMapping(value="/rest/delete/{id}", method=RequestMethod.DELETE)
public String testRestDelete(@PathVariable Integer id){
    System.out.println("testRestDelete 方法,响应DELETE请求。id = " + id);
        
    return SUCCESS;
}

 

3、REST风格的URL

标签:

原文地址:http://www.cnblogs.com/lj95801/p/4951255.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!