【SpringBoot系列】接收前端参数的几种方式

这篇具有很好参考价值的文章主要介绍了【SpringBoot系列】接收前端参数的几种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【SpringBoot系列】接收前端参数的几种方式

前言

在现代Web开发中,前后端分离的架构已经成为主流。前端负责展示页面和用户交互,而后端则负责处理业务逻辑和数据存储。在这种架构下,前端需要将用户输入的数据发送给后端进行处理。而Spring Boot作为一种快速开发框架,提供了多种方式来接收前端数据。

本文将介绍Spring Boot接收前端数据的几种常用方式。


接收方式

【SpringBoot系列】接收前端参数的几种方式

@RequestParam

这是最基本的一种,通过请求参数名映射到方法的参数上,如:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {

    @GetMapping("/greeting")
    public String greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
        return String.format("Hello %s!", name);
    }
}

在这个例子中,有一个名为"greeting"的HTTP GET请求映射到"/greeting"。这个映射方法接受一个名为"name"的请求参数。如果请求中没有提供"name"参数,那么将使用默认值"World"。

例如,如果访问"http://localhost:8080/greeting?name=John",将得到"Hello John!“。如果只访问"http://localhost:8080/greeting”(没有提供"name"参数),将得到"Hello World!"。

@RequestHeader

在Spring Boot中,我们可以通过@RequestHeader注解来传递HTTP请求头中的参数。这个注解可以应用在控制器的方法参数上,Spring会自动将请求头中的对应参数值绑定到方法参数上。

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {

    @GetMapping("/test")
    public String test(@RequestHeader("User-Agent") String userAgent) {
        return "User-Agent: " + userAgent;
    }
}

在这个示例中,我们定义了一个名为test的GET请求处理方法,该方法接收一个名为userAgent的参数。通过在方法参数前添加@RequestHeader("User-Agent")注解,我们告诉Spring Boot从HTTP请求头中获取名为"User-Agent"的参数值,并将其绑定到userAgent参数上。

当我们发送一个包含"User-Agent"请求头的GET请求到"/test"路径时,Spring Boot会将请求头中的"User-Agent"值传递给test方法,然后返回"User-Agent: "加上该值的字符串。

@CookieValue

在Spring Boot中,我们可以使用@CookieValue注解来获取cookie的值。这个注解可以用于方法参数上,表示从cookie中获取值。

以下是一个简单的示例:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CookieController {

    @GetMapping("/getCookie")
    public String getCookie(@CookieValue("cookieName") String cookieValue) {
        return "The value of the cookie is: " + cookieValue;
    }
}

    

在这个示例中,我们创建了一个名为CookieController的控制器。在这个控制器中,我们有一个名为getCookie的方法,该方法接收一个名为cookieValue的参数。这个参数的值是从名为"cookieName"的cookie中获取的。

当你在浏览器中设置一个名为"cookieName"的cookie,并访问/getCookie路径时,你将看到返回的消息是"The value of the cookie is: [cookie的值]"。

注意:为了使@CookieValue注解能够工作,你需要在你的Spring Boot应用中启用了Spring的Web支持。你可以在你的主配置类上添加@EnableWebMvc或@EnableWebFlux注解来启用它。

@PathVariable

在Spring Boot中,我们可以使用@PathVariable注解来从URL路径中获取参数。这个注解通常用于RESTful API的控制器方法中。

以下是一个简单的示例:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {

    @GetMapping("/greeting/{name}")
    public String greeting(@PathVariable("name") String name) {
        return "Hello, " + name;
    }
}

    

在这个例子中,我们定义了一个名为"greeting"的GET请求映射到"/greeting/{name}"的URL。@PathVariable(“name”)注解告诉Spring Boot从URL路径中获取名为"name"的参数,并将其值传递给方法greeting。

例如,如果访问"http://localhost:8080/greeting/John",那么这个方法将会返回"Hello, John"。

@RequestBody

在Spring Boot中,通过@RequestBody传参是一种常见的方式,它主要用于处理POST请求中的JSON数据。这种方式可以将请求体中的JSON数据绑定到方法参数上。

以下是一个简单的示例:

首先,我们需要创建一个POJO(Plain Old Java Object)来表示我们的数据模型。例如,我们可以创建一个User类:

public class User {
    private String name;
    private int age;

    // getters and setters
}

    

然后,我们可以在Controller中使用@RequestBody注解来接收请求体中的JSON数据:

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @PostMapping("/user")
    public User createUser(@RequestBody User user) {
        // 在这里,user对象就是请求体中的JSON数据
        // 我们可以根据需要处理这个对象
        return user;
    }
}

    

在这个例子中,当我们发送一个POST请求到/user路径,并在请求体中包含一个JSON对象时,Spring Boot会自动将这个JSON对象转换为一个User对象,并传递给createUser方法。

HttpServletRequest

在Spring Boot中,可以通过HttpServletRequest对象来获取请求参数。HttpServletRequest对象提供了一些方法,如getParameter(),getHeader()等,可以用来获取请求参数。

以下是一个简单的示例:

import javax.servlet.http.HttpServletRequest;

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

@RestController
public class MyController {

