web后端-请求响应

概述

我们之前在Spring写的
Java类,因为没有继承任何的接口
所以tomcat其实是不识别的,也不能直接运行
在这里插入图片描述
但是tomcat识别JavaEE的一项规范-Servlet,因为tomcat就相当于一个Servlet容器

SpringBoot底层提供了一个DisPatcherServlet类(实现了servlet接口)
称为前端控制器
在这里插入图片描述

我们把接收到的数据(浏览器发送到服务端的)封装到一个HttpServletRequest对象
而服务器发送到浏览器的对象封装到HttpServletResponse

这种称为
1.BS架构-用户只需要一个浏览器就和服务端对应
全部数据都在服务器
2.还有一种为CS架构(不同系统客户端是不同的)
客户端和服务端,比如qq,需要下载指定app的就成为CS架构
有的数据在服务器有点在本地

对于我们来说
最终要的就是Controller程序
在这里插入图片描述
学习路线

在这里插入图片描述

请求

在这里插入图片描述

Postman

由于前后端分离开发的方式
我们我们后端程序员写完程序员,没有前端页面,需要测试的时候
不好测试,so需要一个工具
这个工具就是postman
在这里插入图片描述
postman可以发送各种类型的请求来进行测试
在这里插入图片描述

测试界面
在这里插入图片描述
1.输入url
2.可以在左侧选择请求方式
3.下面有各种请求头,请求体的编写
4.点击send
5.下方的respone会返回测试的结果
在这里插入图片描述

简单参数

我们在请求的时候发送两个参数
1.name2.age
现在我们看服务端怎么获取这个请求参数

原始方式

通过httpServletRequest对象
使用getParameter方法获取对应参数
在这里插入图片描述
controller里类面
形参加个httpServletRequest对象来获取参数
最后return是返回给浏览器的数据
而内部的操作是在服务端运行的
在这里插入图片描述
由于我们接收的都是字符串所以还要类型转换
在这里插入图片描述
这种方式比较繁琐

SpringBoot方式

而在SpringBoot中
我们只需要在形参声明我们想传的形参即可(保证 请求参数名和形参变量名一致即可)

在这里插入图片描述

假如是post请求的话,请求参数是在请求体中的
也是保证参数名和形参名称一致即可
在这里插入图片描述
在这里插入图片描述

参数名和形参名不对应

在这里插入图片描述
就会接收不到参数
会显示null

如果你就是想用一个别的形参名接收对应参数
可以
在对应形参名前加一个注解
@RequParam(name=“参数名”)形参类型 形参名

这样就ok如下图
在这里插入图片描述
注意:有该注解的参数必须传递
不传递会报错,或者将对应的required属性换为false
在这里插入图片描述

小结

在这里插入图片描述

实体参数

简单参数需要一个个写
如果传参不止两个,如果是20个呢,那就太麻烦了
所以
我们封装一个实体类,来用对象传参,对象的属性就是接收参数的
也是需要保持属性名字和参数名字保持一致才能接收
在这里插入图片描述
浏览器端-get
在这里插入图片描述
服务器端-实体
在这里插入图片描述

复杂的实体参数-传的参数是一个对象这种(参数里面还有属性)
在这里插入图片描述
写完pojo类和user类和controller类
进行一个请求的发送

postman-复合的话里面就 对象.属性这样传参
在这里插入图片描述
idea-服务端
在这里插入图片描述

数组集合参数

像这种兴趣爱好可能有多个就需要传多个参数
实际上就是一个但是需要不同的符号表达太麻烦
所以可以数组来表达

先说数组形式吧
请求端-请求参数名相同且请求参数为多个(多个等于)
在这里插入图片描述
服务端
1.数组形式接收
在这里插入图片描述
在这里插入图片描述

2.集合传参
在这里插入图片描述
在这里插入图片描述
注意:封装到集合需要加一个注解 @RequestParam 因为它是默认封装到数组的,需要这个注解才能封装到集合里
在这里插入图片描述

日期参数

在这里插入图片描述
传参的格式要与服务端规定的格式相同
在这里插入图片描述
这个服务端
需要@DateRimeFormat 注解来规定传参的格式
在这里插入图片描述

json参数

postman传参

因为json是需要写到请求体中的

设置请求体

在这里插入图片描述
选择json和raw
在这里插入图片描述

服务端接收参数

一般都是以实体参数的形式接收(对象)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

路径参数

浏览器端发送请求
还要用@PathVariable 来定义形参,并且形参名和对于的请求对于的名称对应
在这里插入图片描述

服务端接收路径参数
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【linux】 安装 java 环境

目录 1.检查linux 下是否安装java(jdk)环境2.查看 linux 的操作系统版本3.下载jdk4.新建java文件夹用于安装jdk5.将下载到本地的jdk压缩包上传到linux服务器6.配置环境变量 1.检查linux 下是否安装java(jdk)环境 可通过下面五条命令来查看linux 系统是否安装了java 环境 1、jav…

建筑行业为什么要数字化转型?

建筑行业为什么要数字化转型? 建筑行业作为国民经济的重要支柱产业之一,其生产过程繁琐、复杂,且产业链条长,涉及众多领域。 然而,目前传统的建筑模式已经无法适应行业的发展需求,建筑行业的数字化转型已…

java SimpleDateFormat和Calendar日期类

目录 一、SimpleDateFormat使用二、Calendar使用 一、SimpleDateFormat使用 使用Date直接输出日期时,是使用系统默认的格式输出,所以需要使用SimpleDateFormat来格式化日期。 那么SimpleDateFormat类怎么使用呢,我们需要先了解此类的格式化符…

8.Java面向对象---类、属性和方法

Java面向对象—类、属性和方法 在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等。而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类。同…

