SpringMVC (发送请求——>参数传递—— >响应数据)
设置请求访问路径

@RequestMapper:将请求访问路径和我们业务层的方法联系起来
@ResponseBody:将我们业务层方法的返回值转化为json,xml或其他格式的数据返回给页面
两种请求
get请求

post请求

测试案例
@RequestMapping("/getNameAndAge")@ResponseBodypublic String getNameAndAge(String name,int age){System.out.println("name:"+name);System.out.println("age:"+age);return "{'info':'Param'}";}
get

post
postman中 勾选Body下的x-www-form-urlencoded表单填写参数

解决post请求中文乱码问题
//解决post请求中文乱码
@Override
protected Filter[] getServletFilters() {CharacterEncodingFilter filter=new CharacterEncodingFilter();filter.setEncoding("UTF-8");return new Filter[]{filter};
}
5种参数类型传递
普通参数

方法
//普通参数@RequestMapping("/getNormalParam")@ResponseBody//将请求参数中的name赋给这里的形参userNamepublic String getNormalParam(@RequestParam("name") String userName, int password){System.out.println("userName:"+userName);System.out.println("password:"+password);return "{'info':'normalParam'}";}
用@RequestParam注解让和形参不同名的参数对应起来
请求
结果
POJO参数

User实体类
@Data
public class User {public String userName;public int password;
}
方法
@RequestMapping("/getPOJO")@ResponseBodypublic String getPOJO(User user){System.out.println(user);return "{'info':'pojo'}";}
请求
这里传递的参数要和实例类中的属性名保持一致
结果

嵌套POJO参数

User实体类,嵌套Address
@Data
public class User {public String userName;public int password;public Address address;
}
@Data
public class Address {public String province;public String city;
}
方法
@RequestMapping("/getContainPOJO")@ResponseBodypublic String getContainPOJO(User user){System.out.println(user);return "{'info':'containPojo'}";}
请求

结果

数组参数

方法
@RequestMapping("/getList")@ResponseBodypublic String getList(String[] list){System.out.println(Arrays.toString(list));return "{'info':'list'}";}
请求

结果
![]()
集合参数

方法
@RequestMapping("/getCollection")@ResponseBodypublic String getList(@RequestParam("list") List<String> foodList){System.out.println(foodList.toString());return "{'info':'collection'}";}
需要添加一个@RequestParam注解让SpringMVC知道这是传进来的参数,否则会把List<String>当成一个实体类
请求

结果

json数据传递
首先先导入json的依赖jar包
开启@EnableWebMvc
@Configuration
@ComponentScan({"com.example"})
@EnableWebMvc//开启json等一系列功能
public class SpringMVCConfig {
}
postman中发送json数据(在Body中以raw的形式填写json数据)

方法中用@RequestBody来把请求体Body中的json绑定到我们业务层方法的形参上,且这个注解一个方法只能用一次。
json数组
方法
//json数组@RequestMapping("/getJsonList")@ResponseBodypublic String getJsonList(@RequestBody List<String> jsonList){System.out.println(jsonList);return "{'info':'jsonList'}";}
请求
结果
![]()
json对象
方法
//json对象@RequestMapping("/getJsonPOJO")@ResponseBodypublic String getJsonPOJO(@RequestBody User user){System.out.println(user);return "{'info':'jsonPOJO'}";}
请求

结果
json数组对象
方法
//json对象数组@RequestMapping("getJsonPOJOList")@ResponseBodypublic String getJsonPOJOList(@RequestBody List<Address> jsonPOJOList){System.out.println(jsonPOJOList);return "{'info':'jsonPOJOList'}";}
请求

结果
![]()
日期型参数传递
方法
//日期型参数传递@RequestMapping("/getDateParam")@ResponseBodypublic String getDateParam(Date d1, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date d2,@DateTimeFormat(pattern = "yyyy年MM月dd日 HH:mm:ss") Date d3){System.out.println(d1);System.out.println(d2);System.out.println(d3);return "'info':'date'";}
在方法参数中用@DateTimeFormat指定pattern为我们需要的日期格式
请求

结果

