RestFul 风格(SpringMVC学习笔记三)

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.mzph.cn/news/824129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

『Django』创建app(应用程序)

theme: smartblue 本文简介 点赞 关注 收藏 学会了 在《『Django』环境搭建》中介绍了如何搭建 Django 环境,并且创建了一个 Django 项目。 在刚接触 Django 时有2个非常基础的功能是需要了解的,一个是“app”(应用程序),另一个是 url(路由…

Java工具类:封装Okhttp实现:Get、Post、上传/下载文件、Stream响应、代理ip

不好用请移至评论区揍我 原创代码,请勿转载,谢谢! 一、介绍 本文代码是引入Okhttp_v4.11.0,在这个基础上进行二次封装使调用方更加容易,只关注业务,而无需处理各种请求相关的重复性操作,类似文件类型请求体封装或者Form表单构造及body传参等一系列处理工具代码包括但不限…

AIGC算法2:LLM的复读机问题

1. 什么是LLM的复读机问题 字符级别重复,指大模型针对一个字或一个词重复不断的生成例如在电商翻译场景上,会出现“steckdose steckdose steckdose steckdose steckdose steckdose steckdose steckdose…”;语句级别重复,大模型针…

中文编程入门(Lua5.4.6中文版)第十二章 Lua 协程 参考《愿神》游戏

在《愿神》的提瓦特大陆上,每一位冒险者都拥有自己的独特力量——“神之眼”,他们借助元素之力探索广袤的世界,解决谜题,战胜敌人。而在提瓦特的科技树中,存在着一项名为“协同程序”的高级秘术,它使冒险者…

Spark面试整理-Spark集成HBase

Apache Spark与Apache HBase的集成允许Spark直接从HBase读取和写入数据,利用Spark的强大计算能力处理存储在HBase中的大规模数据。以下是Spark集成HBase的关键方面: 1. 添加HBase依赖 要在Spark项目中使用HBase,需要在项目的构建文件中添加HBase客户端的依赖。例如,在Maven…

【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索—更新(正式比赛)

【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索—更新(正式比赛) 往期链接: 【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索—解题全流程(…

设计模式-访问者模式(Visitor)

1. 概念 访问者模式(Visitor Pattern)是一种行为型设计模式。是一种将数据操作与数据结构分离的设计模式,其主要目的是将数据结构与数据操作解耦。 2. 原理结构图 图1 Visitor(访问者):接口或抽象类&am…

47.基于SpringBoot + Vue实现的前后端分离-校园外卖服务系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统,采用SpringBoot Vue框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SpringBoot Vue技术的校园外卖服务系统设计与实现管理工作…

【前端Vue】Vue从0基础完整教程第7篇:组件化开发,组件通信【附代码文档】

Vue从0基础到大神学习完整教程完整教程(附代码资料)主要内容讲述:vue基本概念,vue-cli的使用,vue的插值表达式,{{ gaga }},{{ if (obj.age > 18 ) { } }},vue指令,综合…

Python基于Django搜索的目标站点内容监测系统设计,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

全国产化无风扇嵌入式车载电脑在车队管理嵌入式车载行业应用

车队管理嵌入式车载行业应用 车队管理方案能有效解决车辆繁多管理困难问题,配合调度系统让命令更加精确有效执行。实时监控车辆状况、行驶路线和位置,指导驾驶员安全有序行驶,有效降低保险成本、事故概率以及轮胎和零部件的磨损与损坏。 方…

【算法刷题day25】Leetcode:216.组合总和III 17.电话号码的字母组合

216.组合总和III 文档链接:[代码随想录] 题目链接:216.组合总和III 题目: 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能…

关于DDD设计模式的各种疑问:什么是DDD架构?

关于DDD架构中的各种概念,请先参考一篇文章:什么是DDD(领域驱动设计)? 这是我见过最容易理解的一篇关于DDD 的文章了 下面是关于这个架构的各种说明。 1 DDD和其他架构模式的区别(建议看完文章再看此问题…

C语言程序设计每日一练(4)

完全平方数 首先,我们需要明确什么是完全平方数。完全平方数是指一个整数,它可以表示为另一个整数的平方。例如,1、4、9、16等都是完全平方数,因为它们分别是1、2、3、4的平方。 现在,让我们回到这个问题。我们知道这…

LeetCode刷题总结 | 图论3—并查集

并查集理论基础 1.背景 首先要知道并查集可以解决什么问题呢? 并查集常用来解决连通性问题。大白话就是当我们需要判断两个元素是否在同一个集合里的时候,我们就要想到用并查集。 并查集主要有两个功能: 将两个元素添加到一个集合中。判…

安装GPT 学术优化 (GPT Academic)@FreeBSD

GPT 学术优化 (GPT Academic)是一个非常棒的项目 可以帮助我们完成中科院的一些日常工作。 官网:GitHub - binary-husky/gpt_academic: 为GPT/GLM等LLM大语言模型提供实用化交互接口,特别优化论文阅读/润色/写作体验,模块化设计,…

【Linux系列】Ctrl + R 的使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

EelasticSearch的docker安装-----》es客户端使用!!!

1.Docker安装 docker run -d --name es7 -e ES_JAVA_POTS"-Xms256m -Xmx256m" -e "discovery.typesingle-node" -v /opt/es7/data/:/usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 elasticsearch:7.14.02.客户端UI工具,Edge浏览器…

STM32之HAL开发——CubeMX串行Flash文件系统源码讲解

前提 本次源码讲解是根据FatFS文件系统使用的流程进行 注册设备函数 uint8_t FATFS_LinkDriver(Diskio_drvTypeDef *drv, char *path) {return FATFS_LinkDriverEx(drv, path, 0); } ------------------------------------------------------------------------------------…

MySQL学习-非事务相关的六大日志、InnoDB的三大特性以及主从复制架构

一. 六大日志 慢查询日志:记录所有执行时间超过long_query_time的查询,方便定位并优化。 # 查询当前慢查询日志状态 SHOW VARIABLES LIKE slow_query_log; #启用慢查询日志 SET GLOBAL slow_query_log ON; #设置慢查询文件位置 SET GLOBAL slow_query_log_file …