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

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

hot3.png

    浏览器form表单只支持GET与POST请求,而DELETE、PUT等method并不支持,spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持GET、POST、PUT与DELETE请求,该过滤器为HiddenHttpMethodFilter。

    HiddenHttpMethodFilter的父类是OncePerRequestFilter,它继承了父类的doFilterInternal方法,工作原理是将jsp页面的form表单的method属性值在doFilterInternal方法中转化为标准的Http方法,即GET,、POST、 HEAD、OPTIONS、PUT、DELETE、TRACE,然后到Controller中找到对应的方法。例如,在使用注解时我们可能会在Controller中用于@RequestMapping(value = "list", method = RequestMethod.PUT),所以如果你的表单中使用的是<form method="put">,那么这个表单会被提交到标了Method="PUT"的方法中。

        需要注意的是,由于doFilterInternal方法只对method为post的表单进行过滤,所以在页面中必须如下设置:

        
        ......

而不是使用:

        ......

同时,HiddenHttpMethodFilter必须作用于dispatcher前,所以在web.xml中配置HiddenHttpMethodFilter时,需参照如下代码:

      
HiddenHttpMethodFilter
      
org.springframework.web.filter.HiddenHttpMethodFilter
  
  
      
HiddenHttpMethodFilter
      
spring
  
    
spring
    
org.springframework.web.servlet.DispatcherServlet
    
        
contextConfigLocation
        
classpath:dispatcher.xml
    
    
spring
    
*.html

同样的,作为Filter,可以在web.xml中配置HiddenHttpMethodFilter的参数,可配置的参数为methodParam,值必须为GET,、POST、 HEAD、OPTIONS、PUT、DELETE、TRACE中的一个。

转载于:https://my.oschina.net/heroShane/blog/198331

你可能感兴趣的文章
node.js学习笔记之正则表达式
查看>>
hijack.c
查看>>
使用ACL匹配奇偶网络号及IP地址
查看>>
ibatis快速入门(一)
查看>>
四、基于802.1x+AD+NPS+DHCP动态下发VLAN配置 (第4篇、添加角色DHCP服务器并配置)...
查看>>
linux基础命令学习之ls(1)
查看>>
巧用windows批处理,实现简易邮件群发功能
查看>>
SAMBA
查看>>
我的友情链接
查看>>
深度学习梯度消失或爆炸问题
查看>>
EF How to use context.Set and context.Entry, which ships with EF4.1 ?
查看>>
子查询2-查询所有价格大于平均价格的商品,并且按价格降序排序
查看>>
python-opencv boundingRect使用注意
查看>>
redis cluster
查看>>
HDU 3435A new Graph Game(网络流之最小费用流)
查看>>
newlisp 注释生成文档
查看>>
MySQL float 与decimal 各中的区别。
查看>>
NASA从太空发射激光,制作地球森林高度地图
查看>>
别人封装的socket
查看>>
PHP中set_magic_quotes_runtime()和get_magic_quotes_gpc()
查看>>