SpringMVC---获取参数

文章目录

  • 传递单参数
  • 传递对象
  • 传递多个参数
  • 参数重命名
  • 传递JSON对象
  • 直接从 url 中传递参数 省略变量
  • 上传文件
  • 获取Cookie
  • 获取Header
  • 设置Session
  • 读取Session

传递单参数

@RequestMapping("/name")//1. 传递参数//注:传参的时候一定要传递包装类型而非基础类型   因为基础类型忘写值时会直接报错  包装类型不会报错只会返回空null//注:名字必须匹配public String getName(String name){String retName = name;return retName;}

传递对象

@RequestMapping("/people")//2. 传递对象//注:参数名和对象里的变量名必须一致   个数和顺序可以不同public String getPeople(User user){return user.toString();}

传递多个参数

@RequestMapping("/names")//3. 传递多个参数//注:参数名必须一致  参数的顺序可以不一致public String getNames(String name1,String name2){String firstName = name1;String secName = name2;return name1 + " " + name2;}

参数重命名

@RequestMapping("/rename")//4.重命名//注:@RequestParam() 括号里填前端传来的参数(字符串)//注:加上这个注解@RequestParam()之后,  括号里写的参数前端就必须传递过来  如果前端不传递就会报错//注:加上这个注解@RequestParam()之后,  想让括号里写的参数也不一定必须传递  就可以这样设置@RequestParam(value = "time", required = false)public String rename(@RequestParam("haha")String name){return name;}

传递JSON对象

@RequestMapping("/getJSON")//5. 传递JSON对象//注:只有使用@RequestBody注解修饰才能得到JSON对象   一般用对象接收public String getJson(@RequestBody User user){return user.toString();}

直接从 url 中传递参数 省略变量

@RequestMapping("/getMsg/{username}/{password}")//6.直接从url中传递参数  省去传递的变量名//注:/{}不能省略    {}里的内容和@PathVariable 括号里的内容应该一致//前端在传递数据的时候,在正常的 url 后面使用 / 加上要传递的信息public String getMsg(@PathVariable("username") String username,@PathVariable("password") String password){return username + " " + password;}
@RequestMapping("/getOtherMsg/{username}/and/{password}")//注:不使用{}包裹的内容不会当作参数接收  但是也得写上  用来占位public String getOtherMsg(@PathVariable("username") String username,@PathVariable("password") String password){return username + " " + password;}

上传文件

@RequestMapping("/upFile")//7.上传文件//注; @RequestPart  括号里写上传文件时  key里写的文件名public String upFile(@RequestPart("myfile")MultipartFile file) throws IOException {String path = "D:/home/ruoyi/result.png";file.transferTo(new File(path));return path;//        //根路径
//        String root = "D:/home/ruoyi";
//        //根路径 + 唯一的文件名       使每次都能保存不同的文件  而  不替换
//        root += UUID.randomUUID().toString().replace("-","");
//        //根路径 + 唯一的原来文件名           每次都保存原来文件的名字  不重命名
//        root += file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));}

获取Cookie

@RequestMapping("/getCookie")//8. 传统的得到Cookie//注:使用servletpublic String getCookie(HttpServletRequest request){Cookie[] cookies = request.getCookies();
//        for (Cookie cookie : cookies){
//            log.error(cookie.getName() + ":" + cookie.getValue());
//        }return "getCookie";}
@RequestMapping("/getOneCookie")//注:使用spring更简单的得到 单个cookiepublic String getOneCookie(@CookieValue("zhangsan") String val){return "cookie +" + val;}

获取Header

@RequestMapping("/getHeader")//9. 传统的得到单个header//注:使用servletpublic String getHeader(HttpServletRequest request){String userAgent = request.getHeader("User-agent");return userAgent;}
@RequestMapping("/getSpringHeader")//注:使用spring得到单个headerpublic String getSpringHeader(@RequestHeader("User-Agent") String userAgent){return userAgent;}

设置Session

@RequestMapping("/setSession")//10. 设置session//注:servlet和spring设置的方法一样  都是通过HttpServletRequest设置public String setSession(HttpServletRequest request){HttpSession session = request.getSession(true);if (session != null){session.setAttribute("username","spring");}return (String) session.getAttribute("username");}

读取Session

@RequestMapping("/getSession")//11. 读取session//注:普通的使用servlet读取public String getSession(HttpServletRequest request){HttpSession session = request.getSession(false);if (session != null && session.getAttribute("username") != null){return (String) session.getAttribute("username");}else {return "无session信息";}}
@RequestMapping("/getSpringSession")//注:使用spring更简单的读取sessionpublic String getSpringSession(@SessionAttribute(value = "username",required = false) String username){return username;}

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

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

相关文章

动手学深度学习2 安装环境

pytorch环境安装 1. windows 环境安装2. mac环境安装3. linux环境安装1. 申请云服务器 链接机器--Ubuntu2. 环境配置 4. 不安装环境直接使用colabQA 课程链接: https://www.bilibili.com/video/BV18p4y1h7Dr?p1&vd_sourceeb04c9a33e87ceba9c9a2e5f09752ef8 1.…

Pycharm中如何使用Markdown?只需装这个插件!

一、前言 由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。 如GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge、简书等…

用ChatGPT辅助写个人性化显示结构体数据的类

初衷 我们产品有很多状态信息都持久化到文件中,从而数据库意外中断后重启还能知道之前的状态信息。文件中数据是按c struct直接灌进去的,所以我想写个通用类用来漂亮的显示文件内容。 大概如此这般展示: STAT_FILEHD size: 0x258 +0 version=64 +4 filetype=b\x07…

