SpringMVC--03获取请求数据

SpringMVC 获取请求数据 SpringMVC 获取请求数据 获取请求参数 获取基本数据类型 获取POJO数据类型 获取数组数据类型 获取集合数据类型 访问静态资源 请求数据乱码问题 参数绑定注解@requestParam 获取Restful风格的参数(@PathVariable注解进行占位符的匹配获取工作) 自定义类型转换器 获取Servlet相关API 获取请求头 @RequestHeader @CookieValue 文件上传 文件上传客户端三要素 单文件上传原理 单文件上传步骤 上传至本地磁盘 多文件上传 总 阅读详情

获取请求数据

使用原生Servlet API获取

这里的原生Servlet API即为使用HttpServletRequest对象来获取参数

    @RequestMapping("/login")
    public String login(HttpServletRequest request, HttpServletResponse response){
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        if(username.equals("admin") && password.equals("123456")){
            return "success";
        }else {
            return "error";
        }

注意这里的HttpServletRequest等对象是由web容器创建的

使用@RequestParam注解获取参数

    @RequestMapping("/login")
    public  String login(
            @RequestParam(required = true)
            String username,
            @RequestParam
            String password
    ){
        if(username.equals("admin") && password.equals("admin")){
            return "success";
        }else {
            return "error";
        }
    }
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
    // name同value用于指定前端数据的name
    // 若形参名与参数name相同则不需要指定
    @AliasFor("name")
    String value() default "";
    @AliasFor("value")
    String name() default "";

    // 用于指定该参数是否必须,默认为必须
    boolean required() default true;

    // 用于设置该参数的默认值
    String defaultValue() default "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n";
}

使用控制器方法上的形参名接收

若请求参数名和控制器方法上的形参名相同,那么可以省略@RequestParam注解

当使用的是Spring6+版本,则需要在pom.xml文件中指定编译参数-parameter

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <!-- maven版本 -->
            <version>3.9.8</version>
            <configuration>
                <!-- 生成java字节码版本 -->
                <source>21</source>
                <target>21</target>
                <compilerArgs>
                    <!-- 指明在生成字节码时保留方法参数名称 -->
                    <arg>-parameters</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

使用javabean接受请求参数

若前端使用json提交那么需要在形参处添加@RequestBody注解

@Data
public class User {
    private String username;
    private String password;
}
    // 使用javabean接收参数
    @RequestMapping("/login")
    public String login(User user){
        if(user.getUsername().equals("admin") && user.getPassword().equals("admin")){
            return "success";
        }else{
            return "error";
        }
    }

底层先通过扫描文件,通过isAnnotationPresent()方法判断该类是否被@Controller注解;若被注解,则通过该类的getMethod()方法来获取每一个方法,同时用方法对象的getAnnotation()方法判断该方法是否是一个requestMapping;若此方法是一个requestMapping,则使用该方法对象的getParameters()方法,来获取参数类型。获取到参数类型后利用invoke()来为该参数赋值,所赋予的值是通过对参数类的class对象使用newInstance()方法所创建,并利用参数类的class对象的getMethod()方法获取到该类的所有方法后,再利用这些方法中所有的setter方法名去掉set且首字母小写作为前端请求参数名通过httprequest对象来获取这些参数的值,并使用这些setter对象invoke()方法来进行赋值

若对上述分析理解还不够深刻,则去看之前spring6中手写ioc的部分

使用@RequestHeader注解获取请求头

使用方法与@RequestParam相同,其value为请求头中属性的名称

使用@CookieValue注解获取提交的cookie

使用方法与@RequestParam相同,其value为cookie中属性的名称

发送一个cookie

<script type="text/javascript">
    function sendCookie(){
        document.cookie = "id=1; expires=Thu,18 Dec 2025 12:00:00 UTC; path=/";
        document.location = "/springmvc/login";
    }
