SpringMVC(三)请求
目录
一、RequestMapping注解
1.RequestMapping的属性
实例
1.在这里创建文件,命名为Test:
2.复现-返回一个页面:
创建test界面(随便写点什么):
Test文件中编写:
编辑 运行:
3.不返回界面,返回字符串:
编辑Test文件:编辑
实现这两个小功能后的完整的Test:
2.RequestMapping的请求参数绑定
3.入参情况
1.请求携带一个参数:
2.请求携带两个入参
3.(两个及以上)可以以对象的形式传参
4.杂糅传参
5.用form表单的形式提交
二、不常用的注解
1.RequestParam注解
经过前面对SpringMVC的配置和原理的讲解,接着进行SpringMVC请求的相关讲解。
一、RequestMapping注解
RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系
RequestMapping注解可以作用在方法和类上
1. 作用在类上:第一级的访问目录
2. 作用在方法上:第二级的访问目录
3. 细节:路径可以不编写 / 表示应用的根目录开始
1.RequestMapping的属性
1. path 指定请求路径的url
2. value value属性和path属性是一样的
3. mthod 指定该方法的请求方式(通常是GET和POST请求,默认GET请求)
现在以实例的形式进行讲解:
实例
1.在这里创建文件,命名为Test:

2.复现-返回一个页面:
在里面写一个方法test1--表示返回一个名为test的界面(既然这里return用了,那么就要保证html中当真存在这么一个方法--去创建)
创建test界面(随便写点什么):

Test文件中编写:
运行:
注意这里项目名称后的一级请求/二级请求,返回test.html界面内容(中文乱码,正常)

3.不返回界面,返回字符串:
编辑Test文件:

更改后端就要重启服务器:
同样步骤得到(这里显示的就是String字符串而非界面了):

