SpringMVC (2)
目录
1. @RequestMapping 注解介绍
2. @RequestMapping 使用
3. @RequestMapping与请求方式
3.1 @RequestMapping 支持Get和Post类型的请求
3.2 @RequestMapping 指定接收某种请求
3.3 @GetMapping和@PostMapping
4. 传参
4.1 通过查询字符串传参
4.2 在 Body 中传参
4.2.1 x-www-form-unlencoded
编辑4.2.2 form-data
4.2.3 raw
1. @RequestMapping 注解介绍
既然 @RequestMapping 已经可以达到我们的⽬的了, 我们为什么还要加 @RestController呢?Spring会对所有的类进⾏扫描, 如果类加了注解 @RestController , Spring才会去看这个类⾥⾯的⽅法有没有加 @RequestMapping 这个注解, 当然他的作⽤不⽌这⼀点, 后⾯再详细讲
2. @RequestMapping 使用
@RequestMapping 既可修饰类,也可以修饰方法 ,当修饰类和⽅法时,访问的地址是类路径 + ⽅法路径.
如上图,类路径为 /user ,方法路径为 /m1 。
因此访问的地址为:http://127.0.0.1:8080/user/m1
【注意】
①
@RequestMapping 的URL 路径最前⾯加不加 / (斜杠)都可以, Spring程序启动时, 会进⾏判断, 如果前⾯没有加 / , Spring会拼接上⼀个 /
像上面这个例子就是路径不加斜杠
如果加上斜杠程序也能正常运行:
②
@RequestMapping 的URL路径也可以是多层路径, 最终访问时, 依然是 类路径 + 方法路径
访问的地址为:http://127.0.0.1:8080/user/m1/say/hi
3. @RequestMapping与请求方式
3.1 @RequestMapping 支持Get和Post类型的请求
@RequestMapping 支持 Get 请求还是支持 Post 请求?
我们使用浏览器访问 URL 时,发送的请求类型就是 Get 类型,使用fiddler抓包可以查看:
因此 @RequestMapping 肯定是支持 Get 类型的请求的,那么他支不支持 Post 请求呢?
此处需要使用 Postman 来构造 Post 请求:
使用 Postman 发送 Post 类型请求,可以正常返回 Hello world ,说明 @RequestMapping 也支持 Post 类型的请求。
3.2 @RequestMapping 指定接收某种请求
我们可以指定 @RequestMapping 来只接收一种请求:
以上代码指定了只有 Get 请求才能访问该路径
因此发送 Get 请求可以正常访问并响应:
如果发送 Post 请求则会出错:
用上述方法依此类推,可以单独支持8种类型的请求:
3.3 @GetMapping和@PostMapping
除了上述给 @RequestMapping 指定接收某种请求,还有两种注解可以指定接收 Get 和 Post 请求
@GetMapping 只支持 Get 请求,@PostMapping 只支持 Post 请求 :
使用Postman验证,m3只支持Get:
m3不支持Post:
m4只支持Post:
m4不支持Get:
4. 传参
4.1 通过查询字符串传参
URL的格式如下:
@RequestMapping("/r2")public String r2(String keyword){return "接收参数:keyword:"+keyword;}
方法只能从()内的参数中获取到参数的值,而参数的值来自于请求时传入的参数:
传入多个参数:
@RequestMapping("/r3")public String r3(String username,String password){return "username:"+username+"\npassword:"+password;}
请求也要传入对应的多个参数:
【注意】
传参时参数名要 一 一 对应,否则没有对应到的参数将自动赋值 null :
4.2 在 Body 中传参
使用查询字符串传参时,参数会显示在URL中:
如果不想让参数显示在URL中,我们也可以在 Body 传参。
4.2.1 x-www-form-unlencoded
此处使用的传参方式是 x-www-form-urlencoded :
在此处可以选择。
x-www-form-urlencoded 可以传入表单数据,
对应 Content-Type: application/x-www-from-urlencoded
传入 username 和 password :
此时参数就不会显示在URL上,而是在请求的 Body 里,使用 fiddler 抓包可以看到:
【注意】
① 在 Body 传参时,请求方法需要改为 Post ,否则服务端无法获取到参数:
② Integer 和 int 作为参数的区别
方法 r4 使用 Integer 接收参数,方法 r5 使用 int 接收参数:
相同点
① 都能正常传入数字:
Integer:
int :
② 传入非数字值会出错:
Integer:原因:字符串“aaa”不能复制给Integer类型
int :原因:字符串“aaa”不能赋值给int类型
不同点
Integer 类型可以不传值,而 int 类型必须传值。
原因:当请求中没有给参数传值时,后端方法中的参数会自动给参数赋值null,Integer 是包装类型,可以赋值 null ,而 int 类型不能赋值 null。
Integer:
int :
4.2.2 form-data
表单提交的数据, 在 form 标签中加上 enctyped="multipart/form-data" , 通常⽤于提交图片/⽂件. 对应 Content-Type: multipart/form-data
此处可以选择传入表单,或者文件:
4.2.3 raw
完
如果哪里有疑问的话欢迎来评论区指出和讨论,如果觉得文章有价值的话就请给我点个关注还有免费的收藏和赞吧,谢谢大家!
相关文章:
SpringMVC (2)
目录 1. RequestMapping 注解介绍 2. RequestMapping 使用 3. RequestMapping与请求方式 3.1 RequestMapping 支持Get和Post类型的请求 3.2 RequestMapping 指定接收某种请求 3.3 GetMapping和PostMapping 4. 传参 4.1 通过查询字符串传参 4.2 在 Body 中传参 4.2.1 …...
【全面解析】深入解析 TCP/IP 协议:网络通信的基石
深入解析 TCP/IP 协议:网络通信的基石 导语 你是否曾好奇,现代互联网是如何实现全球设备之间的高速、稳定和可靠通信的?无论是浏览网页、发送电子邮件,还是进行视频通话,背后都离不开 TCP/IP 协议 的支撑。作为互联网…...
图数据库 | 19、高可用分布式设计(下)
相信大家对分布式系统设计与实现的复杂性已经有了一定的了解,本篇文章对分布式图数据库系统中最复杂的一类系统架构设计进行探索,即水平分布式图数据库系统(这个挑战也可以泛化为水平分布式图数据仓库、图湖泊、图中台或任何其他依赖图存储、…...
【2024年华为OD机试】 (C卷,200分)- 反射计数(Java JS PythonC/C++)
一、问题描述 题目解析 题目描述 给定一个包含 0 和 1 的二维矩阵,一个物体从给定的初始位置出发,在给定的速度下进行移动。遇到矩阵的边缘时会发生镜面反射。无论物体经过 0 还是 1,都不影响其速度。请计算并给出经过 t 时间单位后&#…...
【微服务】SpringCloud 1-9章
1从Boot和Cloud版本选型开始说起 1.1Springboot版本选择 1.1.1git源码地址 https://github.com/spring-projects/spring-boot/releases/ 1.1.2官网看Boot版本 1.1.3SpringBoot3.0崛起 https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes …...
Jmeter进行http接口并发测试
目录: 1、Jmeter设置(1)设置请求并发数(2)设置请求地址以及参数(3)添加结果数 2、启动看结果 1、Jmeter设置 (1)设置请求并发数 (2)设置请求地址…...
JavaScript语言的数据结构
JavaScript中的数据结构 引言 在编程的世界里,数据结构是处理和组织数据的重要方式。数据结构的选择往往直接影响到程序的性能和可维护性。JavaScript作为一门广泛使用的编程语言,在数据结构的设计和使用上也有其独特的特点。本文将深入探讨JavaScript…...
【数据分享】1929-2024年全球站点的逐日平均气温数据(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据!本次我们为大家带来的就是具体到气象监…...
DETRs with Collaborative Hybrid Assignments Training论文阅读与代码
关键词:协作混合分配训练 【目标检测】Co-DETR:ATSS+Faster RCNN+DETR协作的先进检测器(ICCV 2023)-CSDN博客 摘要: 在这篇论文中,作者观察到在DETR中将过少的 Query 分配为正样本,采用一对一的集合匹配,会导致对编码器输出的监督稀疏,严重损害编码器的区分特征学习…...
某国际大型超市电商销售数据分析和可视化
完整源码项目包获取→点击文章末尾名片! 本作品将从人、货、场三个维度,即客户维度、产品维度、区域维度(补充时间维度与其他维度)对某国际大型超市的销售情况进行数据分析和可视化报告展示,从而为该超市在弄清用户消费…...
码云gitee 新建仓库 添加公钥
码云gitee 新建仓库 添加公钥 文章目录 码云gitee 新建仓库 添加公钥新建仓库生成公钥管理个人公钥安全验证 码云这个网站是一个代码托管平台,在国内可以无限制的使用,在这个网站上,也可以搜索到一些github上面的内容。进入这个网站ÿ…...
SQL 基础教程 - SQL SELECT INTO 语句
通过 SQL,您可以从一个表复制信息到另一个表。 SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。 SQL SELECT INTO 语句 SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。 注意: MySQL 数据…...
《leetcode-runner》如何手搓一个debug调试器——指令系统
前文: 《leetcode-runner》如何手搓一个debug调试器——引言 《leetcode-runner》如何手搓一个debug调试器——架构 文章目录 什么是指令系统指令的组成部分leetcode-runner支持哪些指令如何解析用户输入的命令行指令识别流程 仓库地址:leetcode-runner …...
基于预共享密钥的IPsec实验
一、实验目的 (1)了解IPsec的原理和协议运行机制; (2)掌握IPsec身份认证的预共享密钥的配置; (3)掌握用Wireshark工具抓包分析IPsec数据包格式和协议流程。 二、实验设备与环境 &…...
Golang Gin系列-2:搭建Gin 框架环境
开始网络开发之旅通常是从选择合适的工具开始的。在这个全面的指南中,我们将引导你完成安装Go编程语言和Gin框架的过程,Gin框架是Go的轻量级和灵活的web框架。从设置Go工作空间到将Gin整合到项目中,本指南是高效而强大的web开发路线图。 安装…...
R语言绘图
多组火山图 数据准备: 将CSV文件同一在一个路径下,用代码合并 确保文件列名正确 library(fs) library(dplyr) library(tidyr) library(stringr) library(ggplot2) library(ggfun) library(ggrepel)# 获取文件列表 file_paths <- dir_ls(path &quo…...
Linux《Linux简介与环境的搭建》
在学习了C或者是C语言的基础知识之后就可以开始Linux的学习了,现在Linux无论是在服务器领域还是在桌面领域都被广泛的使用,所以Linxu也是我们学习编程的重要环节,在此接下来我们将会花大量的时间在Linxu的学习上。在学习Linux初期你可以会像初…...
.Net Core webapi 实现JWT认证
文章目录 需求准备创建JWT配置创建JWTService注册JWT创建中间件读取jwt的token在需要的接口上添加属性启动认证启动swagger的授权认证使用 需求 实现一个记录某个用户所有操作的功能 准备 创建你的webapi项目从nuget下载安装JWT资源包根据你的项目使用.net版本下载对应的jwt…...
SDL2:Android APP编译使用 -- SDL2多媒体库使用音频实例
SDL2:Android APP编译使用 3. SDL2:Android APP编译使用3.1 Android Studio环境准备:3.2 构建Android APP(1)方式一:快速构建APK工程(2)方式二:自定义APK工程(…...
gitignore忽略已经提交过的
已经在.gitignore文件中添加了过滤规则来忽略bin和obj等文件夹,但这些文件夹仍然出现在提交中,可能是因为这些文件夹在添加.gitignore规则之前已经被提交到Git仓库中了。要解决这个问题,您需要从Git的索引中移除这些文件夹,并确保…...
Visual Studio2019调试DLL
1、编写好DLL代码之后,对DLL项目的属性进行设置,选择待注入的DLL,如下图所示 2、生成DLL文件 3、将DLL设置为启动项目之后,按F5启动调试。弹出选择注入的exe的界面之后,使用代码注入器注入步骤2中生成的dllÿ…...
电力场景红外测温图像绝缘套管分割数据集labelme格式2436张1类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):2436 标注数量(json文件个数):2436 标注类别数:1 标注类别名称:["arrester"] 每个类别标注的框数&am…...
RV1126+FFMPEG推流项目(7)AI音频模块编码流程
一、AI 模块和外设麦克风的关系 AI 模块是 RV1126 芯片的一个重要组成部分。它的主要功能是将外部接入的麦克风采集到的模拟信号通过内置的驱动程序转换为数字信号。这意味着麦克风作为外设,提供音频输入信号,AI 模块通过其硬件和软件的结合,…...
从零开始启动一个Vue项目
目录 一、首先下载Node.js 二、安装vue脚手架vue-cli 三、使用vue-ui创建一个vue项目 四、vue项目目录结构 五、启动vue项目 方法一:cmd窗口启动 方法二:软件中启动 一、首先下载Node.js 可以去看我的上一篇博客: NodeJs的安装及环境…...
存储过程和触发器
目录 1、存储过程 1.1 存储过程的概述 1.2 存储过程的类型 1. 系统存储过程 2. 本地存储过程 3. 临时存储过程 4. 扩展存储过程 1.3 T-SQL创建存储过程 1.4 T-SQL执行存储过程 1.5 T-SQL查看存储过程 1.6 T-SQL修改存储过程 1.7 T-SQL删除存储过程 2、触发器 2.1 …...
改进果蝇优化算法之一:自适应缩小步长的果蝇优化算法(ASFOA)
自适应缩小步长的果蝇优化算法(ASFOA)是对传统果蝇优化算法的一种重要改进,旨在克服其后期种群多样性不足、容易过早收敛和陷入局部最优等问题。有关果蝇优化算法的详情可以看我的文章:路径规划之启发式算法之二十七:果蝇优化算法(Fruit Fly Optimization Algorithm,FOA…...
道旅科技借助云消息队列 Kafka 版加速旅游大数据创新发展
作者:寒空、横槊、娜米、公仪 道旅科技:科技驱动,引领全球旅游分销服务 道旅科技 (https://www.didatravel.com/home) 成立于 2012 年,总部位于中国深圳,是一家以科技驱动的全球酒店资源批发商…...
LLM - 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数(PLM) 教程(2)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145188660 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Scalin…...
游戏引擎学习第80天
Blackboard:增强碰撞循环,循环遍历两种类型的 t 值 计划对现有的碰撞检测循环进行修改,以便实现一些新的功能。具体来说,是希望处理在游戏中定义可行走区域和地面的一些实体。尽管这是一个2D游戏,目标是构建一些更丰富…...
CSS布局与响应式
学习链接 Grid网格布局 前端五大主流网页布局 flex布局看这一篇就够了 grid布局看这一篇就够了 用六个案例学会响应式布局 伸缩盒响应式页面布局实战 实现响应式布局的五种方式 - csdn 如何完成响应式布局,有几种方法?看这个就够了 响应式布局总…...
PyBroker:利用 Python 和机器学习助力算法交易
PyBroker:利用 Python 和机器学习助力算法交易 你是否希望借助 Python 和机器学习的力量来优化你的交易策略?那么你需要了解一下 PyBroker!这个 Python 框架专为开发算法交易策略而设计,尤其关注使用机器学习的策略。借助 PyBrok…...
深入了解卷积神经网络(CNN):图像处理与深度学习的革命性技术
深入了解卷积神经网络(CNN):图像处理与深度学习的革命性技术 导语 卷积神经网络(CNN)是现代深度学习领域中最重要的模型之一,特别在计算机视觉(CV)领域具有革命性的影响。无论是图…...
彩色图像面积计算一般方法及MATLAB实现
一、引言 在数字图像处理中,经常需要获取感兴趣区域的面积属性,下面给出图像处理的一般步骤。 1.读入的彩色图像 2.将彩色图像转化为灰度图像 3.灰度图像转化为二值图像 4.区域标记 5.对每个区域的面积进行计算和显示 二、程序代码 %面积计算 cle…...
[Qt] Box Model | 控件样式 | 实现log_in界面
目录 1、样式属性 (1)盒模型(Box Model) 2、控件样式示例 (1)按钮 (2)复选框 (3)单选框 (4)输入框 (5)…...
内存与缓存:保姆级图文详解
文章目录 前言1、计算机存储设备1.1、硬盘、内存、缓存1.2、金字塔结构1.3、数据流通过程 2、数据结构内存效率3、数据结构缓存效率 前言 亲爱的家人们,创作很不容易,若对您有帮助的话,请点赞收藏加关注哦,您的关注是我持续创作的…...
IM聊天学习资源
文章目录 参考链接使用前端界面简单效果消息窗口平滑滚动至底部vue使用watch监听vuex中的变量变化 websocket握手认证ChatKeyCheckHandlerNettyChatServerNettyChatInitializer 参考链接 zzhua/netty-chat-web - 包括前后端 vue.js实现带表情评论功能前后端实现(仿…...
Redis 中 TTL 的基本知识与禁用缓存键的实现策略(Java)
目录 前言1. 基本知识2. Java代码 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 单纯学习Redis可以看我前言的Java基本知识路线!! 对于Java的基本知识推荐阅读: java框架…...
SpringMvc解决跨域问题的源码汇总。
看本文章前,需了解跨域的缘由。 其次,了解RequestMapping的基础原理 最后我们来解析SpringMvc是如何处理跨域问题的。 跨域信息配置 SpringMvc分为全局级别和局部级别两种,全局级别就是任何跨域请求都起作用。 全局级别 全局级别就是在配…...
25.1.17学习内容
B - 迷宫 Description 给定一个 NM 方格的迷宫,迷宫里有 T 处障碍,障碍处不可通过。 在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。 给定起点坐标和终点坐标,每个方格最多经过一次…...
【开源免费】基于SpringBoot+Vue.JS欢迪迈手机商城(JAVA毕业设计)
本文项目编号 T 141 ,文末自助获取源码 \color{red}{T141,文末自助获取源码} T141,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...
Qt之文件系统操作和读写
Qt creator 6.80 MinGw 64bit 文本文件是指以纯文本格式存储的文件,如cpp和hpp文件。XML文件和JSON文件也是文本文件,只是使用了特定的标记符号定义文本的含义,读取这种文本文件需要先对内容解析再显示。 qt提供了两种读写文本文件的方法。…...
合合信息名片全能王上架原生鸿蒙应用市场,成为首批数字名片类应用
长期以来,名片都是企业商务沟通的重要工具。随着企业数字化转型,相较于传统的纸质名片,数字名片对于企业成员拓展业务、获取商机、提升企业形象等方面发挥着重要作用。近期,合合信息旗下名片全能王正式上线原生鸿蒙应用市场&#…...
万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用
文章目录 一、引言二、ARINC 653背景三、整体系统架构四、应用/执行(APEX)接口五、ARINC 653 RTOS内部机制六、健康监测功能七、软件应用八、ARINC 653现状九、总结 一、引言 在现代航空领域,综合模块化航空电子设备(IMA…...
jenkins-node节点配置
一.简述: Jenkins有一个很强大的功能: 即:支持分布式构建(jenkins配置中叫节点(node),也被称为slave)。分布式构建通常是用来吸收额外的负载。通过动态添加额外的机器应对构建作业中的高峰期,或在特定操作系统或环境运行特定的构建…...
【Flink系列】5. DataStream API
5. DataStream API DataStream API是Flink的核心层API。一个Flink程序,其实就是对DataStream的各种转换。具体来说,代码基本上都由以下几部分构成: 5.1 执行环境(Execution Environment) Flink程序可以在各种上下文…...
【tailscale 和 ssh】当服务器建立好节点,但通过客户端无法通过 ssh 连接
背景 当服务器建立好节点,一切显示正常但通过客户端无法通过 vs code 中的 ssh 连接到服务器 问题解决 因为服务器是重装过的,所以忘记在服务器上下载 ssh 了。。。安装完成并启动 SSH 服务后便可正常连接! sudo apt update sudo apt in…...
TDengine 做 Apache SuperSet 数据源
Apache Superset 是一个现代的企业级商业智能(BI)Web 应用程序,主要用于数据探索和可视化。它由 Apache 软件基金会支持,是一个开源项目,它拥有活跃的社区和丰富的生态系统。Apache Superset 提供了直观的用户界面…...
PCL 新增自定义点类型【2025最新版】
目录 一、自定义点类型1、前言2、定义方法3、代码示例二、合并现有类型三、点云按时间渲染1、CloudCompare渲染2、PCL渲染博客长期更新,本文最近更新时间为:2025年1月18日。 一、自定义点类型 1、前言 PCL库自身定义了很多点云类型,但是在使用的时候时如果要使用自己定义的…...
【记录52】el-table-column 添加fixed属性 滚动条无法滑动
问题: el-table-column 添加fixed属性 滚动条无法滑动 使用element UI组件,用到el-table的el-table-column的fixed属性时,当滚动条长度小于固定列时,滚动条无法通过鼠标去点击滑动操作 原因 fixed是用来固定列的属性,其…...
华为OD机试E卷 ---最大值
一、题目描述 给定一组整数(非负),重排顺序后输出一个最大的整数。 二、示例1 用例1 输入 10 9输出 910说明:输出结果可能非常大,所以你需要返回一个 字符串只而不是整数。 三、输入描述 数字组合 四、输出描述 最大的整数 五、解题思路 字符…...