SpringMVC-请求映射三种方式

请求映射三种方式

  • 1、请求方式的URL路径映射
  • 2、基于Ant风格的URL路径映射
  • 3、基于RESTful风格的URL路径映射
    • 3.1、概念
    • 3.2、传统方式操作资源
    • 3.3、使用RESTful操作资源

1、请求方式的URL路径映射

组合注解

2、基于Ant风格的URL路径映射

SpringMVC-请求映射三种方式_第1张图片
代码测试

@Controller
@RequestMapping("/ant")
public class AntController {
    @RequestMapping("/ant1?")
    @RequestMapping("/ant2/*.do")
    @RequestMapping("/*/ant3")
	@RequestMapping("/**/ant4")
    @RequestMapping("/ant5/**")
}

3、基于RESTful风格的URL路径映射

3.1、概念

RESTful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁、更有层次,更易于实现缓存等机制。安全

RESTful风格在HTTP请求中,通过GET(查询)、POST(新增)、PUT(更新)、DELETE(删除) 4个动词对应的基本请求操作

功能:

资源:互连网所有的事物都可以被抽象为资源

资源操作:

@GetMapping():匹配GET方式的请求           获取资源
@PostMapping:匹配POST方式的请求           新建资源 
@PutMapping:匹配PUT方式的请求             更新资源
@DeleteMapping:匹配DELETE方式的请求       删除资源
@PatchMapping:匹配PPATCH方式的请求

3.2、传统方式操作资源

通过不同的参数来实现不同的效果!方法单一

​ http://127.0.0.1/item/queryItem.action?id=1 查询,GET

​ http://127.0.0.1/item/saveItem.action 新增,POST

​ http://127.0.0.1/item/updateItem.action 更新,POST

​ http://127.0.0.1/item/deleteItem.action?id=1 删除,GET或POST

3.3、使用RESTful操作资源

可以通过不同的请求方式来实现不同的效果!如下:请求地址一样,但是功能可以不同!

​ http://127.0.0.1/item/1 查询,GET

​ http://127.0.0.1/item 新增,POST

​ http://127.0.0.1/item 更新,PUT

​ http://127.0.0.1/item/1 删除,DELETE

代码测试

@Controller
@RequestMapping("/user")
public class RESTfulController {

    // 根据@PathVaribale注解获取路径中的参数
    @GetMapping("/{name}/{id}")
    public String findById(@PathVariable("name") String name, @PathVariable("id") String id) {
        System.out.println("根据id查询:" + id + ",名字为:" + name);
        return "success";
    }

    // @RequestMapping(method = RequestMethod.POST)
    @PostMapping
    public String add() {
        System.out.println("新增数据");
        return "success";
    }

    @DeleteMapping("/{name}/{id}")
    @ResponseBody
    public String deleteById(@PathVariable("name") String name,@PathVariable("id") String id) {
        System.out.println("根据id删除:" + id);
        return name;
    }

    @PutMapping("/{id}")
    public String updateById(@PathVariable("id") String id) {
        System.out.println("根据id修改:" + id);
        return "success";
    }
}

思考:使用路径变量的好处?

  • 使路径变得更加简洁
  • 获得参数更加方便,框架会自动进行类型转换
  • 通过路径变量的类型可以约束访问参数,如果类型不一样,则访问不到对应的请求方法,则路径与方法不匹配,而不会是参数转换失败

你可能感兴趣的:(SpringMVC,restful,java,后端)