Restful:基于Http协议实现的,其目的是为了提高系统的可伸缩性,降低应用之间的耦合度,便于框架分布式处理程序。
Restful主要对定位资源的URL风格和如何对资源进行操作进行了规范。
SpringMvc对Restful的支持:
- 利用@RequestMapping指定要处理请求的url模板和Http请求的动作类型。
- 利用@PathVariable将url请求模板中的变量映射到处理方法参数上。
- 利用ajax在客户端发出put、delete请求。
resetful 和 springmvc的整合
springmvc并不能直接接收到通过put、delete方式传过来的参数,我们可以通过hiddenHttpMethodFilter来解
决,它的作用是将put和delete的参数获取并重新放入request中,controller就可以直接拿到这些参数,配置如下:
在web.xml中配置一个过滤器
<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>
那么前台的ajax应该怎么写呢,如下图所示:
$.ajax({
url: "http://localhost:8087/deleteRestful",
type:"post",
data:{
_method:"delete",
id:1
},
dataType:"json",
success:function(data){
console.log("查询全部数据");
console.log(data);
console.log("查询全部数据");
},
error:function (err){
console.log(err);
}
});
注意:要想发送 delete 和 put 请求时,请求类型必须为Post(即type为post),但是在data中必须写”_method”(_method为put或delete),后台正常接收参数即可。