</script>
<button onclick="sendCookie()">发送cookie</button>
在鸿蒙中使用AVPlayer完成视频的播放【坚果派】 播放的全流程包含:创建AVPlayer,设置播放资源和窗口,设置播放参数(音量/倍速/缩放模式),播放控制(播放/暂停/跳转/停止),重置,销毁资源。5.准备播放:调用prepare(),AVPlayer进入prepared状态,此时可以获取duration,设置缩放模式、音量等。8.退出播放:调用release()销毁实例,AVPlayer进入released状态,退出播放。6.视频播控:播放play(),暂停pause(),跳转seek(),停止stop() 等操作。今天我们来看一下视频如何正常播放。 阅读详情

相关推荐

Obsidian + AI 自动知识管理:手把手教程

装完后,在命令面板(Ctrl+P)搜 "Generate Summary",AI 会在当前笔记末尾追加一段摘要。你一个月前写的、现在想快速回顾的笔记长篇笔记(三千字以上)开会记录这类信息密集的内容过度自动化。有人装上插件后,所有笔记都让 AI 打标签、写摘要、找关联。最后笔记库看起来整整齐齐,但全都是 AI 的链接,你自己完全没参与。这样做的后果是什么?你写过的笔记跟你没有"真实连接"。你还是记不住。你还是不知道自己的知识库里有什么。AI 推荐,你决策。

weixin_43571227的博客 747

03-SpringMVC 获取请求参数(前端数据传送给后端)

1. 通过ServletAPI获取(原始方法, 不推荐) 将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象. <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title<

鸣鼓ming的博客 576

在ubuntu20.04上配置VINS_Fusion(亲测有效,一应俱全)

最近在做科研训练的时候配置了HKUST-Aerial-Robotics实验室的VINS_Fusion代码项目,经历了一些编译报错的问题,在网上查找的时候博客内容良莠不齐,且实质针对性意见不多,于是在此记录下自己配置期间遇到的一些共性问题,留作自己日后参考和大家的交流学习。

wyr1849089774的博客 8266

SpringMVC的数据请求

SpringMVC 默认已经提供了一些常用的类型转换器,例如客户端提交的字符串转换成int型进行参数设置。但是不是所有的数据类型都提供了转换器,没有提供的就需要自定义转换器,例如:日期类型的数据就需要自定义转换器。//将日期字符串转换成日期对象 返回 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");try {} }}

楠黎倾风的博客 3万+

MOSFET雪崩特性参数解析

但是,一些电源在输出短路时,初级中会产生较大的电流,加上初级电感,器件就会有雪崩损坏的可能,因此在这样的应用条件下,就要考虑器件的雪崩能量。对于那些在MOSFET的D和S极产生较大电压的尖峰应用,就要考虑器件的雪崩能量,电压的尖峰所集中的能量主要由电感和电流所决定,因此对于反激的应用,MOSFET关断时会产生较大的电压尖峰。雪崩击穿能量标定了器件可以容忍的瞬时过冲电压的安全值,其依赖于雪崩击穿需要消散的能量。EAS单脉冲雪崩击穿能量, EAS标定了器件可以安全吸收反向雪崩击穿能量的高低。

Airer_00的博客 806

GEE高阶应用——如何绘制2000-2022年土地利用变化轨迹时序图

土地利用变化是指在一定时间范围内,土地利用类型和结构发生的变化。时序变化是指这种变化随时间的推移而发生的序列变化。土地利用变化轨迹的时序变化具体介绍如下:首先,土地利用变化轨迹的时序变化体现在土地利用类型的演变上。在过去的几十年里,随着人口的增加、经济的发展和城市化的推进,土地利用类型发生了显著的变化。传统的农田逐渐减少,而城市、工业、交通、居住等用地的面积不断扩大。同时,随着环境保护意识的提高,生态保护用地、森林、湿地等绿色用地的面积也在增加。

此星光明博客 1113

SpringMVC获取请求参数