Java多线程

一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程。当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个线程。 进程&#x…

Faster-RCNN代码解读6:主要文件解读-中

Faster-RCNN代码解读6:主要文件解读-中 前言 ​ 因为最近打算尝试一下Faster-RCNN的复现,不要多想,我还没有厉害到可以一个人复现所有代码。所以,是参考别人的代码,进行自己的解读。 ​ 代码来自于B站的UP主&#xff…

【Linux系统】理解Linux中进程间通信

Linux进程间通信 1 进程间通信的介绍1.1为什么要有进程间通信1.2 为什么能进程间通信 2 进程间通信的框架2.1 进程间通信机制的结构2.2 进程间通信机制的类型2.2.1 共享内存式2.2.2 消息传递式 2.3 进程间通信的接口设计 3 进程间通信机制简介4 详细讲解进程间通信部分机制&…

文献管理软件Endnote、Mendeley、Zotero比较及选择,Zotero基础使用技巧

引言 大家好,我是比特桃。日常开发的项目分为两种,一种是成熟化的工程项目,只需要与具体的业务紧密结合及应用,难点也比较偏向于软件工程或者互联网高并发的方向。这种项目我们通常不会选择去查文献去寻找问题的解决办法&#xf…

Altium Designer 20 导出 Gerber 制造文件流程及注意事项

一、导出 Gerber 流程 设置原点:在Edit菜单中选择Origin-Set (快捷键E-O-S)定好原点,一般放在左下角附近即可。 放置分孔图表:在Place菜单中选择String放置“.Legend”(快捷键P-S)…

【java】maven引用外部 jar 包,以RXTXcomm.jar为例

目录 1.作为资源文件夹内的资源引用2.将jar包手动安装到maven仓库 工具:IntelliJ IDEA 2020.2.3 x64 1.作为资源文件夹内的资源引用 1.在项目根路径新建文件夹lib, 将资源文件复制到该文件夹。 2.将文件夹设置为资源文件夹:选中文件夹lib右键 -> Mak…

Activity启动模式

Activity的启动模式 首先activity启动之后是放在任务栈中的,task stack,既然是栈,遵循先进后出原则。有玩家比喻oncreate是入栈,onDestroy是出栈。 同一个APP中,不同的activity可以设置为不同的启动模式。在manifest…

【Kafka】SASL认证的Kafka客户端代码示例(spring-kafka和原生客户端)

文章目录 spring-kafka原生客户端Tips spring-kafka 添加依赖&#xff1a; <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.6.3</version></dependency>添加spr…

【springcloud 微服务】Spring Cloud Alibaba Nacos使用详解

目录 一、前言 二、nacos介绍 2.1 什么是 Nacos 2.2 nacos 核心能力 2.2.1 服务发现和服务健康监测 2.2.2 动态配置服务 2.2.3 动态 DNS 服务 2.2.4 服务及其元数据管理 2.2.5 nacos生态地图 2.3 与其他配置中心对比 三、nacos快速部署 3.1 获取安装包 3.2 修改脚…

电阻器的原理、类型、参数以及生活中常见的应用

电阻器是电子电路中最基本的元件之一&#xff0c;它的作用是限制电流流过的大小&#xff0c;在电子电路中广泛应用于电流控制、电压分压、信号衰减等方面。在本文中&#xff0c;我们将详细介绍电阻器的原理、类型、参数以及生活中常见的应用。 一、电阻器的原理 电阻器是一种…

go语言切片做函数参数传递+append()函数扩容

go语言切片函数参数传递append()函数扩容 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 二叉树递归go代码&#xff1a; var ans [][]int func pathSum(root *TreeNode, targetSum int) ( [][…

ActiveMQ使用(四):在JavaScript中发送的MQTT消息在SpringBoot中变为字节数组

ActiveMQ使用(四):在JavaScript中发送的MQTT消息在SpringBoot中变为字节数组 1. 问题描述 JmsListener(destination "test_producer", containerFactory "topicListenerContainer")public void receiveTestProducer(String message) throws JMSExceptio…

spring bean

图灵课堂学习笔记 1. BeanFactory与ApplicationContext的关系 p56 ApplicationContext在BeanFactory基础上对功能进行了扩展&#xff0c;例如&#xff1a;监听功能、国际化功能等。BeanFactory的API更偏向底层&#xff0c;ApplicationContext的API大多数是对这些底层API的封…

JVM OOM问题排查与解决思路

OOM原因 1. 堆溢出 报错信息&#xff1a; java.lang.OutOfMemoryError: Java heap space 代码中可能存在大对象分配&#xff0c;无法获得足够的内存分配 可能发生内存泄露&#xff0c;导致内存被无效占用以至于耗尽 2. 永久代/元空间溢出 报错信息&#xff1a; java.lang.O…

C#,码海拾贝(19)——一般实矩阵的QR分解(QR Decomposition)方法之C#源代码,《C#数值计算算法编程》源代码升级改进版

1 实矩阵 实矩阵&#xff0c;指的是矩阵中所有的数都是实数的矩阵。如果一个矩阵中含有除实数以外的数&#xff0c;那么这个矩阵就不是实矩阵。 2 QR&#xff08;正交三角&#xff09;分解法 QR&#xff08;正交三角&#xff09;分解法是求一般矩阵全部特征值的最有效并广泛应…

Flowable从入门到源码分析

什么是工作流&#xff1f; 工作流&#xff0c;是把业务之间的各个步骤以及规则进行抽象和概括性的描述。使用特定的语言为业务流程建模&#xff0c;让其运行在计算机上&#xff0c;并让计算机进行计算和推动。 工作流解决的痛点在于&#xff0c;解除业务宏观流程和微观逻辑的…