003 传参
文章目录
- 传参
- http 状态码
- 传参方式
- (1)URL请求参数 key 与 方法中的形参名一致
- (2)URL请求参数 key与@RequestParam("id") 中的别名一致
- (3) 形参是POJO类,URL 参数 key 与pojo类的 set方法一致
- (4)参数属于URL一部分,作为路径上的变量
- ReceiveAddress.java
- 通过反射生成对象,并给对象赋值
- 传参
传参
http 状态码
(1)200: 响应成功
(2)404 :资源找不到 - 路径错误(URL错了)
(3)405: 请求方式没有对应好(type=Method Not Allowed, status=405)
(4)400: 请求的参数与服务器类型不匹配
(5)500: 服务器后端代码出错了(出现了Exception)
JavaBean : 实体类 (1)无参构造函数(2)属性有get,set方法
传参方式
(1)URL请求参数 key 与 方法中的形参名一致
// http://localhost:8080/app/fun1?username=smith&userAge=20@GetMapping("fun1")@ResponseBodypublic String fun1(String username,Integer userAge){System.out.println(username);System.out.println(userAge);return "fun1";}
(2)URL请求参数 key与@RequestParam(“id”) 中的别名一致
@RequestParam: URL请求参数 key与@RequestParam(“id”) 中的别名一致
// http://localhost:8080/app/fun2?id=101&username=小林&telno=18943049303
@GetMapping("fun2")@ResponseBodypublic String fun2(@RequestParam("id") Integer addrId,@RequestParam("telno")Long receiveUserTelno,@RequestParam("username")String receiveUsername){String result = "addrId:" + addrId + "receiveUsername:" + receiveUsername + "receiveUserTelno :"+receiveUserTelno;return result;}
(3) 形参是POJO类,URL 参数 key 与pojo类的 set方法一致
参数是pojo类, 要有(1)构造函数 (2)get,set
URL 参数 key 与pojo类的 set方法一致(set方法名去除set单词后,首字母小写)
底层执行原理
(1)通过反射创建ReceiveAddress对象
(2)通过反射调用set方法赋值
@GetMapping("fun3")@ResponseBodypublic ReceiveAddress fun3(ReceiveAddress address){ // javabean (pojo): 无参构造函数 + get,setreturn address;}
(4)参数属于URL一部分,作为路径上的变量
参数属于URL一部分,作为路径上的变量
//URL : http://localhost:8080/app/receiveAddress/103
@GetMapping("{addrId}") @ResponseBody // 返回json数据public ReceiveAddress getById(@PathVariable("addrId") Integer addrId){ return null;}
ReceiveAddress.java
package com.example.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;@TableName("receive_address")
public class ReceiveAddress implements Serializable {private static final long serialVersionUID = 1L;@TableId(value = "addr_id", type = IdType.AUTO)private Integer addrId;private Long receiveUserTelno;private String username;private Integer custId;/*** 地址的省份*/private String addrProvince;/*** 地址的城市*/private String addrCity;/*** 地址的区域*/private String addrArea;/*** 地址的街道*/private String addrStreet;/*** 详细地址*/private String addrDetail;/*** 状态*/private Integer status;/*** 版本号,用于做乐观锁*/private Integer version;/*** 数据添加的时间*/private LocalDateTime createTime;/*** 数据修改时间*/private LocalDateTime updateTime;public ReceiveAddress(Integer addrId, Long receiveUserTelno, String receiveUsername, Integer custId, String addrProvince, String addrCity, String addrArea, String addrStreet, String addrDetail, Integer status, Integer version, LocalDateTime createTime, LocalDateTime updateTime) {System.out.println("调用ReceiveAddress 的有参构造函数>>>>>>>>>>>>>>>.");this.addrId = addrId;this.receiveUserTelno = receiveUserTelno;this.username = receiveUsername;this.custId = custId;this.addrProvince = addrProvince;this.addrCity = addrCity;this.addrArea = addrArea;this.addrStreet = addrStreet;this.addrDetail = addrDetail;this.status = status;this.version = version;this.createTime = createTime;this.updateTime = updateTime;}public Integer getAddrId() {return addrId;}public void setAddrId(Integer addrId) {this.addrId = addrId;}public Long getReceiveUserTelno() {return receiveUserTelno;}public void setReceiveUserTelno(Long receiveUserTelno) {this.receiveUserTelno = receiveUserTelno;}public String getReceiveUsername() {return username;}public void setReceiveUsername(String receiveUsername) {System.out.println(".................调用了setReceiveUsername");this.username = receiveUsername;}public Integer getCustId() {return custId;}public void setCustId(Integer custId) {this.custId = custId;}public String getAddrProvince() {return addrProvince;}public void setAddrProvince(String addrProvince) {this.addrProvince = addrProvince;}public String getAddrCity() {return addrCity;}public void setAddrCity(String addrCity) {this.addrCity = addrCity;}public String getAddrArea() {return addrArea;}public void setAddrArea(String addrArea) {this.addrArea = addrArea;}public String getAddrStreet() {return addrStreet;}public void setAddrStreet(String addrStreet) {this.addrStreet = addrStreet;}public String getAddrDetail() {return addrDetail;}public void setAddrDetail(String addrDetail) {this.addrDetail = addrDetail;}public Integer getStatus() {return status;}public void setStatus(Integer status) {this.status = status;}public Integer getVersion() {return version;}public void setVersion(Integer version) {this.version = version;}public LocalDateTime getCreateTime() {return createTime;}public void setCreateTime(LocalDateTime createTime) {this.createTime = createTime;}public LocalDateTime getUpdateTime() {return updateTime;}public void setUpdateTime(LocalDateTime updateTime) {this.updateTime = updateTime;}@Overridepublic String toString() {return "ReceiveAddress{" +"addrId=" + addrId +", receiveUserTelno=" + receiveUserTelno +", receiveUsername=" + username +", custId=" + custId +", addrProvince=" + addrProvince +", addrCity=" + addrCity +", addrArea=" + addrArea +", addrStreet=" + addrStreet +", addrDetail=" + addrDetail +", status=" + status +", version=" + version +", createTime=" + createTime +", updateTime=" + updateTime +"}";}
}
通过反射生成对象,并给对象赋值
/*ReceiveAddress address1. 创建对象2. 属性赋值new : 创建对象构造函数的作用: 初始化对象 initial*/// ReceiveAddress address = new ReceiveAddress();
// address.setReceiveUsername("smith");// (1)通过反射创建ReceiveAddress 对象 -- 前提:ReceiveAddress 有无参构造函数ReceiveAddress address = ReceiveAddress.class.newInstance(); // 会调用 无参构造函数//(2) 通过反射调用set方法 setReceiveUsername(String)Method method = ReceiveAddress.class.getMethod("setReceiveUsername",String.class);method.invoke(address,"dd");
传参
package com.example.controller;import com.example.entity.ReceiveAddress;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;import java.util.Locale;/*** 请求的相关参数*/
@Controller
public class HelloController {// http://localhost:8080/app/fun1?username=smith&userAge=20@GetMapping("fun1")@ResponseBodypublic String fun1(String username,Integer userAge){System.out.println(username);System.out.println(userAge);return "fun1";}@GetMapping("fun2")@ResponseBodypublic String fun2(@RequestParam("id") Integer addrId,@RequestParam("telno")Long receiveUserTelno,@RequestParam("username")String receiveUsername){String result = "addrId:" + addrId + "receiveUsername:" + receiveUsername + "receiveUserTelno :"+receiveUserTelno;return result;}// http://localhost:8080/app/fun3?addrId=101&receiveUsername=%E5%B0%8F%E7%8E%8B&receiveUserTelno=18943049303// 实参的key 与 pojo的属性名相同// 面向对象 + 反射/*** (1)通过反射创建ReceiveAddress 对象 -- 前提:ReceiveAddress 调用无参构造函数* (2)通过反射set方法,参数赋值*/@GetMapping("fun3")@ResponseBodypublic ReceiveAddress fun3(ReceiveAddress address){ // javabean (pojo): 无参构造函数 + get,setreturn address;}/*Customer (custId,custName,custPwd --- getters,setters)URL : ....?custId=101&custName=smith&custPwd=abc123*/@GetMapping("{addrId}") //URL : http://localhost:8080/app/receiveAddress/103@ResponseBody // 返回json数据public ReceiveAddress getById(@PathVariable("addrId") Integer addrId){return null;}}
相关文章:
003 传参
文章目录 传参http 状态码传参方式(1)URL请求参数 key 与 方法中的形参名一致(2)URL请求参数 key与RequestParam("id") 中的别名一致(3) 形参是POJO类,URL 参数 key 与pojo类的 set方…...
QT写Windows按键输出(外挂)
一、前言 玩游戏的时候遇到些枯燥无味反反复复的按鼠标键盘的情况时,就想写个外挂自动释放。刚好在学qt所以试验了下QT能不能对外输出按键与鼠标。 二、思路 qt中的按键鼠标全是输入,没有直接对外输出键盘鼠标指令的类,但是我们换个思路&…...
Stable Diffusion之文生图模型训练
1、数据准备 提前准备好一组相关的照片。 在线的图片处理网站 BIRME - Bulk Image Resizing Made Easy 2.0 (Online & Free) 将图片转成统一大小,支持批量处理,效率高 2、生成提示词 进入stable diffusion webui页面 旧版直接使用 train/proproc…...
SpringBoot整合支付宝沙箱支付
环境说明:SpringBoot3.0.2 支付宝沙箱地址:沙箱地址 获取配置信息 因支付需要回调地址,回调地址必须是公网,如果有公网的话,那直接在下面配置文件填写自己的公网,没有的话,就需要我们借助第三…...
探索进程控制第一弹(进程终止、进程等待)
文章目录 进程创建初识fork函数fork函数返回值fork常规用法fork调用失败的原因 写时拷贝进程终止进程终止是在做什么?进程终止的情况代码跑完,结果正确/不正确代码异常终止 如何终止 进程等待概述进程等待方法wait方法waitpid 进程创建 初识fork函数 在…...
在mac环境下使用shell脚本实现tree命令
文章目录 使用ls实现tree使用find实现tree 使用ls实现tree 实现思路 使用ls -F 打印文件类型,如果是目录后面跟/,如果是可执行文件后面跟*;使用grep -v /$ 筛选文件排除目录,-v为反向筛选;使用grep /$ 仅筛选目录&am…...
递归时间复杂度分析方法:Master 定理
编写算法时,可能因为对自己代码的复杂度的不清晰而导致错失良机,对于普通的递推或者说循环的代码,仅用简单的调和级数或者等差数列和等比数列即可分析,但是对于递归的代码,简单的递归树法并不方便,理解并记…...
实例名不规范导致mds创建失败
概述 在部署ceph集群时,规划主机名、关闭防火墙、配置免密、关闭selinux,配置hosts文件这几步同样重要,都是初期部署一次麻烦,方便后续运维的动作。遇到过很多前期稀里糊涂部署,后续运维和配置时候各种坑。 近期遇到…...
OpenGL中的纹理过滤GL_NEAREST和GL_LINEAR
一、GL_NEAREST(最近邻插值) 1.1 原理 当需要从纹理中采样颜色时,GL_NEAREST模式会选择离采样点最近的纹理像素(通常是最接近采样点的纹理元素的中心),并直接使用该像素的颜色值作为输出。这种模式不进行任…...
vue 性能优化
data 层级不要太深 data 层级太深会增加响应式监听的计算,导致页面初次渲染时卡顿。 合理使用 v-show 和 v-if 频繁切换时,使用 v-show无需频繁切换时,使用 v-if 合理使用 computed computed 有缓存,data 不变时不会重新计算&…...
互联网大厂ssp面经(操作系统:part1)
1. 什么是进程和线程?它们之间有什么区别? a. 进程是操作系统中运行的一个程序实例。它拥有独立的地址空间和资源,可以独立执行。 b. 线程是进程内的一个执行单元,一个进程可以包含多个线程。 c. 线程共享进程的资源,…...
Android Activity 启动涉及几个进程
Zygote进程: Zygote进程在Android系统启动时被初始创建,并且初始化了虚拟机(Dalvik或ART),预加载了Android系统的核心类库。所有的Android应用进程都是通过fork()从Zygote进程派生出来的,这允许应用快速启动࿰…...
说说你对链表的理解?常见的操作有哪些?
一、是什么 链表(Linked List)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,由一系列结点(链表中每一个元素称为结点)组成 每个结点包括两个部分&…...
每天五分钟深度学习:逻辑回归算法的损失函数和代价函数是什么?
本文重点 前面已经学习了逻辑回归的假设函数,训练出模型的关键就是学习出参数w和b,要想学习出这两个参数,此时需要最小化逻辑回归的代价函数才可以训练出w和b。那么本节课我们将学习逻辑回归算法的代价函数是什么? 为什么不能平方差损失函数 线性回归的代价函数我们使用…...
llama-factory SFT系列教程 (二),大模型在自定义数据集 lora 训练与部署
文章目录 简介支持的模型列表2. 添加自定义数据集3. lora 微调4. 大模型 lora 权重,部署问题 参考资料 简介 文章列表: llama-factory SFT系列教程 (一),大模型 API 部署与使用llama-factory SFT系列教程 (二),大模型在自定义数…...
C语言游戏实战(11):贪吃蛇大作战(多人对战)
成果展示: 贪吃蛇(多人对战) 前言: 这款贪吃蛇大作战是一款多人游戏,玩家需要控制一条蛇在地图上移动,吞噬其他蛇或者食物来增大自己的蛇身长度和宽度。本游戏使用C语言和easyx图形库编写,旨在…...
腾讯测试岗位的面试经历与经验分享【一面、二面与三面】
腾讯两个月的实习一转眼就结束了,回想起当时面试的经过,感觉自己是跌跌撞撞就这么过了,多少有点侥幸.马上腾讯又要来校招了,对于有意愿想投腾讯测试岗位的同学们,写了一些那时候面试的经历和自己的想法,算不上经验,仅供参考吧! 一面 — —技术基础,全面…...
手机移动端网卡信息获取原理分析
有些场景我们需要获取当前手机上的网卡信息(如双卡双待、Wifi等)。本文准备研究一下这块的原理,以便更好的掌握相关技术原理。 1、底层系统接口 getifaddrs 使用 getifaddrs 接口可以达到我们的目的,该接口会返回本地所有网卡的信…...
无人新零售引领的创新浪潮
无人新零售引领的创新浪潮 在数字化时代加速演进的背景下,无人新零售作为商业领域的一股新兴力量,正以其独特的高效性和便捷性重塑着传统的购物模式,开辟了一条充满创新潜力的发展道路。 依托人脸识别、物联网等尖端技术,无人新…...
SD-WAN提升企业网络体验
在现代企业中,网络体验已成为提升工作效率与业务质量的关键因素。SD-WAN技术的出现,以其独特的优势,为企业提供了优化网络连接、加速数据传输、提升服务质量和应用访问体验,以及增强网络稳定性的解决方案。接下来,我们…...
Docker搭建Let‘s Encrypt
Let’s Encrypt是一个免费、开放和自动化的证书颁发机构(CA),它提供了一种简单、无需重复的机制来获取和更新SSL/TLS证书。Let’s Encrypt Docker镜像允许用户在容器化环境中轻松部署和使用Let’s Encrypt的服务。 主要功能包括:…...
单链表讲解
一.链表的概念以及结构 链表是一种物理结构上不连续,逻辑结构上连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表的结构与火车是类似的,一节一节的,数据就像乘客一样在车厢中一样。 与顺序表不同的…...
DFS算法系列 回溯
DFS算法系列-回溯 文章目录 DFS算法系列-回溯1. 算法介绍2. 算法应用2.1 全排列2.2 组合2.3 子集 3. 总结 1. 算法介绍 回溯算法是一种经典的递归算法,通常被用来解决排列问题、组合问题和搜索问题 基本思想 从一个初始状态开始,按一定的规则向前搜索&…...
Linux C应用编程:MQTT物联网
1 MQTT通信协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传 输)是一种基于客户端-服务端架构的消息传输协议,如今,MQTT 成为了最受欢迎的物联网协议,已广泛应用于车联网、智能家居、即时聊…...
企业常用Linux文件命令相关知识+小案例
远程连接工具无法连接VMWARE: 如果发现连接工具有时连不上,ip存在,这时候我们查看网络编辑器,更多配置,看vnet8是不是10段,nat设置是否是正确的? 软件重启一下虚机还原一下网络编辑器 查看文件…...
Istio介绍
1.什么是Istio Istio是一个开源的服务网格(Service Mesh)框架,它提供了一种简单的方式来为部署在Kubernetes等容器编排平台上的微服务应用添加网络功能。Istio的核心功能包括: 服务治理:Istio能够帮助管理服务之间的…...
代码随想录算法训练营第四十七天|leetcode115、392题
一、leetcode第392题 本题要求判断s是否为t的子序列,因此设置dp数组,dp[i][j]的含义是下标为i-1的子串与下标为j-1的子串相同字符的个数,可得递推公式是通过s[i-1]和t[j-1]是否相等区分。 具体代码如下: class Solution { publ…...
将Ubuntu18.04默认的python3.6升级到python3.8
1、查看现有的 python3 版本 python3 --version 2、安装 python3.8 sudo apt install python3.8 3、将 python3.6 和 3.8 添加到 update-alternatives sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --insta…...
Python和Java哪个更适合后端开发?
Python和Java都是强大的后端开发语言,它们各自有鲜明的特点和适用场景。选择哪一个更适合后端开发,主要取决于具体的项目需求、团队技术栈、个人技能偏好以及长期发展考虑等因素。 下面是两者在后端开发中的优势和劣势: 「Python࿱…...
Python+pytest接口自动化之cookie绕过登录(保持登录状态)
前言 我们今天来聊聊pythonpytest接口自动化之cookie绕过登录(保持登录状态),在编写接口自动化测试用例或其他脚本的过程中,经常会遇到需要绕过用户名/密码或验证码登录,去请求接口的情况,一是因为有时验证…...
单页网站制作/广告推广精准引流
简述Python的五大数据类型的作用、定义方式、使用方法: 数字类型 整型(int) 作用:表示人的年龄、各种号码、级别 定义方式:int定义,例如:ageint(18) 使用方法:加减乘除、逻辑判断&am…...
网站建设应当注意哪些问题/搜索引擎原理
做为一名运维工程师需要什么样的技能及素质呢,首先说说技能吧,如大家上面所看到,运维是一个集多IT工种技能与一身的岗位,对系统->网络 ->存储->协议->需求->开发->测试->安全等各环节都需要了解一些。 但对于…...
网站怎样制作/重庆seo网站建设
找来找去找得到的好的Spider也就JSpider了。JSpider地址:http://j-spider.sourceforge.net/;最后更新还在2003年;上面有一百多页的user manual,但对于做开发来说可能还是不够。以前主要阅读过geoserver/geotools,这几天…...
四川建设网站/资源搜索器
ADO特有的流化和还原 {*******************************************************}{ }{ ADO 数据流化 }{ }{ 版权所有 (C) 2013 YangYxd }{ }{*******************************************************} { ado数据集流化Rs: TADOQuery;M: TMemoryStream;Rs.SQL.Text : Select…...
网站建设济南有做的吗/湘潭关键词优化公司
用域策略脚本实现把客户端administrator帐号密码统一更改 在写这贴之前,我在网上找过很多关于这个方面的资料,看到他们都是说的差不多,但是当一个新手来弄的话就比较难实现了。非常感谢网上的朋友们对我的帮助,我写这帖子就是想要…...
wordpress视屏教程/阿里云搜索
本文讲的是在Docker上运行.NET Core,【编者的话】本文为Jurgis Pasukonis在medium.com博客中发布的关于在Docker上运行.NET Core的文章,介绍了目前.NET Core在Docker上的开源情况及部分演示。Jurgis目前是TRAFI公司的CTO。 对于Microsoft和.NET来说&…...