REST风格:
/user/1 get请求 获取用户
/user/1 post请求 新增用户
/user/1 put请求 更新用户
/user/1 delete请求 删除用户
在Spring mvc中如何提交put和delete请求呢?
需要在web.xml中配置一个HiddenHttpMethodFilter过滤器。该过滤器过滤post请求,如果在post请求中有一个_method参数,那么_method参数值就是请求方式。所以在jsp页面可以这样写:
web.xml配置过滤器:
methodFilter org.springframework.web.filter.HiddenHttpMethodFilter methodFilter /*
控制器:
package com.proc;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@Controllerpublic class User { @RequestMapping(value="user/{id}",method=RequestMethod.GET) public String get(@PathVariable("id") Integer id){ System.out.println("获取用户:"+id); return "hello"; } @RequestMapping(value="user/{id}",method=RequestMethod.POST) public String post(@PathVariable("id") Integer id){ System.out.println("添加用户:"+id); return "hello"; } @RequestMapping(value="user/{id}",method=RequestMethod.PUT) public String put(@PathVariable("id") Integer id){ System.out.println("更新用户:"+id); return "hello"; } @RequestMapping(value="user/{id}",method=RequestMethod.DELETE) public String delete(@PathVariable("id") Integer id){ System.out.println("删除用户:"+id); return "hello"; }}
我们一次点击GET请求、POST请求、PUT请求和DELETE请求:
获取用户:1添加用户:1更新用户:1删除用户:1
总结:发出PUT请求和DELETE请求的步骤:
1、在发出请求时必须是POST请求;
2、在POST请求中添加一个名为_method的参数,其值用来指定是PUT请求还是DELETE请求;
3、配置HiddenHttpMethodFilter过滤器。该过滤器的作用是POST请求可以转换成PUT或DELETE请求。