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()注解。
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()注解。
相关文章推荐
- Spring MVC 使用HiddenHttpMethodFilter配置Rest风格的URL
- Spring MVC 使用拦截器 HiddenHttpMethodFilter配置Rest风格的URL
- SpringMVC -- @PathVariable/Rest风格的URL HiddenHttpMethodFilter (2)
- Spring MVC 使用HiddenHttpMethodFilter配置Rest风格的URL
- springMVC------Rest风格,HiddenHttpMethodFilter的作用
- Spring MVC HiddenHttpMethodFilter 实现 REST风格的URL
- SpringMVC中的Rest风格URL
- SpringMVC之HiddenHttpMethodFilter 过滤器分析
- SpringMVC实现REST风格URL的两种方法
- SpringMVC REST 风格静态资源访问配置
- HttpURLConnection请求RestFull风格后台
- 利用HttpURLConnection和WebClient发布REST风格的WebService客户端(解决超时问题)
- SpringMVC DispatcherServlet在配置Rest url-pattern的一点技巧
- SpringMvc入门四----rest风格Url
- springMvc Rest风格Url
- SpringMVC之HiddenHttpMethodFilter 过滤器
- SpringMVC(五):HiddenHttpMethodFilter实现REST请求
- SpringMVC REST 风格静态资源访问配置
- 《一头扎进SpringMvc视频教程》Rest风格的资源URL