实现这两个小功能后的完整的Test:
package controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller //首先先打上注解-创建对象并且标明这里是Controller层
@RequestMapping(path="/test") //一级请求路径(写不写/都无所谓)
public class Test {/*** /role/save* method="当前方法允许请求方式能访问"* params="请求路径上传参数"* @return*///打开页面的请求对应@RequestMapping(path="/t1",method={RequestMethod.GET}) //二级请求路径//这里指定了方法为GET(默认是GET),除此之外还有POST等等public String test1(){return "test";}//返回字符串@ResponseBody@RequestMapping(path="/t2")public String test2(){return "hello!";}}
2.RequestMapping的请求参数绑定
(1). 绑定机制
1. 表单提交的数据都是k=v格式的 username=haha&password=123
2. SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的
3. 要求:提交表单的name和参数的名称是相同的
(2). 支持的数据类型
1. 基本数据类型和字符串类型
2. 实体类型(JavaBean)
3. 集合数据类型(List、map集合等)
基本数据类型和字符串类型
1. 提交表单的name和参数的名称是相同的
2. 区分大小写
实体类型(JavaBean)
1. 提交表单的name和JavaBean中的属性名称需要一致
2. 如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性 例如:address.name
给集合属性数据封装
1. JSP页面编写方式:list[0].属性
3.入参情况
1.请求携带一个参数:
这里给出一个例子(同样这个例子是写在Test文件中的):
//一个入参时@ResponseBody@RequestMapping(path="/t3",method={RequestMethod.GET}) //二级请求路径public String test3(String name){return name;}
重启服务器:
将入参携带在请求中:
2.请求携带两个入参
这里给出一个例子(同样这个例子是写在Test文件中的):
//两个及以上不同类型入参@ResponseBody@RequestMapping(path="/t4",method={RequestMethod.GET}) //二级请求路径public String test4(String name,Integer age,char sex){return "name="+name+"age="+age+"sex="+sex;}
重启服务器:
将入参携带在请求中:

3.(两个及以上)可以以对象的形式传参
创建User类(生成get和set方法):

这里给出一个例子(同样这个例子是写在Test文件中的):
//对象的形式传参@ResponseBody@RequestMapping(path="/t5",method={RequestMethod.GET}) //二级请求路径public String test5(User user){return user.toString();}
重启服务器:
将入参携带在请求中:
这里就会遵循对象的原则(只传一个时,其他默认为空)

4.杂糅传参
这里给出一个例子(同样这个例子是写在Test文件中的):
//杂糅着用@ResponseBody@RequestMapping(path="/t6",method={RequestMethod.GET}) //二级请求路径public String test7(User user,String father){return user.toString()+father;}
重启服务器:
将入参携带在请求中:

5.用form表单的形式提交
前面我们的传参都是通过请求携带的,现在我们来实现通过Form表单来实现入参:
首先修改想要return的前端界面test.html:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>我是一个复现界面的例子,我是界面!</h1>
<!--加上表单-->
<form action="/StringMVCTestTwice/test/t5" method="get"><input type="text" name="name"/><br/><input type="text" name="age"/><br/><input type="text" name="sex"/><br/><input type="submit"/>
</form>
<!--表单结束-->
</body>
</html>
并在Test文件中添加:
//form的形式传参@RequestMapping(path="/t7",method={RequestMethod.GET}) //二级请求路径public String test7(User user){return "test";}
随后重启服务器去调用这个请求:
点击提交(就会自动识别跳转到 t5请求):

二、不常用的注解
1.RequestParam注解
1. 作用:把请求中的指定名称的参数传递给控制器中的形参赋值
2. 属性
1. value:请求参数中的名称
2. required:请求参数中是否必须提供此参数,默认值是true,必须提供
3. 代码如下:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
@RequestMapping("/dept")
public class DeptController {@RequestMapping("/save")public String save(@RequestParam(value = "username",required = false) String name){System.out.println(name);return "suc";}
}相关文章:
SpringMVC(三)请求
目录 一、RequestMapping注解 1.RequestMapping的属性 实例 1.在这里创建文件,命名为Test: 2.复现-返回一个页面: 创建test界面(随便写点什么): Test文件中编写: 编辑 运行: 3.不返回…...
Node.js应用程序遇到了内存溢出的问题
vue 项目 跑起来,一直报错,内存溢出 在 文件node_modules 里 .bin > vue-cli-service.cmd 在依赖包这个文件第一行加上这个 node --max-old-space-size102400 "%~dp0\..\vue\cli-service\bin\vue-cli-service.js" %* node --max-old-s…...
如何构建云原生时空大数据平台?
在现代企业中,随着对技术的依赖日益加深,空间数据的重要性愈发显著。它通过结合地理成分(如纬度、经度、地址、邮编等)与业务数据,成为解决复杂问题的重要工具。地理空间数据可从多种来源获取,例如卫星影像…...
二极管钳位电路分享
二极管钳位(I/O的过压/浪涌保护等) 如果我们的电路环境接收外部输入信号容易受到噪声影响,那我们必须采取过压和浪涌保护措施,其中一个方式就是二极管钳位保护。 像上图,从INPUT输入的电压被钳位在-Vf与VCCVf之间&…...
腾讯云智能结构化 OCR:驱动多行业数字化转型的核心引擎
在当今数字化时代的汹涌浪潮中,数据已跃升为企业发展的关键要素,其高效、精准的处理成为企业在激烈市场竞争中脱颖而出的核心竞争力。腾讯云智能结构化 OCR 技术凭借其前沿的科技架构与卓越的功能特性,宛如一颗璀璨的明星,在交通、…...
19.3、Unix Linux安全分析与防护
目录 UNIX/Linux系统的安全分析与防护UNIX/Linux系统安全增强技术UNIX/Linux安全模块应用参考国产操作系统安全分析与防护 UNIX/Linux系统的安全分析与防护 unix和linux操作系统分成三层,分别是硬件层,系统内核层以及应用层。Windows系统也是分成三层&a…...
JVM对象内存结构
1对象内存结构说明 注意: 如果对象为数组对象,在对象头后面有4字节存储数组长度; 1.1对象头 对象头分为Mark Word和Class Pointer两部分; Mark Word:对象基础信息 32位操作系统中占4字节,64位操作系统中占8…...
联邦学习和大模型相结合: 数据隐私,提升训练效率,架构优化
联邦学习和大模型相结合: 数据隐私,提升训练效率,架构优化 数据隐私保护方面 增强隐私保护机制:大模型通常需要大量的数据进行训练,而联邦学习可以在不共享原始数据的情况下进行模型训练。结合两者,可以设计出更强大的隐私保护机制,如利用联邦学习的加密技术和差分隐私…...
命令别名和命令历史
1.1命名别名 别名是命令的快捷方式。对于需要经常执行,并需要很长时间输入的长命令创建快捷方式很有用。 语法: alias 别名 ’ 原命令 [ 选项 ]…… [ 参数 ]……’ 1.2命令历史...
打造三甲医院人工智能矩阵新引擎(二):医学影像大模型篇--“火眼金睛”TransUNet
一、引言 1.1 研究背景与意义 在现代医疗领域,医学影像作为疾病诊断与治疗的关键依据,发挥着不可替代的作用。从传统的X射线、CT(计算机断层扫描)到MRI(磁共振成像)等先进技术,医学影像能够直观呈现人体内部结构,为医生提供丰富的诊断信息,涵盖疾病识别、病灶定位、…...
Scade pragma: separate_io
概述 在 Scade 语言中,支持对用户自定义算子使用 separate_io pragma 进行修饰。其形式如: function #pragma kcg separate_io #end N(x: int8) returns (y,z: int8) let y x;z x; tel在上例中,算子N 就被 pragma #pragma kcg separate_i…...
IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元)
时序预测 | MATLAB实现IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元) 目录 时序预测 | MATLAB实现IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元)预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现IWOA-GRU和GRU时间序列预测…...
“知识图谱AI教学辅助系统:点亮智慧学习的新灯塔
嘿,各位教育界的小伙伴们!今天咱们来聊聊一个超级有料的话题——知识图谱AI教学辅助系统。想象一下,如果有一个智能导师能根据你的需求定制专属的学习路径,还能像百科全书一样随时解答疑问,是不是感觉学习变得更高效、…...
产品 防尘防水IP等级 划分与实验方法
概述: 我们经常听到或看到有关IP防护等级的说法。比如:xx产品的防护级别为IP54;xx产品的防护级别为IP65等等。IP54、IP65是外壳防护等级代码。 一款产品,在实验室内按照GB/T 2421规范对其外壳的防护能力进行实验,并将…...
【微服务】1、引入;注册中心;OpenFeign
微服务技术学习引入 - 微服务自2016年起搜索指数持续增长,已成为企业开发大型项目的必备技术,中高级java工程师招聘多要求熟悉微服务相关技术。微服务架构介绍 概念:微服务是一种软件架构风格,以专注于单一职责的多个响应项目为基…...
01、Docker学习,第一天:简单入门与安装
Docker学习,第一天:简单入门与安装 一、Docker简介 环境配置如此之麻烦,换台机器,重来一次,费事费力。安装的时候,把原始环境一模一样的复制过来。开发人员利用Docker可以消除写作编码时,”在…...
C++STL中iomanip的使用与细节
C标准模板库(STL)中的<iomanip>头文件提供了一组用于格式化输入输出流的函数和操纵符。这些函数和操纵符可以用来控制输出的布局、精度、宽度等。以下是一些常用的<iomanip>函数及其使用方式: setprecision(n):设置浮…...
3.C语言变量的基础概念与使用
目录 1.变量名2.变量声明3.变量赋值4.变量作用域 1.变量名 本篇原文为:C语言变量的基础概念与使用 更多C进阶、rust、python、逆向等等教程,可点击此链接查看:酷程网 变量(variable)可以理解成一块内存区域的名字。…...
Go语言中的逃逸分析:深入浅出
Go语言中的逃逸分析:深入浅出 在Go语言中,逃逸分析(Escape Analysis)是一个非常重要且强大的编译器优化技术。它帮助编译器决定一个变量是在栈上分配还是在堆上分配,从而影响程序的性能和内存管理。本文将深入探讨Go语…...
【FlutterDart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100)
上效果 预期的是通过拖动一条边界线改变窗口大小,类似vscode里拖动效果。这个是简单的拖动实现 上代码: import package:flutter/material.dart;class MyDraggableViewDemo extends StatelessWidget {const MyDraggableViewDemo({super.key});override…...
ZCU104 HDMI显示不匹配?手把手教你用串口菜单调分辨率(附完整指令清单)
ZCU104 HDMI显示问题终极排查指南:从串口控制到分辨率精准匹配 当你在ZCU104开发板上成功跑通HDMI例程,却发现显示器一片漆黑或者画面扭曲时,那种挫败感我深有体会。这就像精心准备了一顿大餐,最后却发现客人根本吃不到——硬件链…...
uni-app分包实战:巧解echarts.js体积难题,提升小程序启动速度
1. 为什么需要分包优化echarts.js? 第一次用uni-app开发带数据可视化的小程序时,我就被echarts.js的体积吓到了——压缩后的文件仍有700KB,直接导致主包体积超标。微信小程序主包限制2MB,加上其他业务代码,根本装不下这…...
数字员工:不同场景下的落地案例全景
数字员工:不同场景下的落地案例全景 数字员工正在从概念走向规模化落地,覆盖制造、金融、零售、人力、客服等多个行业。以下是2025-2026年各领域真实应用案例的详细拆解。 一、供应链与制造场景 1. 壹沓科技:供应链物流AI Agent 企业背景&…...
DeepPCB:工业级PCB缺陷检测数据集的工程化实践指南
DeepPCB:工业级PCB缺陷检测数据集的工程化实践指南 【免费下载链接】DeepPCB A PCB defect dataset. 项目地址: https://gitcode.com/gh_mirrors/de/DeepPCB 印刷电路板(PCB)作为现代电子设备的"神经系统",其质量…...
如何用Python-miio掌控小米智能设备:2025终极自动化控制指南
如何用Python-miio掌控小米智能设备:2025终极自动化控制指南 【免费下载链接】python-miio Python library & console tool for controlling Xiaomi smart appliances 项目地址: https://gitcode.com/gh_mirrors/py/python-miio Python-miio是一款强大的…...
LaserGRBL:如何用开源软件实现专业级激光雕刻控制
LaserGRBL:如何用开源软件实现专业级激光雕刻控制 【免费下载链接】LaserGRBL Laser optimized GUI for GRBL 项目地址: https://gitcode.com/gh_mirrors/la/LaserGRBL LaserGRBL是一款专为激光雕刻和切割优化的GRBL控制器Windows图形界面软件,为…...
融合柯西变异与动态权重的蝴蝶优化算法性能跃迁
1. 蝴蝶优化算法的瓶颈与突破方向 蝴蝶优化算法(BOA)作为一种模拟自然界蝴蝶觅食行为的群体智能算法,自提出以来就在工程优化、机器学习参数调优等领域展现出独特优势。但我在实际使用中发现,传统BOA存在两个明显短板:一是容易陷入局部最优解…...
如何快速掌握开源财经数据工具:AKShare的完整使用教程
如何快速掌握开源财经数据工具:AKShare的完整使用教程 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcode.com/gh_mirrors/aks/ak…...
终极指南:3步为Windows 11 LTSC系统快速安装微软商店应用商店
终极指南:3步为Windows 11 LTSC系统快速安装微软商店应用商店 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore Windows 11 LTSC-Add-Micros…...
从0到1搭建工业级智能监控系统:YOLOv8+ByteTrack的多目标检测与跟踪实践
在智能监控场景中,单纯的目标检测只能告诉你“画面里有什么”,而结合跟踪技术才能回答“这个目标在做什么、去了哪里”。比如交通监控中,不仅要识别车辆,还要跟踪其行驶轨迹计算车速;园区安防里,不仅要检测人员,还要判断是否有异常徘徊。 本文基于YOLOv8(检测)+ByteT…...