正确被解析的字符串会被转化为Date类型赋给方法中的形参
响应
响应页面(了解)
// 响应//响应页面(没啥用,因为后面都是异步请求)@RequestMapping("/jump")public String jumpToJsp(){System.out.println("跳转到test.jsp");return "/test.jsp"; //这里加一个 / 表示从webapp开始的路径}
响应文本数据
方法
//响应文本数据@RequestMapping(value = "/responseText",produces="text/html;charset=UTF-8;")@ResponseBody //加上这个注解表示将这个方法的返回值作为响应数据public String responseText(){return "返回文本数据";}
请求及响应结果
响应json数据
响应json对象
方法
/*响应json对象:方法直接返回json对象即可*/@RequestMapping("/responseJsonPOJO")@ResponseBody //加上这个注解表示将这个方法的返回值作为响应数据public User responseJsonPOJO(){User user = new User("李四", 444, new Address("福建", "厦门"));return user;}
请求及响应结果

响应json对象数组
方法
/*响应json对象数组:方法直接返回json对象数组即可*/@RequestMapping("/responseJsonPOJOList")@ResponseBody //加上这个注解表示将这个方法的返回值作为响应数据public List<User> responseJsonPOJOList(){ArrayList<User> users = new ArrayList<>();users.add(new User("绽放三",123,new Address("福建", "泉州")));users.add(new User("李四",444,new Address("福建", "厦门")));users.add(new User("哇我",6898,new Address("四川", "成都")));return users;}
请求及响应结果

