请求过滤器
REST风格 :软件编程风格
Springmvc:
GET :查
POST :增
DELETE :删
PUT :改
普通浏览器 只支持get post方式 ;其他请求方式 如 delelte|put请求是通过 过滤器新加入的支持。
springmvc实现 :put|post请求方式的步骤
a.增加过滤器
web.xml
<!-- 增加HiddenHttpMethodFilte过滤器:目的是给普通浏览器 增加 put|delete请求方式 -->
<filter>
<filter-name>HiddenHttpMethodFilte</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilte</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
b.表单 index.jsp
<form action="handler/testRest/1234" method="post">
<input type="submit" value="增">
</form>
<!-- <input type="hidden" name="_method" value="DELETE"/> -->
<form action="handler/testRest/1234" method="post">
<input type="hidden" name="_method" value="DELETE"/>
<input type="submit" value="删">
</form>
<form action="handler/testRest/1234" method="post">
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="改">
</form>
<form action="handler/testRest/1234" method="get">
<input type="submit" value="查">
</form>
c.控制器 hander
@RequestMapping(value="testRest/{id}",method=RequestMethod.POST)
public String testPost(@PathVariable("id") Integer id) {
System.out.println("post:增 " +id);
//Service层实现 真正的增
return "success" ;// views/success.jsp,默认使用了 请求转发的 跳转方式
}
@RequestMapping(value="testRest/{id}",method=RequestMethod.DELETE)
public String testDelete(@PathVariable("id") Integer id) {
System.out.println("delete:删 " +id);
//Service层实现 真正的删
return "success" ;// views/success.jsp,默认使用了 请求转发的 跳转方式
}
@RequestMapping(value="testRest/{id}",method=RequestMethod.GET)
public String testGet(@PathVariable("id") Integer id) {
System.out.println("get:查 " +id);
//Service层实现 真正的查
return "success" ;// views/success.jsp,默认使用了 请求转发的 跳转方式
}
@RequestMapping(value="testRest/{id}",method=RequestMethod.PUT)
public String testPut(@PathVariable("id") Integer id) {
System.out.println("put:改 " +id);
//Service层实现 真正的改
return "success" ;// views/success.jsp,默认使用了 请求转发的 跳转方式
}