Javaweb学习记录(二)web开发入门(请求响应)

news2024/11/15 8:22:59

第一个基于springboot的web请求程序

通过创建一个带有springboot的spring项目,项目会自动生成一个程序启动类,该类启动时会启动该整个项目,而我们需要写一个web请求类,要求在本地浏览器上发送请求后,浏览器显示Hello,springboot,且控制台打印该语句。

其中的@RestController注解表示这是一个请求处理类,能向浏览器发送请求,而@RequestMapping注解则时表示下面的是一个请求方法,注解后的值为请求路径,在通过浏览器访问本地也就是localhost8080/hello的时候,就会实现注解下的方法

package com.itazhang.demos.web.controller;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController//表示这是一个请求处理类
public class HelloController {
    @RequestMapping("/hello")//表示这是浏览器的请求路径
    public String hello(){
        System.out.println("Hello,springboot");
        return "Hello,springboot";
    }
}

HTTP协议

HTTP请求格式

HTTP响应格式

使用Postman发送请求 

Postman是一款非常好用的请求测试软件,将需要测试的地址输入进postman,就能类似于浏览器一样能对该接口进行测试,而在springboot创建的项目中使用相同的参数名的方法(例如请求发送的是name,那么参数的名字也得是name)就能接收数据,如下:

如果接收请求的参数名字不一样则需要注解@RequestParam 来完成映射,将注解后的参数名映射给后面方法里的参数名,如下:

postman界面

这是一个get请求所以需要将需要请求的内容写在请求行

如果是post请求,就需要将请求内容写在请求体中,也就是Postman的body中,如下:

 使用对象来接收数据

在之前接收Postman发送来的数据时,需要定义一个个与发送的请求参数名字相同的参数的方法,这样在请求数据较多的时候是非常不方便的,这个时候我们能在后端写一个实体类用来接收请求数据,实体类中的名字也与传输的请求一致,将请求过来的数据直接实例化成该类的对象,这样就非常的简便,如下:

定义一个带参数的实体类

将s输入请求传入该实体类的方法

 

使用集合和数组来接收请求数据 

使用数组接收请求数据时,将一个对应类型的数组传入到接收方法中即可,但是注意数组名字得与请求数据的名字相同,例如我下面请求传递两个name也就是名字。

使用集合接收数据时,也是将一个对应类型的集合传入到方法中,也得集合名字与请求数据的名字相同,且在使用集合来储存请求数据时,传入的集合前面得添加@RequestParam注解,如下:

 日期时间类型数据的接收和请求(@DateTimeFormat)

日期时间类型的也是将LocalTimeDate类型的对象传入接收方法中,名字与请求的名字相同,且在该类对象的前面需要添加@DateTimeFormat注解,注解后面添加请求的日期时间格式,具体格式例子如下:yyyy-MM-dd HH-mm-ss,请求数据和代码如下:

Json类型数据的请求与接收 (@RequestBody)

Json为JavaScript里面的一种语言格式,其主要被用来作为网络数据传输的载体,而从前端发送过来的请求数据基本上都是json格式的数据,后端接收请求数据的话主要是使用封装实体类的方式来进行接收数据,该实体类中的属性名字得与json里的名字相同,属性为其他类的值的话,其他类内部的属性值也必须与json代码中的名字相同。

封装实体类如下:

postman传递json如下:因为需要传递json的数据,所以需要post请求,且在post请求下的raw中书写json代码。

 

接收数据方法如下:需要在该实体类对象前加上@RequesBody注解,这样的话就标准着将json中的数据会封装到这个实体类的中

 

 接收请求的路径(@ParthVariable)

在实际开发中可能请求的路径后面跟着子路径名,那么我想获取子路径名,就得使用下面方法

 这是发送的请求数据

接收路径参数 ,以下的{id}表示这是一个可变的参数,而使用@pathVariable注解能将后面的参数绑定起来,从而获取到该参数 ,例如发送过来path路径后面的子路径为1,我通过获取绑定的这个id就能得到该1参数,如果子路径为10,那么可以通过绑定的这个id获取到10参数。如果要获取path路径后面的多个参数就添加多个大括号加参数,且在传入方法时使用@PathVariable注解绑定即可,如

