spring mvc学习(33):原生apiSpring MVC过滤器-HiddenHttpMethodFilter
浏览器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的表单进行过滤,所以在页面中必须如下设置:
<form action="..." method="post"><input type="hidden" name="_method" value="put" />......</form>而不是使用:<form action="..." method="put">......</form>同时,HiddenHttpMethodFilter必须作用于dispatcher前,所以在web.xml中配置HiddenHttpMethodFilter时,需参照如下代码:<filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>HiddenHttpMethodFilter</filter-name><servlet-name>spring</servlet-name></filter-mapping><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:dispatcher.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>*.html</url-pattern></servlet-mapping>
同样的,作为Filter,可以在web.xml中配置HiddenHttpMethodFilter的参数,可配置的参数为methodParam,值必须为GET,、POST、 HEAD、OPTIONS、PUT、DELETE、TRACE中的一个。
spring mvc学习(33):原生apiSpring MVC过滤器-HiddenHttpMethodFilter相关推荐
- Asp.Net MVC学习总结(三)——过滤器你怎么看?
一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的逻辑.提供了一个简单而优雅的方式来实现横切关注点. 2.所谓的过滤器(Filters),MVC框架里 ...
- ASP.NET MVC 学习(一)--MVC的cshtml的介绍
cshtml 是 MVC3 之后新增的视图文件,跟原先的 aspx 很相似. 区别主要在于二者的解释引擎不同.aspx 采用的是 WebForm Engine,而 cshtml 则是 Razor Re ...
- Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解
Spring MVC 学习总结(二)--控制器定义与@RequestMapping详解 目录 一.控制器定义 1.1.实现接口Controller定义控制器 1.2.使用注解@Controller定义 ...
- Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)...
Spring MVC 学习总结(九)--Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务) 目录 一.JSON 1.1.概要 1.2.使用ModelAndView ...
- 【Spring MVC学习】spring mvc入门示例
之前进公司就直接使用spring mvc做项目了,并没有系统学习过,后来再回头去总结的时候发现我只是在项目中会使用,但是有关spring mvc的配置,还有注解什么的想起来会感觉很混乱,趁着这几天不忙 ...
- Spring MVC学习
出处http://www.cnblogs.com/zhuxiaojie/p/4619804.html SpringMVC框架 转载请注明出处 目录 一:配置springMVC开发环境1.1.配置文件的 ...
- Spring MVC学习(8)—HandlerInterceptor处理器拦截器机制全解
基于最新Spring 5.x,详细介绍了Spring MVC的HandlerInterceptor处理器拦截器机制,以及它的一系列拦截方法. 本次我们来学习Sring MVC的HandlerInter ...
- 【Spring MVC学习笔记 六】SpringMVC框架整合AJAX完成局部刷新
本篇Blog介绍另一个常用的技术Ajax.虽然Ajax可以脱离SpringMVC去使用,但是SpringMVC对AJax有更好的支持 AJAX概念概述 AJAX即Asynchronous Javasc ...
- Spring MVC 学习笔记 对locale和theme的支持
Spring MVC 学习笔记 对locale和theme的支持 Locale Spring MVC缺省使用AcceptHeaderLocaleResolver来根据request header中的 ...
最新文章
- nanoflann库
- null未定义_PHP的isset()、is_null、empty()使用总结
- 在web开发中的三个层次使用事务
- Windows11 发布更新 Insider Preview Build 22000.100
- 轻量级ORM框架Dapper应用二:使用Dapper实现CURD操作
- 防抖与节流方案_如何理解js的防抖与节流
- python实现端口扫描器_python 实现端口扫描工具
- EndNote毕业论文参考文献格式输出
- iptables 实现主机防火墙(四表五链)
- 迅雷磁盘缓存设置过高会影响其它网络应用软件的速度
- 如何避免自由软件项目中的需求变更
- 地理遥感专业属于计算机行业吗,遥感科学与技术专业怎么样?
- JSP设置Excel表格换行_如何在WPS-Excel表格中设置可爱的“温馨提示”?
- Java面试——数据库
- android 上午零点格式,Android零点一度的区别——Matrix
- 程序员可选择的个博客论坛网站
- Ubuntu 11.10 图形(图解)安装教程、基本设置、网络设置、软件源、硬件驱动
- MVC 音乐商店 第 10 部分: 导航和网站设计、 结论的最后更新
- #Python# 十进制数转换为二进制数(包含小数)
- php快递查询接口,一次接入顺丰、京东、申通、圆通、韵达、中通、天天、百世、邮政、EMS等主流快递公司
热门文章
- [译]第三章:什么是组织结构
- Delphi捕捉DLL执行所抛出的异常。
- 【EXLIBRIS】纸版书目整理 -- 大书架 上 【292 种】【327册】
- 原生支付url参数错误_小程序支付
- java javax.xml.ws_如何通过javax.xml.ws.Service进行调用
- 洛阳师范学院计算机科学与技术专业怎么样,2019洛阳师范学院专业排名
- php如何拼接数组,PHP怎么合并数组
- echarts 有引导线和内部文字_点、线、面构图的异同以及相互转化
- java 上传远程图片,java上传图片到另一台服务器上,怎么解决
- php动态数组的用法