javaweb篇请求与相应的参数问题

目录

目录

前言

简单传参设置

get请求无法识别

post请求

简单传参问题无法识别的解决问题

注意事项

改法

实体参数

代码展示(1)------单个私有类

代码展示(2)----多个私有类

实现服务器的部署以及实参的传递

今日分享



前言

友友们,大家好,今天来开荒了,今天介绍的是在进行数据请求以及相应的时候,我们不仅仅只是进入一个网页而已,也希望看到各种用户反馈的信息以及开发人员给客户传递的信息。因此这里就需要了解我们的数据请求以及响应的方式以及get与post请求的简单差异

简单传参设置

首先声明这里是基于springboat的简单传参,不需要像这篇文章javaweb请求与响应-CSDN博客

需要那么多行代码,主要的体现就是在是否需要对应的参数类型转化,这里springboat就会自动转化;

这里我们可以看到对应的在我们的javaweb方法处理的是username属性,但是在我们设置的接口管理时数据传输的是name,但是结果却是识别不到对应的name,这里相信大家都可以理解。毕竟是两个不同的变量参数嘛,但是程序是不是没有报错,对的这是因为我们这里的age识别到了。同时这里是get请求javaweb请求与响应-CSDN博客,提前说一下后面的post请求与这里数据其实并没有太大的差别,后面大家可以看看具体的怎么实现对应的post请求操作就可以啦;

javaweb请求与响应-CSDN博客这篇文章已经讲述了对应的数据get方式

get请求无法识别

post请求

这里就是post的请求方式,不需要你在网址中输入对应的键值对数据,有直接的输入区域

我们仅仅需要修改对应的请求方式就可以修改成对应的post方式啦;

对于怎么使用这个工具大家可以详细的查看对应的我之前写的文章;基于Apifox实现javaweb的数据响应与请求-CSDN博客

简单传参问题无法识别的解决问题

这里讲述一下注解@RequestParam,它的意义就是把对应的数据进行批注另外的意思,相当于起一个小名;

OK,友友们,大家可以看到这里添加注解后成功识别啦;

注意事项

对于注解@RequestParam

这里我们把name属性取消传递后报错400,客户端错误,因为我们要注意的是针对这种情况对于不是必须要传递的参数我们可以设置默认参数值为false;

改法

就是在它的默认值基础上修改,修改对应的数据默认为false就可以pass这个问题啦

实体参数

我们在进行数据传输的时候可能出现好几个参数,有可能是好几十个,这个时候我们就可以重拾我们的java类与对象啦。只需要在自定义的类里面设置好对应的参数就可以进行对应的数据响应与请求啦;

代码展示(1)------单个私有类

这里正如大家看到的,我们创建了私有的proj类,里面存放了对应的属性,然后我们在重新定轨网址,之后利用对应的tostring方法就可以输出结果了