@RequestMapping("/path/{id}/{id2}")
public String pathParam(@PathVariable Integer id,@PathVariable Integer id2){
    System.out.println(id+" "+id2);
    return "ok";
}

使用result类统一响应相关结果 

使用result类对相关的响应结果进行封装,如果需要响应前端的请求的话,直接返回调用result封装类里面的相关方法,并把需要响应的值传入这些方法,这样前端收到的响应结果就是规范化的。

服务端代码如下:

客户端接收返回数据如下:

 

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

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

相关文章

python --- 练习题3

目录 1、猜数字游戏(使用random模块完成) :继上期题目,附加 2、用户登录注册案例 3、求50~150之间的质数是那些? 4、打印输出标准水仙花数,输出这些水仙花数 5、验证:任意一个大于9的整数减去它的各位…

【数据库系统】数据库完整性和安全性

第六章 数据库完整性和安全性 基本内容 安全性;完整性;数据库恢复技术;SQL Server的数据恢复机制; 完整性 实体完整性、参照完整性、用户自定义完整性 安全性 身份验证权限控制事务日志,审计数据加密 数据库恢复 冗余…

中国贸易金融跨行交易区块链平台CTFU、区块链福费廷交易平台BCFT、中国人民银行贸易金融区块链平台CTFP、银行函证区块链服务平台BPBC

中国人民银行贸易金融区块链平台CTFP介绍 贸易金融的发展概况及存在的问题 1.1 贸易金融的概况 贸易金融是指商业银行在贸易双方债权债务关系的基础上,为国内或跨国的商品和服务贸易提供的贯穿贸易活动整个价值链、全程全面性的综合金融服务。伴随全球化的进程&a…

互联网思维:息共享、开放性、创新和快速反应、网络化、平台化、数据驱动和用户体验 人工智能思维:模拟人、解放劳动力、人工智能解决方案和服务

互联网思维:信息共享、开放性、创新和快速反应、网络化、平台化、数据驱动和用户体验 互联网思维是指一种以互联网为基础的思考方式,强调信息共享、开放性、创新和快速反应的特点。这种思维方式注重网络化、平台化、数据驱动和用户体验,以适…

simulink里枚举量的使用--在m文件中创建枚举量实践操作(推荐)

本文将介绍一种非常重要的概念,枚举量,以及它在simulink状态机中的使用,并且给出模型,方便大家学习。 枚举量:实际上是用一个名字表示了一个变量,能够比较方便的表示标志信息 A.简单举例: 1&a…

Hack The Box-Analytics

目录 信息收集 namp whatweb WEB 信息收集 feroxbuster RCE漏洞 提权 get user get root 信息收集 namp 端口信息探测┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.233 --min-rate 10000 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-…

经典双指针问题

思路;先找到第一个包含m家店的区间&#xff08;l-r&#xff09;&#xff0c;然后开始进行双指针&#xff08;l&#xff0c;r&#xff09;滑动(如下滑动) while(r<n){while(vis[a[l]]>1)//当前l-r之间a[l]店铺有多个&#xff08;大于一个&#xff09;&#xff0c;那即可去…

macOS下Java应用的打包和安装程序制作

macOS应用程序结构 macOS通常以dmg或pkg作为软件发行包&#xff0c;安装到/Applications下后&#xff0c;结构比较统一。 info.plist里的CFBundleExecutable字段可以指定入口&#xff0c;如果不指定&#xff0c;则MacOS下必须存在同名可执行文件。即abc.app下必须存在abc.app/…

从原理到实践:深入探索Linux安全机制(一)

前言 本文将从用户和权限管理、文件系统权限、SELinux、防火墙、加密和安全传输、漏洞管理和更新等几个Linux安全机制中的重要方面&#xff0c;深入探索其工作原理和使用方法。在当今数字化时代&#xff0c;网络安全问题备受关注&#xff0c;Linux作为广泛应用的操作系统之一&…

【GPT概念04】仅解码器(only decode)模型的解码策略

一、说明 在我之前的博客中&#xff0c;我们研究了关于生成式预训练转换器的整个概述&#xff0c;以及一篇关于生成式预训练转换器&#xff08;GPT&#xff09;的博客——预训练、微调和不同的用例应用。现在让我们看看所有仅解码器模型的解码策略是什么。 二、解码策略 在之前…

