首页 > 其他分享 >SpringBoot 请求响应

SpringBoot 请求响应

时间:2024-06-06 13:02:40浏览次数:13  
标签:SpringBoot age 响应 String 参数 import 请求 name

SpringBoot 请求响应

来源于黑马程序员JavaWeb课程,总结笔记

1.ApiFox

Apifox快速入门教程

2.基本参数

简单参数:在向服务器发起请求时,向服务器传递的是一些普通的请求数据。

//RequestController.java
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 功能:
 * 作者:兮和
 */
//原始方式

@RestController
public class RequestController {
    /*
     * Http get请求
     * @param httpUrl 连接
     * @return 响应数据
     */

    @RequestMapping("/doget")
    public String doGet(HttpServletRequest request) {
        // 获取请求参数
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        System.out.println(name + ":" + age);
        return "数据响应成功";
    }

}
//测试接口

get:localhost:8080/get?name=张三&age=18

GET请求简单参数

//测试接口
POST:localhost:8080/post?name=张三&age=18

控制台打印的数据

POST请求简单参数

在进行传递参数的时候,传递的参数值必须和方法中传递的参数一一对应。

在后端程序中,如何接收传递过来的普通参数数据呢?

  • 两种方式
    • ①.原始方式
    • ②.SpringBoot方式
2.1 原始方式

在原始的Web程序当中,需要通过Servlet中提供的API:HttpServletRequest(请求对象),获取请求的相关信息。比如获取请求参数:

Tomcat接收到http请求时:把请求的相关信息封装到HttpServletRequest对象中

在Controller中,我们要想获取Request对象,可以直接在方法的形参中声明 HttpServletRequest 对象。然后就可以通过该对象来获取请求信息:

//根据指定的参数名获取请求参数的数据值
String  request.getParameter("参数名")
@RestController
public class RequestController {
    // http://localhost:8080/simpleParam?name=Tom&age=10
    // 第1个请求参数: name=Tom   参数名:name,参数值:Tom
    // 第2个请求参数: age=10     参数名:age , 参数值:10
    
    //springboot方式
    @RequestMapping("/simpleParam")
    public String simpleParam(String name , Integer age ){//形参名和请求参数名保持一致
        System.out.println(name+"  :  "+age);
        return "OK";
    }
}

@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。如果该参数是可选的,可以将required属性设置为false

**结论:**不论是GET请求还是POST请求,对于简单参数来讲,只要保证请求参数名和Controller方法中的形参名保持一致,就可以获取到请求参数中的数据值。

参数名称不一致,controller还能拿到请求参数值吗?

2.2 Java中发送HTTP请求

上述是原生的开发方式


package HTTP;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 功能:
 * 作者:兮和
 * 时间: 1:42
 */
public class HttpRequestExample {
    public static void main(String[] args) {
        try {
            // 创建URL对象
            URL url = new URL("https://www.example.com");

            // 打开连接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            // 设置请求方法
            connection.setRequestMethod("GET");

            // 获取响应代码
            int responseCode = connection.getResponseCode();
            System.out.println("Response Code: " + responseCode);

            // 读取响应内容
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String inputLine;
            StringBuilder response = new StringBuilder();

            while ((inputLine = reader.readLine()) != null) {
                response.append(inputLine);
            }
            reader.close();

            // 打印响应内容
            System.out.println("Response Content:\n" + response.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

程序执行结果

浏览器响应结果

https://developer.aliyun.com/article/1135538

非常优质的一篇关于SpringBoot项目集成Java发送Http请求(HttpClient)的博文。

3.关于请求响应

浏览器发送请求,会携带请求数据,包括:请求行、请求头;请求到达tomcat之后,tomcat会负责解析这些请求数据,然后将解析后的请求数据会传递给Servlet程序的HttpServletRequest对象,那也就意味着 HttpServletRequest 对象就可以获取到请求数据。 而Tomcat,还给Servlet程序传递了一个参数 HttpServletResponse,通过这个对象,我们就可以给浏览器设置响应数据 。

这种浏览器/服务器的架构模式呢,我们称之为:BS架构。

• BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。

3.1 响应

@ResponseBody

controller方法中的return的结果,怎么就可以响应给浏览器呢?

答案:使用@ResponseBody注解

标签:SpringBoot,age,响应,String,参数,import,请求,name
From: https://blog.csdn.net/m0_67671144/article/details/139497306

相关文章

  • JAVA计算机毕业设计基于的畅游旅游网(附源码+springboot+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在信息化和全球化的大背景下,旅游业作为现代服务业的重要组成部分,正在经历着前所未有的变革。畅游旅游网作为一个集旅游信息、服务、交易于一体的综合......
  • JAVA计算机毕业设计基于的仓库管理系统(附源码+springboot+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展和企业规模的不断扩大,仓库管理作为企业运营中不可或缺的一环,面临着日益复杂和多样化的挑战。传统的仓库管理模式依赖于人工操......
  • Sz-Admin | SpringBoot3 JDK21 Vue3开源后台RBAC管理系统 | 2024年好用的开源RBAC管理
    简介接触了很多优秀的开源和闭源项目,在使用过程中也发现一些问题,不甘满足的我遂产生了想法:于是利用休息时间编写了一套后台管理系统,它灵活、简洁、高效,拥抱最新的技术,因此Sz-Admin便诞生了,也意为升职Admin,升职加薪节节高。SzAdmin,一个基于SpringBoot3、Vue3和El......
  • MySQL查询数据库响应时长的方法
    要查询MySQL数据库的响应时长,通常我们需要测量查询执行的时间。MySQL本身并不直接提供一个查询来显示每个查询的响应时长历史记录,但我们可以使用MySQL的内置函数和工具来测量和记录查询的执行时间。以下是一些方法,我们可以用来测量MySQL查询的响应时长:1.使用SHOWPROFILES(......
  • springboot模块化开发项目搭建-完善
    1.克隆项目,打开项目 2.改造成模块,entrance不是加粗,说明不是模块,需要改成模块 3.添加mysql驱动、mybatis、数据库连接池,定义版本,刷新maven 4.启动......
  • 基于springboot实现餐饮管理系统项目【项目源码+论文说明】计算机毕业设计
    基于springboot实现餐饮管理系统演示摘要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用餐......
  • 基于springboot实现社区养老服务系统项目【项目源码+论文说明】计算机毕业设计
    基于springboot实现社区养老服务系统演示摘要现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本社区养老服务系统就是在这样的大环境下诞生,其可以帮助使用者在短时间内处理完毕庞大的数据信息,使用这......
  • 基于springboot实现小区团购管理系统项目【项目源码+论文说明】计算机毕业设计
    基于springboot实现小区团购管理系统演示摘要传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装小区团购管理软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作......
  • 毕业设计-基于Springboot+Vue的幼儿园管理系统的设计与实现(源码+LW+包运行)
    如需完整项目,请私信博主基于SpringBoot+Vue的幼儿园管理系统 开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。“幼儿园管理系统”是基于Mysql数据库,在SpringB......
  • 毕业设计-基于Springboot+Vue的在线动漫信息平台 的设计与实现(源码+LW+包运行)
    如需完整项目,请私信博主基于SpringBoot+Vue的在线动漫信息平台 开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven目 录第一章绪论1.1背景及意义11.2国内外研究概况21.3研究的内容2第二章 关键技术的研究2.1B/S架......