package user;public class proj {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "proj{" +"name='" + name + '\'' +", age=" + age +'}';}
}
//    @RestController
@RequestMapping("/proj")public String proj(proj proj) {System.out.println(proj);return "ok";

然后就可以啦输出我们的结果啦

服务器返回的是ok,在服务端进行数据展出

代码展示(2)----多个私有类

这里多个私有类会讲述一下对应的调用情况,并且这里会涉及到对应的设计模式,尤其是对应的单例设计模式;

这里我们接着上面的代码,再次创建一个类,存放2个属性,然后我们利用proj调用

package user;public class use {private String school;private int year;public String getSchool() {return school;}public void setSchool(String school) {this.school = school;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}@Overridepublic String toString() {return "use{" +"school='" + school + '\'' +", year=" + year +'}';}
}
package user;public class proj {private String name;private int age;private use use;public user.use getUse() {return use;}public void setUse(user.use use) {this.use = use;}@Overridepublic String toString() {return "proj{" +"name='" + name + '\'' +", age=" + age +", use=" + use +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

注意的是这里的代码添加了对于调用use对象的函数,可以直接调用它的属性;

这里在proj中添加了对于use的调用

实现服务器的部署以及实参的传递

这里我们要先运行我们的服务器,然后我们开始把对应的代码写上去,值得注意的一点就是在这里创建的对象去调用对应的另外一个类的属性,比如说你创建的use类,在proj类里面设置了他的单例对象,那么我们就可以在对应的这里用引用来进行参数传递

http://localhost:8080/proj?name=tom&age=10&age=20&use.&use.school=test&use.year=100



今日分享

战双更新啦!!!!!!友友们,强烈推荐大家看剧情,这里免费打一波广告。

我爱说实话,铁铁们!!!不好玩你来找我,我给你补

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746814.shtml

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

相关文章

B3620 x 进制转 10 进制(详解)

题目 思路 八进制数567怎么转化为十进制数。首先八进制就是逢八进一,也就是说这里面最大的数也就7,没有≥8的数。下面我们就讲一下567怎么转化为十进制:首先7是个位,可以直接写成十进制的7,6是十位,它是通…

图片制作二维码能批量生成吗?快捷在线制作二维码的技巧

现在很多场景下获取内容的方式都会通过扫描二维码来获取,比如常见的有文本内容、图片照片、音频视频等。二维码制作的方法也越来越简单,只需要通过二维码生成器的功能就可以快速完成,那么如果需要将多张图片每一张单独生成二维码使用时&#…

虚幻引擎5比Maya更好用吗?来看看Maya大神眼中的虚幻引擎5

这两年,大家总在争论: 虚幻引擎5(UE5)比Maya更好用吗? 未来会替代Maya吗? 虚幻引擎5(UE5)的快速发展,让许多传统Maya动画师感到焦虑和迷茫。但不要担心,这篇文章旨在解决你的困扰。…

Springboot——JSR303校验

1. 请求参数的合法性校验 使用基于JSR303的校验框架实现,Springboot提供了JSR-303的支持,它就是spring-boot-starter-validation,他包括了很多的校验规则,只需要在模型中通过注解指定校验规则,在Controller方法上开启校…

卫星参数转换之二行转轨道六根数转经纬度坐标

生命无罪,健康万岁,我是laity。 我曾七次鄙视自己的灵魂: 第一次,当它本可进取时,却故作谦卑; 第二次,当它在空虚时,用爱欲来填充; 第三次,在困难和容易之…

Linux关机和重启指令

关机 立即关机指令如下, sudo shutdown -h now 延迟关机指令如下,(5表示5分钟后执行该操作) sudo shutdown -h 5 重启 立即重启指令如下, sudo shutdown -r now 延迟重启指令如下, sudo shutdow…

【Android】源码中的工厂方法模式

本文是基于 Android 14 的源码解析 工厂方法模式应用很广泛,我们平时开发中经常会使用到的数据结构中其实也隐藏着对工厂方法模式的应用,以 List 和 Set 为例,List 和 Set 都继承于 Collection 接口,而 Collection 接口继承于 Ite…

头歌-贪心算法

第1关 找零钱 任务描述 本关任务:设计一个贪婪算法,使得找的钱币张数最少。 商店售货员找给 1 个顾客 n 元,用以下七种面值的纸币:100 元,50 元,20 元,10 元,5 元,2 …

激活函数理解

前言 为什么神经网中非要有各种各样的激活函数?他们有什么用?没有他们会怎样?常见的激活函数有哪些,他们都有什么特点? 如果我们不运用激活函数,神经网络的输出信号将仅仅是一个简单的线性函数。线性方程…

Docker 容器化技术:构建高效、可移植的开发环境和部署流程|Docker 网络

为了支持网络协议栈的多个实例,Linux 在网络协议栈中引入了网络命名空间。这些独立的协议栈被隔离到不同的命名空间中,处于不同命名空间中的网络协议栈是完全隔离的,彼此无法通信。通过对网络资源的隔离,就能在一台宿主机上虚拟多…

L1-019 谁先倒(Java)

一、题目描述: 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或…

android 事件分发笔记

这是学习笔记,以我看得明白为主。 分为 view.dispatchTouchEvent,---只有事件的处理逻辑 ----- ViewGroup.dispatchTouchEvent---实现了分发流程的逻辑 事件接收流程 setView#ViewRootImpl.java //接收事件的方法 ------> new WindowInputEventReceiver(inputChann…

FFmepg--视频编码流程--yuv编码为h264

文章目录 基本概念流程api核心代码 基本概念 YUV格式:是一种颜色编码方式,YUV分别为三个分量:‘Y’是明亮度,也就是灰度值;‘U’和‘V’是色度 YUV格式的分类: planar的YUV格式:先存储planar的…

初步了解序列化和反序列化

01什么是序列化和反序列化 序列化是将对象转化为字符串以便存储的一种方式。而反序列化恰好是序列化的逆过程,反序列化会将字符串转化为对象供程序使用。 常见的php系列化和反系列化方式主要有:serialize,unserialize;json_enco…

【运维开发岗面试题1】

目录 mkdir -p 中-p 是干什么的?df -h 和 du -h 命令作用?磁盘管理你都用到过什么命令?cp 和 mv 是干什么的?有什么区别内存大小怎么查看?查看内存的运行情况?怎么查看内存?进程杀不掉怎么办如何…

姿态旋转的哥氏定理以及速度微分的推导

姿态旋转中涉及到坐标系的转换,在有相对旋转的两个坐标系中观察一个向量的变化,用到了哥氏定理。 例如在i系中观察e系下的运动,则 哥氏定理的公式 wie是e相对于i的角运动 注意符号i在前e在后。 wie是e相对于i的角运动 注意符号i在前e在…

各个类型和Json类型的相互转换

ObjectMapper类(com.fasterxml.jackson.databind.ObjectMapper)是Jackson的主要类&#xff0c;它可以帮助我们快速的进行各个类型和Json类型的相互转换。 对应maven&#xff1a; <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId&…

【驱动】编译内核时报错:multiple definition of `yylloc‘

1、问题描述 在Ubuntu22.04中编译Linux kernel4.9源码时报错: /usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here collect2: error: ld returned 1 exit status make[2…

R语言:如何基于地球外辐射(Ra)和相对日照(n/N)计算太阳辐射Rs?

正在编写相关软著&#xff0c;借此机会了解R语言的基本语法和一些处理流程&#xff0c;所以解释稍微繁琐。 Note&#xff1a; 使用的R语言版本是 R version 4.3.2 (2023-10-31 ucrt) 使用的RStudio编辑器版本是&#xff1a; 01 基于随机森林的插值填补缺失值 这是目前处理…

深入探索C与C++的混合编程

实现混合编程的技术细节 混合使用C和C可能由多种原因驱动。一方面&#xff0c;现有的大量优秀C语言库为特定任务提供了高效的解决方案&#xff0c;将这些库直接应用于C项目中可以节省大量的开发时间和成本。另一方面&#xff0c;C的高级特性如类、模板和异常处理等&#xff0c;…