    @GetMapping("/hello")
    public String hello(HttpServletRequest request) {
        String name = request.getParameter("name");
        return "Hello, " + name;
    }
}

    

在这个示例中,我们创建了一个名为MyController的控制器类,并定义了一个名为hello的方法。这个方法接收一个HttpServletRequest对象作为参数。

当我们访问/hello路径时,Spring Boot会自动将当前的HttpServletRequest对象传递给hello方法。然后我们可以使用getParameter(“name”)方法来获取请求参数"name"的值。

例如,如果访问/hello?name=John,那么返回的结果将是"Hello, John"。

以上就是Spring Boot中常用的几种接收前端参数的方式,可以根据需要选择使用。


写在最后

感谢您的支持和鼓励! 😊🙏

如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!文章来源地址https://www.toymoban.com/news/detail-445915.html

到了这里,关于【SpringBoot系列】接收前端参数的几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SpringBoot系列】实现跨域的几种方式

    前言 在Web开发中,跨域是一个常见的问题。由于浏览器的同源策略,一个Web应用程序只能访问与其自身同源(即,相同协议、主机和端口)的资源。 这种策略的存在是为了保护用户的安全,防止恶意网站读取或修改用户的数据。 然而,现代Web应用程序经常需要访问不同源的

    2024年02月01日
    浏览(55)
  • 【SpringBoot系列】读取yml文件的几种方式

    前言 在Spring Boot开发中,配置文件是非常重要的一部分,而yml文件作为一种常用的配置文件格式,被广泛应用于Spring Boot项目中。Spring Boot提供了多种方式来读取yml文件中的属性值,开发者可以根据具体的需求和场景选择合适的方式。本文将介绍Spring Boot读取yml文件的主要方式

    2024年02月05日
    浏览(45)
  • 小程序跨页面传递参数的几种方式

    当我们在开发小程序时,经常会遇到需要在不同页面之间传递数据的情况。为了实现页面间的数据传递,小程序提供了多种方法。下面将介绍几种常用的传递数据的方法。 URL参数传递:这是一种简单直接的传递数据的方式。在跳转页面时,可以在URL中添加参数来传递数据。在

    2024年02月08日
    浏览(43)
  • 接口测试-关于postman的几种参数请求方式

    (1)POST的数据类型 对于post请求方式,一般都是要对请求发送相应的一些参数的,而参数的注入一般填写在Body中。  如上图所示,在Body中,有多种类型选择: none:一般都不使用 form-data:  对于form-data,是采用键值对的方式进行存储,即将该表单的数据组织成Key-Value形式,

    2024年02月12日
    浏览(84)
  • Vue中监听路由参数变化的几种方式

    目录 一. 路由监听方式: 通过 watch 进行监听 1. 监听路由从哪儿来到哪儿去 2. 监听路由变化获取新老路由信息 3.  监听路由变化触发方法 4. 监听路由的 path 变化 5. 监听路由的 path 变化, 使用handler函数 6. 监听路由的 path 变化,触发methods里的方法  二. 路由监听方式:key是用

    2024年02月14日
    浏览(69)
  • 前端实现动画的几种方式简介

    这里只是做简要介绍,属于知识的拓展。每种方案的更详细的使用方式需要各位自行了解。 大体上技术方案分为:CSS 动画、SVG 动画、CSS + SVG、JS 控制的逐帧动画、GIF 图。 CSS 实现动画有两种方式,一种是使用 trasition ;另一种是使用 animation 。 默认情况下,当 CSS 中的属性值

    2024年04月22日
    浏览(49)
  • 前端 mock 数据的几种方式

    目录 接口demo Better-mock just mock koa webpack Charles 总结         具体需求开发前,后端往往只提供接口文档,对于前端,最简单的方式就是把想要的数据写死在代码里进行开发,但这样的坏处就是和后端联调前还需要再把写死的数据从代码里删除,最好的方式是无侵入的  m

    2024年02月17日
    浏览(51)
  • 前端技术中的几种居中方式

    1、使用margin:0px auto可以使盒子水平居中,但要设置宽度。 2、在父元素中使用text-align:center可以将子元素设置水平居中,但子元素必须为行内元素或行内块元素。 3、使用绝对定位,父相子绝的原则,在子元素中设置left:50%和transform:translateX(-50%)。可以不设置宽高。       这里

    2024年02月04日
    浏览(49)
  • 前端中对象的几种创建方式

    创建对象的几种方式: 1.字面量方式 2.工厂模式 3.构造函数模式 4.原型模式 缺点:创建多个对象时,需要重复代码,不能复用。 作用:批量创建同类型对象,降低代码冗余度。 缺点:创建出的新对象,不知道是什么Person或者Animal类型,需看函数内部代码。 构造函数 是一种特

    2023年04月08日
    浏览(55)
  • html前端的几种加密/解密方式

    一、base64加密 Base64编码:Base64是一种将二进制数据转换为可打印字符的编码方式。在前端,可以使用JavaScript的 btoa() 函数进行Base64编码,使用 atob() 函数进行解码。 二、MD5加密(不可逆)  MD5散列:MD5是一种广泛使用的散列算法,可以将输入转换为固定长度的散列值。在前端,

    2024年04月09日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包