您的位置:首页 > 理论基础 > 计算机网络

SpringMVC用HiddenHttpMethodFilter配置Rest风格的URL

2017-10-08 09:43 337 查看
1.REST风格的URL

REST的具体定义可以百度查询。

我在知乎上看见一个比较通俗易懂的回答,在这里分享一下:



2.HiddenHttpMethodFilter

浏览器中FORM表单只支持GET和POST两种类型的HTTP请求,而DELETE和PUT等请求方式并不被支持。于是spring3.0中添加了一个过滤器HiddenHttpMethodFilter,它可以通过自己的doFilterInternal方法把POST(只过滤POST请求)请求转换为其他的http请求。

3.具体配制方法

<1>在form表单中配置如下

<form action="..." method="post">
<input type="hidden" name="_method" value="put" />
......
</form> <2>为了让HiddenHttpMethodFilter生效,要在web.xml中配置它。需要注意的是它必须配置在dispatcher前面。相关配置文件如下:
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<!--过滤所有请求-->
<url-pattern>/*</url-pattern>url-pattern>
</filter-mapping>
4.遇见的一个问题
在配置好HiddenHttpMethodFilter之后。form表单某个被提交的post请求,被转换成为了put请求,然后映射到某个Controller里面,这个Controller最后返回一个jsp页面。这个时候出现了一个错误:HTTP Status 405 - JSPs only

 permit GET POST or HEAD.

出错的原因是:jsp接口(jsp页面)只支持GET方法和POST方法。

解决方法:给方法加上一个@ResponseBody()注解。



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: