【SpringBoot】获取参数

获取参数

  • 传递单个参数
  • 传递多个参数
  • 传递对象
  • 后端参数重命名
  • 传递数组
  • 传递 json 数据
  • 获取 URL 中参数
  • 上传文件
  • 获取 cookie 和 session
    • 获取cookie
    • 获取session

传递单个参数

@RequestMapping("/user")
@RestController
public class UserController {// 传递单个参数@RequestMapping("/r1")public String r1(String name) {return "name: " + name;}
}

运行结果:

在这里插入图片描述

传递多个参数

@RequestMapping("/user")
@RestController
public class UserController {// 传递多个参数@RequestMapping("/r2")// 对于参数可能为空的数据,建议使用包装类public String r2(String name, Integer age) {return "name: " + name + ", age: " + age;}
}

在这里插入图片描述

传递对象

首先 定义一个 UserInfo 类:

public class UserInfo {int id;String name;int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "UserInfo{" +"id=" + id +", name='" + name + '\'' +", age=" + age +'}';}
}
@RequestMapping("/user")
@RestController
public class UserController {// 传递多个参数@RequestMapping("/r3")public String r3(UserInfo userInfo) {return userInfo.toString();}
}

在这里插入图片描述

后端参数重命名

若前端传递参数使用 name,而后端使用 username 接收,这就会出现接收不到参数的情况:

在这里插入图片描述

此时,我们可以使用 @RequestParam 来重命名前后端的参数值:

在这里插入图片描述

如果没有传递参数则会报错:

在这里插入图片描述

但在实际应用中,可能不需要传递这个参数,但又要不报错,则可以使用如下方式使参数为非必传:

在这里插入图片描述

传递数组

在这里插入图片描述

传递 json 数据

@RequestMapping("/user")
@RestController
public class UserController {// 传递 json数据@RequestMapping("/r8")// @RequestBody 用于将请求中的数据(如json、xml等格式)转换成 java 对象,并完成数据绑定public String r8(@RequestBody UserInfo userInfo) {return userInfo.toString();}
}

这里使用的工具是 postman:
在这里插入图片描述

获取 URL 中参数

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

上传文件

    // 上传文件@RequestMapping("/r7")public String r7(MultipartFile file) throws IOException {// 获取文件名称String fileName = file.getOriginalFilename();// 文件上传到指定路径file.transferTo(new File("F:/Desktop/tmp/" + fileName));return "文件名称:" + fileName;}

在这里插入图片描述

若报错文件过大,则可到配置文件中作如下修改:

在这里插入图片描述

获取 cookie 和 session

简单地说,cookie 和 session 都是用来保存用户登录的会话信息,避免后续操作还要用户登录,而 cookie 是客户端(浏览器)的保存机制,session 则是服务器端的保存机制。

获取cookie

传统方式获取:

@RestController
@RequestMapping("/request")
public class RequestController {@RequestMapping("/getCookie")public String getCookie(HttpServletRequest request) {for (Cookie cookie : request.getCookies()) {System.out.println(cookie.getName() + ": " + cookie.getValue());}return "获取cookie成功";}
}

在这里插入图片描述

使用注解方式获取 cookie:

@RequestMapping("/getCookie2")
// 获取所有cookie中名为name的cookie
public String getCookie2(@CookieValue("name") String name) {return name;
}

在这里插入图片描述

获取session

先手动设置 session:

@RequestMapping("setSession")
public String setSession(HttpServletRequest request) {HttpSession session = request.getSession();session.setAttribute("username", "zhangsan");return "session设置成功";
}

在这里插入图片描述

传统方式获取 session:

@RequestMapping("getSession")
public String getSession(HttpServletRequest request) {HttpSession session = request.getSession();String username = (String) session.getAttribute("username");return "username:  " + username;
}

在这里插入图片描述

使用注解方式获取 session:

    @RequestMapping("getSession2")public String getSession2(@SessionAttribute("username") String name) {return "name:" + name;}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA(Verilog)实现按键消抖

