博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC ------HiddenHttpMethodFilter 过滤器
阅读量:7235 次
发布时间:2019-06-29

本文共 1322 字,大约阅读时间需要 4 分钟。

hot3.png

    Spring3.0以后添加了HiddenHttpMethodFilter过滤器,来支持支持Rest 风格的URL请求。

    REST  url:

          —  /order/1  HTTP GET  :得到 id = 1 的order

          —  /order/1  HTTP DELETE  :删除 id = 1 的order

          —  /order/1  HTTP PUT  :更新 id = 1 的order

          —  /order/1  HTTP POST :新增 id = 1 的order

    首先配置到web.xml文件中

    
HiddenHttperMethodFilter
    
org.springframework.web.filter.HiddenHttpMethodFilter
    
HiddenHttpMethodFilter    
/*

  在POST的 请求中设置参数 _method="DELETE" 

    
    
    
    

    编写Java方法

@RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)public String testRest(@PathVariable Integer id){    System.out.println("test delete:"+id);    return "success";}@RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)public String testRest(@PathVariable Integer id){    System.out.println("test delete:"+id);    return "success";}

    原来,在HiddenHttpMethodFilter中的doFilterInternal ,会先去POST请求中获取_method这个参数,根据参数的名字来转发请求。

154825_OcmG_2321816.png

    注意:如果你使用ajax进行传输数据,那么你也应该按照上面的方式做。在你传输数据data里面包含:_method:"PUT"的键值对,并且传输方式依旧设置为"POST".

    不然,你用ajax用"PUT"的方式请求,SpringMVC将无法找到你所要传输的数据,throw Handler execution resulted in exception: Request method 'POST' not supported 这样的异常信息。

    看源代码可以知道,在SpingMVC中本质上只识别GET,POST!

转载于:https://my.oschina.net/u/2321816/blog/546825

你可能感兴趣的文章
人生不能纠结
查看>>
MySQL(User&Grant)
查看>>
网站数据库中“密码加密”方法思考
查看>>
不要随便设置随机种子
查看>>
3.4Java基本类型转换
查看>>
从零开始用 Flask 搭建一个网站(四)
查看>>
这就是我想要的 VSCode 插件!
查看>>
GraphQL 如何取代 Redux
查看>>
【FFMPEG】高级使用
查看>>
ThreadLocal的理解
查看>>
Html<input type='radio' />无法选择
查看>>
GridView嵌套ListView数据显示问题
查看>>
ubuntu修复grub,u盘引导问题
查看>>
Mysql插入2.6亿条垃圾数据后会发生什么?
查看>>
spring mvc 中web.xml配置信息解释
查看>>
vim常用的方法
查看>>
模仿淘宝搜索,弹出搜索浮层。
查看>>
bounds 与frame的区别
查看>>
好论坛
查看>>
鸟哥Linux私房菜基础学习篇 第一部分:Linux的规划与安装_主机规划与磁盘分区...
查看>>