相信大家都遇到过在浏览器中表单提交的时候如果使用post和get是完全没有问题的,但是你使用delete和put方式提交,能够成功吗?
目前html5和一些新的浏览器支持所有的http方法,但是不是全部浏览器都支持,这个时候你如果还是想通过浏览器进行提交该怎么办了?
哈哈,不绕圈子了
html表单中,将put和delet请求伪装成post请求就可以了,关键是创建一个带有隐藏域并且method为post的表单。例如下面:
<form method="post">
<input type="hidden" name="_method" value=“delete"/>
.......
</form>
下面还有一种更简单的方式:
当使用spring 的表单绑定库时,<sf:form>会让其变得更加简单。你可以讲method属性设置为期望的HTTP方法,<sf:form>将为你隐藏域:
<sf:form method="delete" modelAttribute="spitter">
</sf:form>
当然你的服务器端还是应该做相应的配置。
web.xml
<filter>
<filter-name>httpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这里我们将HiddenHttpMethodFilter匹配到/*模式,这样所有URL的请求在到达DispatcherServlet前都会经过HiddenHttpMethodFilter。
注:通过非浏览器发送的请求以及RestTemplate发送的请求,没有必要包装成post,因此他们都支持所有的HTTP请求方式。
相关推荐
在JSP中访问数据库方法在JSP中访问数据库方法在JSP中访问数据库方法在JSP中访问数据库方法在JSP中访问数据库方法
JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能...
JSP中常见的page,request,session,application的作用域
jsp中显示数据的方法 jsp中显示数据的方法 jsp中显示数据的方法
jsp中session使用方法
jsp的四个作用域\
JSP的九个内置对象及四个作用域
JSP中文解码方法
jsp中增加数据的方法 jsp中增加数据的方法 jsp中增加数据的方法
jsp中百分比表示方法
jsp 中HttpClient中的POST方法实例详解.docx
jsp get提交 如何隐藏地址栏中的问号.zip
JSP 中文验证码 实现方法 JSP 中文验证码 实现方法
详尽,细致的向你总结了jsp九个常用的隐藏对象
jsp中的request.getParameter(参数名):接受客户端的数值,而request是jsp的内置对象
jsp中出现的所有中文乱码都可以解决,没有做不得,只有想不到。
jsp EL调用业务方法
JSP页面跳转方法汇总,JSP页面跳转方法汇总
该工程主要是通过jsp和radio控件,利用JavaScript技术,简单判断radio控件是否选中,并且获取radio控件的值