大家好,我是郭尕~ SpringMVC获取请求参数一、前言二、通过控制器方法的形参获取请求参数三、 @RequestParam获取请求的参数四、@RequestHeader获取请求头信息五、@CookieValue获取cookie中的值六、 获取复杂数据类型的请求参数七、 如何解决乱码问题 一、前言 学习概述:上一篇文章我们学习了@RequestMapping注解,明白浏览器与服务器之间是如何映射的,今天我们一起学习如何获取SpringMVC中请求映射中的参数信息。 学习目标:掌握SpringMVC是如

阿莫夕林的博客 2305

把 ABAP SQL 窗口函数讲透:从 OVER 到 LEAD、RANK 与累计分析

ABAP SQL窗口函数在不丢失明细记录的前提下,为每行数据提供组内统计和排名功能。它通过OVER子句定义计算窗口,支持三类函数:聚合型(AVG/SUM等)、排名型(ROW_NUMBER/RANK等)和取值型(LEAD/LAG)。相比GROUP BY会合并多行数据,窗口函数保留原始记录同时附加计算结果,特别适合需要保留明细又要展示统计信息的业务场景,如销售排名、客户分层分析等。语法核心是OVER子句,通过PARTITION BY分组,ORDER BY排序,可灵活定义计算范围。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1272

springmvc的获取请求数据

在使用 SpringMVC 开发 web 应用时,我们经常需要从用户的请求中获取数据。不管是表单提交、查询参数,还是路径上的数据,SpringMVC 都为我们提供了简单而强大的方式来获取这些数据。

gege_0606的博客 1426

全网最全-DA14531-全球最小-BLE从入门到精通开发教程

本教程主要适用于低功耗产品,DA14531它体积小,非常适用于对体积敏感的设备,如无线可穿戴、传感器、助听器等设备。本文经过作者发大量时间来记录开发项目的调试方法,里面有许多笔者开发心得体会,旨在让读者工程师快速上手,减少摸索时间,提高软件质量。读者对象本文档主要适用以下工程师:嵌入式系统工程师单片机软件工程师IOT固件工程师BLE固件工程师。

hejinwu1314的博客 5137

(代码可运行)半导体器件和工艺模拟 使用Silvaco设计构建NMOS并提取各项工艺及器件参数

win10。

qq_20388971的博客 108

【SSM直击大厂】第六章:SpringMVC获取请求数据

SpringMVC获取请求数据 1.获得请求参数 客户端请求参数的格式是:name=value&name=value… … 服务器端要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数: 1)基本类型参数 Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。 2)POJO类型参数 3)数组类型参数 4)集合类型参数 ...

专注Spring、SSM、数据结构与算法、蓝桥杯领域创作者 2014

LVGL 组件对齐方式说明

本文说明 LVGL(以 v8 为例)中常用的 lv_align_t对齐选项的含义与用法,对应界面设计工具里下拉列表中的以及等命名。

摸鱼专家 130

【SpringMVC】SpringMVC中单元方法获取请求数据的方式

控制单元方法参数一共有两种写法:(1)紧耦方式。获取原生 Servlet API,通过原生 Servlet API 获取请求参数、设置响应内容、 设置作用域的值。(2)解耦方式。使用 Spring MVC 提供的方式获取请求参数、设置响应内容、设置作用域的 值。

qq_62555748的博客 1212

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SpringMVC——第三章:获取请求数据

本文全面解析SpringMVC中5种请求参数获取方式,包括原生Servlet API、@RequestParam注解、形参自动绑定、POJO对象接收等。深入讲解@RequestHeader和@CookieValue注解使用,并提供GET/POST请求中文乱码的完整解决方案,通过源码分析CharacterEncodingFilter工作原理,帮助开发者高效处理Web请求参数。

m0_73941339的博客 1010

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据

