RestFul 风格(SpringMVC学习笔记三)

embedded/2024/10/18 8:27:02/

1、什么是Restful风格:

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

2、使用Restful风格

接上一个笔记的测试类

package com.li.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;//@Controller注解的类会自动添加到Spring上下文中
@Controller
public class ControllerTest2 {
//    真实访问地址http://localhost:8080/abc@RequestMapping("/abc")public String Hello(Model model){//Spring MVC会自动实例化一个Model对象用于向视图中传值model.addAttribute("msg","hello,springmvc");//返回视图位置return "test";} 
}

在Spring MVC中可以使用 @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量0上。 格式如:真实访问地址http://localhost:8080/abc/参数1/参数2

package com.li.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;//@Controller注解的类会自动添加到Spring上下文中
@Controller
public class ControllerTest2 {
//    真实访问地址http://localhost:8080/abc/参数a/参数b    
//    需要注意的是在方法参数绑定到URL模板上后在@RequestMapping("/abc/{参数}/{参数}")要对应的配置上参数@RequestMapping("/abc/{a}/{b}")
//在Spring MVC中可以使用 @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量上。public String Hello(@PathVariable int a,  @PathVariable int b, Model model){int c = a+b;//Spring MVC会自动实例化一个Model对象用于向视图中传值model.addAttribute("msg","c的值是:"+c);//返回视图位置return "test";} 
}

所有的地址栏请求默认都会是 HTTP GET 类型的。

Spring MVC 的 @RequestMapping 注解能够处理 HTTP 请求的方法, 比如 GET, PUT, POST, DELETE 以及 PATCH。

使用method属性指定请求类型

下面我们用method属性把请求改成put,我们可以看到报错了,因为默认的是get类型

package com.li.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;//@Controller注解的类会自动添加到Spring上下文中
@Controller
public class ControllerTest2 {
//    真实访问地址http://localhost:8080/abc/参数a/参数b
//    需要注意的是在方法参数绑定到URL模板上后在@RequestMapping("/abc/{参数}/{参数}")要对应的配置上参数
//用method属性指定请求为PUT@RequestMapping(value = "/abc/{a}/{b}",method = {RequestMethod.PUT})
//在Spring MVC中可以使用 @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量上。public String Hello(@PathVariable int a,  @PathVariable int b, Model model){int c = a+b;//Spring MVC会自动实例化一个Model对象用于向视图中传值model.addAttribute("msg","c的值是:"+c);//返回视图位置return "test";} 
}

 请求改回来就正常了改回来就正常了

package com.li.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;//@Controller注解的类会自动添加到Spring上下文中
@Controller
public class ControllerTest2 {
//    真实访问地址http://localhost:8080/abc/参数a/参数b
//    需要注意的是在方法参数绑定到URL模板上后在@RequestMapping("/abc/{参数}/{参数}")要对应的配置上参数@RequestMapping(value = "/abc/{a}/{b}",method = {RequestMethod.GET})
//在Spring MVC中可以使用 @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量上。public String Hello(@PathVariable int a,  @PathVariable int b, Model model){int c = a+b;//Spring MVC会自动实例化一个Model对象用于向视图中传值model.addAttribute("msg","c的值是:"+c);//返回视图位置return "test";} 
}

方法级别的注解变体有如下几个: 组合注解

  1. @GetMapping
  2. @PostMapping
  3. @PutMapping
  4. @DeleteMapping
  5. @PatchMapping

就相当于: @RequestMapping(method =RequestMethod.GET) 的一个快捷方式。


http://www.ppmy.cn/embedded/10115.html

相关文章

【Web】HNCTF 2022 题解(全)

目录 Week1 Interesting_include 2048 easy_html What is Web Interesting_http easy_upload Week2 ez_SSTI easy_include ez_ssrf Canyource easy_unser easy_sql ohmywordpress Week3 ssssti Fun_php ez_phar QAQ_1inclu4e logjjjjlogjjjj …

面试复习基础题目-c#相关

面试复习基础题目 c#相关问题 delegate和event的区别是什么? Delegate用来声明委托类型,event用来声明委托对象; 事件是委托的一种应用,事件是带有event关键词的委托对象,对委托对象进行了封装,本质就是委…

C语言-二分查找

二分查找 二分查找(Binary Search)是一种在有序数组中查找特定元素的搜索算法。它的工作原理是将数组分为两半,然后根据目标值与中间元素的关系,决定在左半部分还是右半部分继续搜索,直到找到目标值或者搜索范围为空。…

从零开始精通RTSP之深入理解RTCP协议

概述 RTCP,即实时控制协议,英文全称为RTP Control Protocol,是RTP的配套协议。与RTP不同,RTCP本身不传输实时数据,而是用于提供有关RTP会话的统计信息和控制功能。RTCP的主要目标是提供数据传输质量的反馈,…

加速大数据分析:Apache Kylin使用心得与最佳实践详解

Apache Kylin 是一个开源的分布式分析引擎,提供了Hadoop之上的SQL接口和多维分析(OLAP)能力以支持大规模数据。它擅长处理互联网级别的超大规模数据集,并能够进行亚秒级的查询响应时间。Kylin 的主要使用场景包括大数据分析、交互…

DDP、pytorch的分布式 torch.distributed.launch 训练说明

0、DDP的运行原理 执行步骤: 将data分为多个不同的batch,每个gpu得到batch都是不一样的然后将每个batch放在每个gpu上独立的执行最后得到的梯度求平均将平均梯度平分给每个gpu执行下一次迭代 这也就意味着你有多少个gpu,训练的速度也会提升…

level2行情+在线金融数据库

jvQuant:一站式金融量化服务平台 jvQuant作为一个领先的金融量化服务平台,为广大投资者和量化分析师提供了全面、高效、稳定的数据接入和量化分析服务。该平台涵盖了多个关键功能,包括交易接入、WebSocket行情接入、历史行情查询、在线数据库…

E-MapReduce极客挑战赛季军方案

前一段时间我参加了E-MapReduce极客挑战赛,很幸运的获得了季军。在这把我的比赛攻略给大家分享一下,希望可以抛砖引玉。 赛题分析与理解 赛题背景: 大数据时代,上云已成为越来越多终端客户大数据方案的落地选择,阿里…