• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

springMVC_7_SpringMVC请求_RestFul风格

武飞扬头像
鸠叁
帮助1

四、RestFul风格

1.概念
Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lX6wSuMO-1669691440664)(C:\Users\78153\Desktop\新建文本文档.assets\5b826968b6af4a1ca1d2ceb402e7e7b2.png)]

2.功能
资源:互联网所有的事物都可以被抽象为资源
资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。
分别对应 添加、 删除、修改、查询。
传统方式操作资源:通过不同的参数来实现不同的效果!方法单一,post 和 get
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
使用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
相比于传统方式使用链接来访问请求,Resful可以通过使用通过不同的请求方式来达到不同的效果
3.基本使用
①:传统的方式

@Controller()
@RequestMapping("/rest")
public class RestFulController {

    @RequestMapping("/test.do")
    public String test(int a, int b, Model model){
        int rust = a   b;
        model.addAttribute("msg","结果=" rust);
        // 配置了视图解析器后,写法
        return "suc";
    }
}

访问的url

http://localhost:8080/SpringMVC/rest/test.do?a=1&b=1

返回结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y2QNMMae-1669691440665)(C:\Users\78153\Desktop\新建文本文档.assets\b6e32fbf35ec4c008081698b81bdd5f2.png)]
②:RestFul风格
controller

//映射访问路径
@RequestMapping("/commit.do/{p1}/{p2}")
public String index(@PathVariable int p1, @PathVariable String p2, Model model){
    String result = p1 p2;
    //Spring MVC会自动实例化一个Model对象用于向视图中传值
    model.addAttribute("msg", "结果:" result);
    //返回视图位置
    return "suc";
}

url

http://localhost:8080/SpringMVC/rest/commit.do/1/1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8DwcO9VZ-1669691440666)(C:\Users\78153\Desktop\新建文本文档.assets\5e4122a79c0b45e682922d2aed3ea6a5.png)]
4.使用method属性指定请求类型
用于约束请求的类型,可以收窄请求范围。指定请求谓词的类型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等
我们来测试一下:

//映射访问路径,必须是POST请求
@RequestMapping(value = "/hello",method = {RequestMethod.POST})
public String index2(Model model){
    model.addAttribute("msg", "hello!");
    return "test";
}

我们使用浏览器地址栏进行访问默认是Get请求,会报错405:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N0KtlngM-1669691440667)(C:\Users\78153\Desktop\新建文本文档.assets\920e72fd32524f7b9c381d98ebe2a11e.png)]
如果将POST修改为GET则正常了

//映射访问路径,必须是POST请求
@RequestMapping(value = "/hello",method = {RequestMethod.GET})
public String index2(Model model){
    model.addAttribute("msg", "hello!");
    return "suc";
}

Spring MVC 的 @RequestMapping 注解能够处理 HTTP 请求的方法, 比如 GET, PUT, POST, DELETE 以及 PATCH。
所有的地址栏请求默认都会是 HTTP GET 类型的。
方法级别的注解变体有如下几个:组合注解

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

@GetMapping 是一个组合注解,平时使用的会比较多!
它所扮演的是 @RequestMapping(method =RequestMethod.GET) 的一个快捷方式。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgeijgj
系列文章
更多 icon
同类精品
更多 icon
继续加载