1 SpringMVC的数据响应 响应方式之页面跳转 ????返回字符串 请求转发(不加的话默认是请求转发):forward:前缀表示是请求转发,具体表现为地址不会变。是服务器跳转,相当于方法调用,在执行当前文件的过程中转向执行目标文件,一共就一个请求对象 请求重定向:redirect:前缀表示是请求重定向,具体表现为地址跳转。是客户端跳转,相当于客户端向服务端发送请求之后,服务器返回一个响应,客户端接收到响应之后又向服务端发送一次请求,一共是2次请求 ????返回ModelAndView对象

扎哇太枣糕的笔记博客 1552

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SpringMVC03 —— SpringMVC的请求和响应

SpringMVC实现数据请求方式: ​基本数据类型参数 参数名保持一致 ​POJO类型参数 实体的属性名和参数的名称保持一致即可 ​数组类型参数 数组名称和请求参数名称保持一致 ​集合类型参数 先封装实体 使用ajax请求&使用@RequestBody则不需要封装实体 SpringMVC获取数据的细节: ​中文乱码问题 CharacterEncodingFilter ​@RequestParam和@PathVariable @RequestParam参数名的匹配,@PathVariable是参数占位符 ​

春和的博客 789

【SpringMVC从入门到精通】03、SpringMVC 获取请求参数

通过 Servlet API 获取(不推荐)通过控制器方法获取(就是要用它,不然学 SpringMVC 干什么,不是)、、都是作用在控制器方法上的形参的(就是获取请求参数的,还能作用在别的地方?)value/name、required、(这不是四个吗?呸)主要解决形参和请求参数名不同名的问题,其次是必填问题,最后是缺省值的问题(顺序确定对吗?别误人子弟了,不是,我错了)如果请求参数与控制器方法形参同名,就可以不用上述的注解如果请求参数有多个值,通过字符串类型或字符数组类型都可以获取。

BASK2311的博客 445

springmvc获取请求参数

可以在控制器方法的形参位置设置一个实体类类型的形参,此时如果浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值。* 只需要在控制器方法的形参位置,设置一个形参,形参的名字和请求参数的名字一致即可。@CookieValue是将cookie数据和控制器方法的形参创建映射关系。4.2、通过控制器方法的形参获取请求参数。所对应的请求参数必须传输,否则页面报错。:设置和形参绑定的请求参数的名字。和控制器方法的形参创建映射关系。和控制器方法的形参创建映射关系。生成JSESSIONID。

KBkongbaiKB的博客 991

SpringMVC中的Controller如何获取请求中的参数

可以从 HTTPServletRequest,简单类型参数,pojo 类型参数,包装类,集合类型的参数中获取请求中的参数,当然,还可以通过 json 格式的字符串来获取

. 3万+

SpringMVC 获得请求数据

上述url地址/user/1中的1就是要获得的请求参数,在SpringMVC中可以使用占位符进行参数绑定。@Controller注解的类中的方法返回的通常是视图的名称或ModelAndView对象,这些返回值将由Spring MVC的视图解析器用来渲染最终的视图。当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定。主要用于客户端和服务。Controller中的业务方法的POJO参数的属性名与请求参数的name一致,参数值会自动映射匹配。

wo_1ca的博客 1934

SpringMVC--获取请求参数 / 域对象共享数据

代码过程index.jsp是一个网页文件,用户可以在浏览器中看到和与之交互。在这个页面上,有一个链接,当用户点击这个链接时,浏览器会向服务器发送一个请求。Controller 控制器 (TestController)是服务器端的一个组件,它的任务是处理来自index.jsp页面的链接点击请求。当请求到来时,它会执行test方法。在test方法中,使用这行代码,我们实际上是在请求对象上加了一个标签(称为“属性”),这个标签的名字是 "testScope",值是 "hello,servletAPI"。

sakurapaid的博客 1642
上一篇: SpringMVC--02RequestMapping注解
下一篇: SpringMVC--04三个域对象
sisyphoslee
博客等级 码龄7年 942粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值