相关文章:
SpringMVC (发送请求——>参数传递—— >响应数据)
设置请求访问路径 RequestMapper:将请求访问路径和我们业务层的方法联系起来 ResponseBody:将我们业务层方法的返回值转化为json,xml或其他格式的数据返回给页面 两种请求 get请求 post请求 测试案例 RequestMapping("/getNameAndAge&…...
认识Modbus RTU与Modbus TCP
(选自成都纵横智控-Modbus RTU与Modbus TCP协议区别详解 ) Modbus RTU 和 Modbus TCP 是两种常用的工业通信协议,用于连接电子设备,但它们在多方面有所不同。以下是它们的详细比较: Modbus RTU 协议类型: …...
如何在 Kubernetes 中使用 ClickHouse 和 JuiceFS
ClickHouse 结合 JuiceFS 一直是一个热门的组合,社区中有多篇实践案例。今天的文章来自美国公司 Altinity,一家提供 ClickHouse 商业服务的企业,作者是 Vitaliy Zakaznikov,他尝试了这个组合并公开了过程中使用的代码。原文有两篇…...
云计算任务调度优化matlab仿真,对比蚁群优化和蛙跳优化
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 ACO蚁群优化 4.2 蛙跳优化 5.完整程序 1.程序功能描述 云计算任务调度优化,优化目标位任务消耗时间,调度后的经济效益以及设备功耗,对比蚁群优化算法和蛙跳优化…...
基于双PI+EKF扩展卡尔曼滤波的PMSM速度控制simulink建模与仿真
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 PMSM数学模型 4.2 双PI控制器设计 4.3 扩展卡尔曼滤波器(EKF) 4.4 控制系统实现 5.完整工程文件 1.课题概述 基于双PIEKF扩展卡尔曼滤波的PMSM速度控制simulink建模与仿真。对比基于双PI的扩展卡…...
医疗器械注册资源宝库数屿医械官方平台!
医学影像设备市场作为医疗器械领域的佼佼者,技术门槛高且规模庞大,2021年全球规模达458亿美元,预计2022年逼近500亿美元,增长动力源自技术革新与临床需求攀升。中国市场亦不甘落后,受政策驱动与市场需求双重提振&#…...
Django如何移除数据库字段?
关键步骤: 第一步:python manage.py makemigrations 你的项目名称第二步: python manage.py migrate (.venv) PS D:\python_workpace\django_xitong_shezhi\pythonProject\myproject> python manage.py makemigrations myproject Migra…...
阶段项目——拼图小游戏
Java学习笔记(新手纯小白向) 第一章 JAVA基础概念 第二章 JAVA安装和环境配置 第三章 IntelliJ IDEA安装 第四章 运算符 第五章 运算符联系 第六章 判断与循环 第七章 判断与循环练习 第八章 循环高级综合 第九章 数组介绍及其内存图 第十章 数…...
基于本地消息表实现分布式事务(最终一致性)
前言 传统单体架构下,所有的功能模块都在一个应用下,所有的代码和业务逻辑都在同一个应用下实现,所以保证数据的一致性就很简单,保证相关操作都在同一个本地事务下就可以了。 但是在微服务架构下,将一个应用拆分成了…...
大数据mapper书写范式hdfs
文章目录 1. 大数据mapper书写范式hdfs 1. 大数据mapper书写范式hdfs import json import sysdef read_input(input_stream):for line in input_stream:yield line.rstrip(\n)def load_json_data(json_line):try:data json.loads(json_line)unique_id data.get(id)combined_…...
ubuntu将软件放到任务栏
右键点击这个 pycharm 方法1: 方法2: sudo nano /usr/share/applications/PyCharm.desktop 编辑这个 [Desktop Entry] NamePyCharm CommentPyCharm Integrated Development Environment Exec/path/to/PyCharm.sh Icon/path/to/PyCharm.svg Terminalf…...
Spring Boot 参数校验 Validation 使用
概述 当我们想提供可靠的 API 接口,对参数的校验,以保证最终数据入库的正确性,是必不可少的活。前、后端校验都是保证参数的准确性的手段之一,前端校验并不安全,任何人都可以通过接口来调用我们的服务,就算…...
基于el-table的表格点选和框选功能
开篇 本篇文章旨在实现一个基于el-table的表格点选和框选功能,除此之外,还支持多种模式的切换、自定义勾选日期等。且,该表格后续可能还会持续优化! 功能介绍 表格点选和框选功能(没有点击ctrl键的情况下)…...
LabVIEW压电陶瓷阻抗测试系统
开发了一种基于LabVIEW软件与PXI模块化仪器的压电陶瓷阻抗测试系统。该系统能在高电压工作条件下测量压电陶瓷的阻抗特性,包括阻抗模值与阻抗角的频率特性,为压电陶瓷的进一步分析与应用提供了重要参考。 项目背景 现有的阻抗测试仪大多只能在低电压条件…...
电销机器人能大幅度提升效率
1、安全稳定性能好 营销机器人的稳定性非常强,在使用性能方面会有更好的优势,而且用的过程中也可以不断的这些模块更新和功能升级,所以会不断的满足大家更多的使用要求,在操作使用的时候非常简单和方便,直接就可以给客…...
虚拟机能访问网页但ping不通百度
最近遇到了奇怪的问题,虚拟机能访问网页,但ping不通百度,记录一下问题的排查过程。 能访问网页,说明DNS、TCP和HTTP没有问题,ping不通,说明ICMP应该出了问题。 首先通过traceroute追踪报文的转发过程&…...
RK3588开发笔记-buildroot编译配置
目录 前言 一、buildroot简介 二、buildroot配置编译 buildroot config配置 buildroot 编译 buildroot 如何单独编译某个软件包 何时需要完全重建 如何完全重建 总结 前言 Rockchip RK3588 是一款强大的多核处理器,广泛应用于边缘计算、人工智能、嵌入式系统等领域。为了在…...
Java设计模式(适配器模式)
定义 将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。 角色 目标抽象类(Target):目标抽象类定义客户所需的接口(在类适配器中,目标抽象类只能是接口)。 适配器类…...
机器学习框架巅峰对决:TensorFlow vs. PyTorch vs. Scikit-Learn实战分析
1.引言 1.1机器学习框架的重要性 在机器学习的黄金时代,框架的选择对于开发高效、可扩展的模型至关重要。合适的框架可以极大地提高开发效率,简化模型的构建和训练过程,并支持大规模的模型部署。因此,了解和选择最合适的机器学习…...
基于STM32的智能窗帘控制系统
目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 家居智能窗帘控制办公室窗帘自动调节常见问题及解决方案 常见问题解决方案结论 1. 引言 智能窗帘控制系统能够通过时间、光照强度或远程控制,实现对…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