财报解读:“高端化”告一段落,华住开始“全球化”?

2023年旅游业快速复苏&#xff0c;全球酒店业直接受益&#xff0c;总体运营指标大放异彩&#xff0c;多数酒店企业都实现了营收上的明显增长&#xff0c;身为国内龙头的华住也不例外。 3月20日晚&#xff0c;华住集团发布2023年四季度及全年财报。整体实现扭亏为盈&#xff0c;…

阿里云安装宝塔后面板打不开

前言 按理来说装个宝塔面板应该很轻松的&#xff0c;我却装了2天&#xff0c;真挺恼火的&#xff0c;网上搜的教程基本上解决不掉我的问题点&#xff0c;问了阿里云和宝塔客服&#xff0c;弄了将近2天&#xff0c;才找出问题出在哪里&#xff0c;在此记录一下问题的处理。 服…

深度探析:7天后不过期的微信群二维码生成的优势

在日常生活和工作中&#xff0c;微信不过期二维码深受用户的欢迎。因为传统的微信群二维码被下载下来后&#xff0c;只有7天有效期。但企业在日常运营中&#xff0c;如果直接使用下载下来的微信群二维码&#xff0c;会造成很多的不便和宣传资源浪费。这些问题&#xff0c;可以通…

华为ensp中ospf基础 原理及配置命令(详解)

CSDN 成就一亿技术人&#xff01; 作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; CSDN 成就一亿技术人&#xff01; ————前言———— OSPF 的全称是 Open Shortest Path First&#xff0c;意为“开放式最短路径优先”。是一种内部网关协…

MySQL之基本操作与用户授权

一 基本操作 1 SQL分类 数据库&#xff1a;database 表&#xff1a;table&#xff0c;行&#xff1a;row 列&#xff1a;column 索引&#xff1a;index 视图&#xff1a;view 存储过程&#xff1a;procedure 存储函数&#xff1a;function 触发器&#xff1a;trigger 事…

“Python神技:一键转换PPT页面为高清图片,源码大公开!”(附Python源码)

今天让claude3帮忙写了个python代码&#xff0c;实现了将ppt转换成图片功能。WPS中实现这个功能还需要开通会员&#xff0c; 其实也就一点代码就可以实现&#xff0c;而且powerpoint中还没有这个将页面转换成图片的功能&#xff0c;废话不多说&#xff0c;直接上源码。 import …

欧科云链:从技术与数据视角,看Solana如何成为Web3“流量担当”?

出品&#xff5c;欧科云链研究院 作者&#xff5c;Jason Jiang 坎昆升级完成后&#xff0c;除一众L2手续费锐减外&#xff0c;以太坊生态并未掀起涟漪&#xff0c;相反Solana凭借一波短暂的Meme热潮&#xff0c;再次成为焦点。尽管本周Solana生态的Meme热度褪去&#xff0c;但…

最新,955神仙公司名单(非外企)

955 神仙公司名单&#xff08;非外企&#xff09; 往常爆料最多的 955 神仙公司名单通常都是集中在一线城市的外企。 例如下面这张最为流行的名单图&#xff1a; 最近牛客网上有同学整理出了非外企的版本&#xff0c;其中不乏一些耳熟能详的互联网产品。 随手把名单分享给大家。…

SDKMAN多版本SDK并行管理工具

一、简介 SDKMAN是管理多个SDK并行版本的工具&#xff0c;它提供了方便的命令行界面&#xff08;CLI&#xff09;和API&#xff0c;用于列出&#xff0c;安装&#xff0c;切换和删除候选对象。此外&#xff0c;它还为我们设置了环境变量。 它还允许开发人员安装基于JVM的SDK&…

短剧分销cps推广很简单,短剧分销授权平台怎么搭建?

一、短剧分销是什么&#xff1f; 短剧分销&#xff0c;也被称为短剧CPS&#xff0c;是一种通过推广短剧并获得收益的方式。分销方会提供短剧片单&#xff0c;内容创作者可以根据这些片单剪辑成短视频内容进行分发。这样既能避免版权问题&#xff0c;又可以利用优质内容吸引用户…