嵌入式linux面试题分享

系统相关 以下是一些嵌入式Linux面试题,并附有答案: 题目:什么是嵌入式Linux? 答案:嵌入式Linux是一种针对嵌入式系统的Linux操作系统。它具有轻量级、可定制和可扩展性强的特点,适用于各种嵌入式设备&am…

spring之基于注解管理Bean

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

[每周一更]-(第28期):Windows服务自启动设置

需求:有时候有些软件,想在开机后自启动,但是由于屏幕需要录入密码,但是普通开机启动的应用,需要在录入密码进去Windows界面才能启动,但是 不用解锁屏幕但需要运行的应用还是有的,比如一些软件远…

《每天一分钟学习C语言·二》

1、当使用const关键字变量就无法修改可当常量来用。常量指针不能通过指针来改变变量的值,但可以通过其他引用来改变变量的值常量指针也可以指向其他变量地址,如 int a5,b6; const int *pt &a; *pt6; //错误 a6; //正确 pt&b; //正确指针常量指…

互式流程图|BPMN JointJS+ JavaScript 3.7.3 Crack

JointJS 是 JavaScript 图表库为卓越的 UI 提供支持 使用经过验证的库快速、自信地构建高级视觉和无代码/低代码应用程序。 赋能全球行业领导者 使用 JointJS 构建的图表 一个库,‍无限 UI 选项 直接在您的应用程序中享受交互式流程图、BPMN 和其他图表工作室。利用…

7000字详解ERP管理系统!

在当今竞争激烈的商业世界中,中小企业不仅需要保持灵活性,更需要高效管理企业资源。 你可能听说过ERP系统,但它究竟是什么?它为何成为中小企业管理的不二选择?又是如何助力中小企业整合资源、提升效率,并在…

C 库函数 - asctime()

描述 C 库函数 char *asctime(const struct tm *timeptr) 返回一个指向字符串的指针,它代表了结构 struct timeptr 的日期和时间。 声明 下面是 asctime() 函数的声明。 char *asctime(const struct tm *timeptr)参数 timeptr 是指向 tm 结构的指针&#xff0c…

使用极狐gitlab初始化导入本地项目

本地有项目的情况需要同步到极狐gitlab上 第一步: 在gitlab上新创建一个空项目 ⚠️⚠️⚠️这里需要注意红色圈住的地方一定不要选择,因为选择了这个后续会有不必要的麻烦 第二步 在本地项目中删除原来的.git文件(这一步如果是新项目可以忽略&#…

VMware网络设置+Linux网卡设置+主机与虚拟机相互Ping通

目录 1. Linux网卡设置 1.1 ifcfg-ens33 1.2 修改配置信息 1.3 添加IP信息 1.4 重启网卡、关闭防火墙 2. VMware网络设置 3. 设置主机网络 4. 测试主机与虚拟机网络是否连通 4.1 主机ping虚拟机的Linux 4.2 虚拟机Linux来ping主机 1. Linux网卡设置 刚开始安装的Lin…

〖Python网络爬虫实战㊸〗- 极验滑块介绍(五)

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明作者&#xff1…

ubuntu x86环境创建armv8 ubuntu2004 64位docker服务器

在arm编译速度慢,运行vscode远程耗费资源,因此尝试在ubuntu服务器上搭建armv8 64位编译环境,过程很简单,记录如下 一、安装qemu解释器 # 宿主机安装解释器和时区设置 sudo apt install -y qemu-user-static tzdata # 重启docker…

Java对接腾讯多人音视频房间回调接口示例

在前面我们已经对接好了腾讯多人音视频房间相关内容:Java对接腾讯多人音视频房间示例 为了完善业务逻辑,我们还需要对接它的一些回调接口 官方文档地址 主要就下面这些 这里因为比较简单直接上代码 里面有些工具类和上一章一样这里就没贴,需要…

React面试题:React.Component和React.PureComponent的区别?

回答思路:什么是PureComponent-->Component更新过程-->PureComponent更新过程-->PureComponent的优点 什么是PureComponent:pure:纯净的,即为纯组件,可以用来优化React程序,减少render函数执行的…

想要将numpyarray转换成Image出错,ValueError: Could not save to PNG for display

问题再现 cams_H 是一个形状为torch.size([1, 7, 7, 3])的tensor, 它经历了以下语句: cams_H_np cams_H.numpy() cams_H_img Image.fromarray(cams_H_np[0, :, :, 0]) cams_H_img报错了: ---------------------------------------------…

如何安装运行Wagtail并结合cpolar内网穿透实现公网访问网站界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 前言 Wagtail是一个用Python编写的开源CMS,建立在Django Web框架上。Wagtail 是一个基于 Django 的开源内容管理系统&#xf…

pycharm或anaconda安装第三方库的办法

https://pypi.tuna.tsinghua.edu.cn/simple/ ctrlF 查找seaborn 我是直接去镜像网站或官方网站找要下载安装的包,手动下载下来,再手动安装会比较快。 输入 pip install D:\Downloads\seaborn-0.9.0-py3-none-any.whl 回车,就很酸爽&#xff…

2024年软考报名条件有哪些?有学历限制吗?

不少考生开始准备报名2024年软件水平考试,那么报名软考有没有学历、专业以及工作经验等方面的限制呢?今天小编就给大家详细来介绍一下。 软考报名条件如下: 1、凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机…