请求响应相关知识点

news2024/9/27 21:24:46

这里写目录标题

  • 请求响应
    • 概述
  • 请求
    • postman
    • 各种参数的封装以及接收
      • 简单参数
        • 原始方式
        • springboot方式
        • 映射解决参数不匹配
        • 小结
      • 实体参数
        • 简单的实体参数
        • 复杂的实体参数
        • 注意点
      • 数组集合参数
        • 数组
        • 集合
        • 总结
      • 日期参数
      • json参数
        • 模拟发送注意点
        • 服务端注意点
      • 路径参数
      • 各个参数总结
  • 响应
    • 注解
    • 统一响应格式
      • 原始响应格式
      • 统一格式
        • 介绍
        • 具体代码

请求响应

概述

在这里插入图片描述
浏览器发出请求数据——》web服务器里的dispatcherservlet核心控制器——》各个controller,之后原路返回到浏览器,以此完成一次数据的请求响应

其中核心控制器里有httpServletRequest(请求对象)、httpServletResponse(响应对象),两个对象有各自的功能

这种浏览器服务器架构,是bs架构

请求

postman

在这里插入图片描述
在这里插入图片描述

各种参数的封装以及接收

简单参数

原始方式

在这里插入图片描述

在这里插入图片描述

springboot方式

在这里插入图片描述
只需要参数名和请求参数保持一致即可,这里会完成自动类型转换

映射解决参数不匹配

当springboot里的参数名与前端发送的请求参数名不一致时,可以对在参数前加一个注解,并加上括号,括号内容是请求数据参数名,这就是利用映射原理
在这里插入图片描述

小结

在这里插入图片描述

实体参数

简单的实体参数

在这里插入图片描述
这是模拟发送的客户端数据
在这里插入图片描述
这是对于实体参数,也就是具体对象作为参数时的springboot程序

在这里插入图片描述
之所以辨认出发送的请求是给第二个代码块 主要是由客户端发送时所指定的URI决定,也就是上图选中的部分,这里注意,springboot代码里定义的方法名最好与URI(就是注解括号里的资源名称)保持一致

URL 是指资源路径
URI 是指资源名称

复杂的实体参数

在这里插入图片描述
当实体对象里面有个成员变量 该变量是当前包下另一个封装的对象(如下两张图)时,前端发送请求数据参数时,应像上图那样,用点来表明层级关系,注意这个时候address对象是User类的一个成员变量
在这里插入图片描述
在这里插入图片描述
注意要为address变量写get、set、tostring方法

注意点

在这里插入图片描述
这里新建了一个包(pojo),专门用来存放controller里所用到的具体对象的类

当然,具体的spring boot程序仍旧在controller中定义的RequestController中进行编写

数组集合参数

数组

在这里插入图片描述
客户端传入请求参数时,直接同一个键对应不同的值,多次定义同一个键即可
springboot程序里参数是新定义的数组,输出时使用了arrays的tostring方法,数组名要与请求参数的名称保持一致

集合

在这里插入图片描述
注意当数组做参数时,不仅要名称保持一致,而且要用@RequestParam注解来绑定参数关系,如下图
在这里插入图片描述

总结

在这里插入图片描述

日期参数

在这里插入图片描述
这里参数用日期类(API),类对应的对象名要与前端传递过来的请求参数名一致,并且要用@DateTimeFormat注解加小括号,小括号里对日期进行规定,最后直接输出日期对象名
在这里插入图片描述

json参数

模拟发送注意点

在这里插入图片描述
注意只有POST类型的请求参数才能发送json类型参数,因为json参数是存放在请求体里面的,这里要选择raw,并在右边倒三角选择json

注意json格式,都是键值对,并且键要用双引号引起来

服务端注意点

在这里插入图片描述
接收json数据要使用一个实体类,也就是上图所说的pojo类型,json的数据键名要与对象的属性名相同,同时要用@RequestBody注解标识

路径参数

在这里插入图片描述
通过设置路径 发送参数 服务端得到参数,注意id和 name 都是变量,要用花括号括起来,参数前要用到注解@PathVariable

各个参数总结

在这里插入图片描述

响应

注解

在这里插入图片描述
响应数据,在类或者方法上加一个注解,该注解的作用是将方法返回值直接响应回去前端

统一响应格式

原始响应格式

在这里插入图片描述

统一格式

介绍

在这里插入图片描述

具体代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面四图表示,用统一格式优化之后的代码块,(补充:这些代码块就是所谓的功能接口),功能接口被优化

优化步骤,1.在pojo类中粘贴一个Result类
2.将方法的返回值修改为Result类型,return后面跟上Result实例化对象,由于该类提供了静态方法,所以可以直接通过类名访问静态方法,传入参数

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

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

相关文章

66、基于51单片机超声波测距LCD1602显示报警系统设计(程序+原理图+PCB源文件+Proteus仿真+参考论文+开题报告+任务书+元器件清单等)

前 言 超声波具有指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且…

JDK8新特性-中部

文章目录 一、方法引用1.1 为什么要有方法引用?1.1.1 Lambda表达式冗余1.1.2 解决方案 1.2 方法引用的格式1.2 .1 对象::方法名1.2.2 类名::静态方法名1.2.3 类名::引用实例方法1.2.4 类名::构造器1.2.5 数组::构造器 二、Stream API2.1 集合处理的弊端2.2 Steam流式思想概述2…

HttpRunner抓包工具之HttpRunner介绍

HttpRunner简介: HttpRunner 是一款面向HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。 作者李隆之前是大疆的测试开发工程师,项目起源于大疆内部…

关于数据分析中NumPy,Pandas,看完这一篇基本够了

