SpringMVC中发送PUT和DELETE请求

1、在web.xml中配置 HiddenHttpMethodFilter 过滤器。

2、浏览器发送 POST 请求。

3、在发送 POST 请求时,带一个 name="_method" value="PUT/DELETE" 的隐藏域。

REST:表现层状态转化,如果客户端想操作服务器端,必须通过某种手段,让服务器端发送状态转化,而这种转化是建立在表现层之上的,所以就是表现层状态转化。

具体来说,就是 HTTP 协议里面有四个表示操作方式的动词 GET、POST、PUT、DELETE,分别对应四种基本操作:GET 用于获取资源,POST 用于新增资源,PUT 用于更新资源,DELETE 用于删除资源。

/order/1   HTTP GET              获得 ID=1 的order

/order/1  HTTP PUT               更改 ID=1 的order

/order/1  HTTP DELETE                 删除 ID=1 的order

/order      HTTP POST                    新增一个 order 

HiddenHttpMethodFilter

在浏览器端的 Form 表单中只支持 GET、POST 请求,不支持 PUT、DELETE 请求。Spring 3.0增加了一个过滤器可以将 POST 请求转化为 PUT、DELETE 请求。

在 web.xnl 文件中配置 HiddenHttpMethodFilter 过滤器。

<filter>

<filter-name>HiddenHttpMethodFilter</filter-name>

<filter-class>

org.springframework.web.filter.HiddenHttpMethodFilterorg.springframework.web.filter.HiddenHttpMethodFilter

</filter-class>

</filter>

<filter-mapping>

<filter-name>HiddenHttpMethodFilter</filter-name>

<url-pattern>/*</url-pattern

</filter-mapping>

因为需要将 POST 请求转化为 PUT 和 DELETE 请求,所以在测试界面需要创建一个 form 表单,且提交方法设为 post 。因为 HiddenHttpMethodFilter 过滤器的原理是获取一个 name 为 _method 的属性,获取其值,根据其值决定转化为 PUT 还是 DELETE 请求,所以需要在表单中设置一个 name 值为 _method 的隐藏域元素。如下:

<form action="/testPUT" method="post">

<input type="hidden" name="_method" value="PUT">

...

<input type="submit" value="testPUT">

</form>

在Controller 类中添加一个方法,用户响应 PUT 隐射,方法设置为 RequestMethod.PUT

@RequestMapping(value="formtestPUT",method=RequestMethod.PUT)

public String formPut(String username){

System.out.println("put");

return "success";

}

将 POST 转化为 DELETE 类似。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,859评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 本文包括:1、Filter简介2、Filter是如何实现拦截的?3、Filter开发入门4、Filter的生命周期...
    廖少少阅读 7,319评论 3 56
  • 一. Java基础部分.................................................
    wy_sure阅读 3,833评论 0 11
  • 每当我独自走在人来人往的大街上,看着出双入对的佳人,我总会情不自禁的驻足,不是因为羡慕,更多的是想了解了解...
    夏天的迷恋阅读 345评论 0 0