SpringMVC-05-RestFul风格

SpringMVC-05-RestFul风格

概述

Restful是一个资源定位以及资源操作的风格,不是标准也不是协议,只是一种风格,基于该风格设计的软件更加简洁,更加具有层次感,更加易于实现缓存等机制

比如

http://localhost:8080/method?add=1&..&....&...&

变成

http://localhost:8080/method/add/1/2/..../.../

功能

  • 资源:互联网所有的事物都可以抽象为资源
  • 资源操作:使用POST,DELETE,PUT,GET使用不同的方法对资源进行操作,分别对应增,删,改,查

示例

普通风格

@Controller
public class ControllerRestFul {
    @RequestMapping("/add")
    public String normal(int a, int b, Model model){
        int res = a+b;
        model.addAttribute("msg",res);
        return "style";
    }
}

url:http://localhost:8080/add?a=1&b=2

RestFul风格

@Controller
public class ControllerRestFul {	
	@RequestMapping("/add/{a}/{b}")
    public String restful(@PathVariable int a,@PathVariable int b, Model model){
        int res = a+b;
        model.addAttribute("msg",res);
        return "style";
    }
}

url:http://localhost:8080/add/1/2

url可复用

通过指定方法类型,使得同一个url得以复用

@RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.POST)
@RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.GET)
...

或者使用变体注解精简

@GetMapping
@PostMapping
@DeleteMapping
@PostMapping

为什么使用RestFul风格

  • 精简,风格简单
  • 高效,支持缓存
  • 安全,参数隐蔽

相关文章

开发过程中是不可避免地会出现各种异常情况的,例如网络连接...
说明:使用注解方式实现AOP切面。 什么是AOP? 面向切面编程...
Spring MVC中的拦截器是一种可以在请求处理过程中对请求进行...
在 JavaWeb 中,共享域指的是在 Servlet 中存储数据,以便在...
文件上传 说明: 使用maven构建web工程。 使用Thymeleaf技术...
创建初始化类,替换web.xml 在Servlet3.0环境中,Web容器(To...