前言 数据分析是Python的重要应用领域之一:Python在数据分析领域有着广泛的应用,许多数据科学家和分析师使用Python作为主要的数据分析工具。学好数据分析可以让你更好地应用Python来解决实际问题,并提升在数据分析领域的竞争力。 在当今信…

04 todoList案例

React全家桶 一、案例- TODO List 综合案例 功能描述 动态显示初始列表添加一个 todo删除一个 todo反选一个 todotodo 的全部数量和完成数量全选/全不选 todo删除完成的 todo 1.1 静态组件构建 将资料包中的todos_page/index.html中核心代码添加到Todo.jsx文件中,…

高速电路设计系列分享-ADC电源的设计

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 如今,在设计人员面临众多电源选择的情况下,为高速ADC设计清洁电源时可能会面临巨大挑战。在利用高效开关电源而非传统LDO的场合,这尤其重要。…

liunx服务器使用selenium

文章目录 前言一、服务器下载google-chrome、chromedriver1、下载chrome2、下载chromedriver 二、安装Xvfb和python库pyvirtualdisplay、selenium1、安装Xvfb2、安装python库pyvirtualdisplay 三、配置好后测试总结 前言 最近在本地windows系统(下面简称本地&#…

在线搭建K8S,kubernetes集群v1.23.9,docker支持的最后一个版本

1. 部署环境主机(条件说明) master 192.168.186.128 CentOS Linux release 7.9.2009 (Core) node1 192.168.186.129 CentOS Linux release 7.9.2009 (Core) node2 192.168.186.130 CentOS Linux release 7.9.2009 (Core)2. 系统初始化-所有节点&am…

探索MediaPipe的人像分割

MediaPipe是Google开源的计算机视觉处理框架,基于TensorFlow来训练模型。图像分割模块提供人像分割、头发分割、多类分割。本文主要探索如何实现人像分割,当然在人像分割基础上,我们可以做背景替换、背景模糊。 目录 一、配置参数与模型 1…

负载均衡 Load Balancing

负载均衡 Load Balancing 数据链路层负载均衡网络层负载均衡应用层负载均衡均衡策略与实现轮询与随机随机权重与加权轮询一致性 hash最少活跃数(最少连接数) 对于电商平台而言,随着业务的不断发展壮大,网站访问量和数据量也随之急…

什么是堆栈?c语言实现栈上的pop和push操作

什么是堆栈?c语言实现栈上pop和push操作的算法 堆栈(stack)实现栈上pop和push操作解释 堆栈(stack) 堆栈(stack)是一种数据结构,它具有后进先出(Last-In-First-Out&…

抖音seo矩阵系统源码开发部署思路

抖音SEO矩阵系统源码开发和部署是一项复杂而又关键的任务。在开发阶段,我们需要根据抖音的搜索规则和算法,结合用户搜索意图和关键词,进行深入的研究和分析,以建立一个优秀的SEO矩阵系统。 在部署方面,我们需要遵循以…

完全零基础,如何学习渗透?

网络渗透这一行,做个脚本小子,使使工具啥的,个把月就学会了,这不难。 很多人把网络渗透简单的理解成就是搞网站,这是大错特错的! 不过这也难怪,Web安全那三招两式,最好教也最好学&…

还在找wma格式怎么转换mp3?

在一个遥远的国度里,有一位名叫小芳的歌手,她声音甜美动人,深受人们的喜爱。然而,她的音乐制作团队告诉她,她的歌曲只能以wma格式发布。但是,她的粉丝们大多数使用的是mp3格式的音乐播放器,这让…

【Java】JVM(五)

垃圾回收机制 判断对象的存活 在堆里面存放着几乎所有的对象实例,垃圾回收器在对对进行回收前,要做的事情就是确定这些对象中哪些还是“存活”着,哪些已经“死去”(死去代表着不可能再被任何途径使用得对象了) 可达…

【pytest学习总结2.3】 - 如何使用固定装置fixtures(2)

目录 2.3.8 使用mark给固定装置传递数据 2.3.9 将固定装置工厂化 2.3.10 参数化固定装置 2.3.11 使用带有参数化固定装置的标记 2.3.12 使用来自固定装置功能中的固定装置 - 模块化 2.3.13 按固定装置实例自动分组测试 2.3.14 在类和模块中使用usefixtures 2.3.15 固定…

四.安防摄像机的WDR(HDR) 性能

四.安防摄像机的WDR(HDR) 性能 4.0 概述 WDR就是宽动态,wide dynamic range,或者HDR,high dynamic range,本质上是一回事,没任何区别。那么,到底什么是宽呢?很简单,搞不定的,就是太宽了,比如 摄像机装在室内,室内正常照度500lux,玻璃门外就是10000lux,室内外…

单机取证-鉴于信息安全管理与评估赛项-计算机单机取证特别说明-例题详解-Autopsy使用

芜湖~ 本期针对全国职业技能大赛-信息安全管理与评估赛项分析一下单机取证这个大项 并且取一例题 进行例题讲解 分享一些思路和逻辑 目录 题目 前言分析 .E01 ⽂件 DD 镜像和 E01 镜像的主要区别 如何打开和查看 E01 ⽂件扩展名? 常用工具使用-Autopsy 正…

现在这个年代,还有必要进行JVM调优吗?

导言 随着技术的不断发展,软件开发行业也在日新月异地进步。在过去的几十年里,Java语言和Java虚拟机(JVM)在开发企业级应用方面扮演了重要角色。然而,随着硬件和软件的进步,以及JVM本身的改进,…

Linux驱动学习(4) MTD字符驱动和块驱动1

系列文章目录 Linux驱动学习(4) 文章目录 目录 目录 系列文章目录 文章目录 前言 一、MTD是什么? 二、MTD子系统架构 1.Linux文件存储基本架构: ​ 2.MTD子系统基本架构: 总结 前言 MTD设备在嵌入式设备中…