SpringMVC:RestFul风格
概念
RestFul是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。RestFul风格最主要特性为简洁(代码简单清晰)、高效(易于实现缓存机制)、安全(数据安全)。
传统方式操作资源:
通过不同的参数实现不同的效果
- http://localhost:8080/getUser.action?id=1 查询GET
- http://localhost:8080/saveUser.action 新增POST
- http://localhost:8080/updateUser.action 修改POST
- http://localhost:8080/deleteUser.action?id=1 删除POST或GET
RestFul风格操作资源:
通过不同的请求方式实现不同的效果
- http://localhost:8080/user/1 查询GET
- http://localhost:8080/user 新增POST
- http://localhost:8080/user 修改PUT
- http://localhost:8080/user/1 删除DELETE
实现方式
1.在web.xml中引入HiddenHttpMethodFilter过滤器
<!-- 使用Rest风格的URI,将页面普通的post请求转为指定的delete或者put请求 -->
<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>
</filter-mapping>
2、在发送PUT请求或者Delete请求时,由于表单元素默认只能发送get请求和post请求,需要配置一个隐藏域:
<form action="/user/12" method="post">
<input type="hidden" name="_method" value="DELETE">
<input type="submit" value="删除">
</form>
<form action="/user" method="post">
<input type="hidden" name="_method" value="PUT">
<input type="submit" value="修改">
</form>
3、如果测试遇到如下报错,为tomcat版本问题,使用tomcat7即可解决。