实现按键消抖功能: 1.滤除按键按下时的噪声和松开时的噪声信号。 2.获取已消抖的按键按下的标志信号。 3.实现已消抖的按键的连续功能。 Verilog实现 模块端口 key_filter(input wire clk ,input wire rst_n ,input wire key_in , //按下按键时为0output …

MemberPress配置和使用会员登录页面

目录 隐藏 创建会员登录页面 编辑登录页面 设计您的登录页面 链接到您的登录页面 创建会员登录页面 要创建MemberPress会员登录页面,您需要做的就是导航到 MemberPress > 设置 > 页面选项卡,然后在页面顶部附近的“MemberPress 登录页面”…

【数据分享】中国首套1米分辨率土地覆盖数据(2023年发布)

土地覆盖数据是我们在各项研究中都非常常用的数据!本次我们整理的是全国各城市的1米分辨率的土地覆盖数据! 武汉大学李卓鸿、何伟等研究者基于深度学习框架和开放数据,具体包括全球土地覆盖(GLC)数据、OSM地图数据、谷…

SpringMVC(二)【请求与响应】

0、测试环境 我们简化开发,创建一个简单的环境(因为没有其它包比如 service、dao,所以这里不用 Spring 容器,只用 SpringMVC 容器): Servelet 容器配置: package com.lyh.config;import org.s…

c语言多功能计算软件170

定制魏:QTWZPW,获取更多源码等 目录 题目 要求 主要代码片段 题目 设计一个计算器软件,具备如下功能提示界面。 要求 设计出界面,注意界面名称最后为自己的姓名;(20分)能够实现加、减、乘、…

【目标检测数据集】VOC2012 数据集与 SBD dataset 介绍

一、介绍 VOC 数据是 PASCAL VOC Challenge 用到的数据集,官网:http://host.robots.ox.ac.uk/pascal/VOC/ 备注:VOC数据集常用的均值为:mean_RGB(122.67891434, 116.66876762, 104.00698793) Pytorch 上通用的数据集的归一化指…

紫光展锐T610平台_4G安卓核心板方案定制开发

紫光展锐T610核心板配备Android 11操作系统,采用12nm制程工艺。该处理器CPU由2颗基于Cortex-A75架构的大核心和6颗基于Cortex-A55架构的小核心组成,最高主频为1.8GHz。GPU采用的是614.4MHz的Mali G52,可以流畅播放2400*1080分辨率视频&#x…

信号完整性的常见术语概念(面试常用)

目录 术语 概念一览 1.信号完整性(Signal Integrity) 2.传输线(Transmission Line) 3.特性阻抗(Characteristic Impedance) 4.反射(Reflecti…

Linux中磁盘的分区,格式化,挂载和文件系统的修复

一.分区工具 1.分区工具介绍 fdisk 2t及以下分区 推荐 (分完区不保存不生效,有反悔的可能) gdisk 全支持 推荐 parted 全支持 不推荐 ( 即时生效,分完立即生效) 2.fdisk 分区,查看磁盘 格式:fdisk -l [磁盘设备] fdisk -l 查看…

【R语言】绘制标准地图(指北针,比例尺,图例)

在绘制地图时,我们一般都是利用“ArcGIS”"MapGIS"等专业软件进行手动操作。这样制作的地图自定义的效果强,我们可以随意调换地图的各种元素,但是今天本文要将的是如何使用R语言绘制具备地图三要素的精美地图,当然代码绘…

易舟云凭证保存查看的3种方式

文章目录 1、保存为图片2、导出为Excel3、跨期批量导出 1、保存为图片 点击记账凭证详情,点击“下载-保存为图片”,即可下载图片! 2、导出为Excel 导出为Excel可以对单张凭证导出,也可以对指定月份的记账凭证进行批量导出。 1…

JavaEE初阶——多线程(二)

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 小比特 大梦想 此篇文章延续上一篇文章,与大家分享Thread常见的方法以及线程的状态相关知识 其他内容我们下一篇再见! 如果有错误或不足请您指出!!! 目录 3.Thread类及常见方法3.1Thread常见的构造方法3.2Thread…