前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringMVC获取请求参数

SpringMVC获取请求参数

作者头像
一个风轻云淡
发布于 2022-11-13 03:06:13
发布于 2022-11-13 03:06:13
1.1K00
代码可运行
举报
文章被收录于专栏:java学习javajava学习java
运行总次数:0
代码可运行

1、通过ServletAPI获取

将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RequestMapping("/testParam")
public String testParam(HttpServletRequest request){
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    System.out.println("username:"+username+",password:"+password);
    return "success";
}

2、通过控制器方法的形参获取请求参数 

在控制器方法的形参位置,设置和请求参数同名的形参,当浏览器发送请求,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a th:href="@{/testParam(username='admin',password=123456)}">
测试获取请求参数-->/testParam</a><br>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RequestMapping("/testParam")
public String testParam(String username, String password){
    System.out.println("username:"+username+",password:"+password);
    return "success";
}

注:

若请求所传输的请求参数中有多个同名的请求参数,此时可以在控制器方法的形参中设置字符串数组或者字符串类型的形参接收此请求参数

若使用字符串数组类型的形参,此参数的数组中包含了每一个数据

 若使用字符串类型的形参,此参数的值为每个数据中间使用逗号拼接的结果

3、@RequestParam

@RequestParam是将请求参数和控制器方法的形参创建映射关系

@RequestParam注解一共有三个属性:

value:指定为形参赋值的请求参数的参数名

required:设置是否必须传输此请求参数,默认值为true

若设置为true时,则当前请求必须传输value所指定的请求参数,若没有传输该请求参数,且没有设置defaultValue属性,则页面报错400:Required String parameter 'xxx' is not present;若设置为false,则当前请求不是必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null

defaultValue:不管required属性值为true或false,当value所指定的请求参数没有传输或传输的值为""时,则使用默认值为形参赋值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @RequestMapping("/123")
    public String a123(
 // 设置注解必须传,默认的情况下true必须传不然报错400,如果改为flase可以传
 //如果有defaultvalue那么就不要求了,true失效,当没有传或者传的空字符的时候就使用默认值
           @RequestParam(value = "username1" ,required = true,defaultValue = "123") String name,
            String password,
            String hobby,
            @RequestHeader(value = "Host") String host
    )
    {
        System.out.println(name);
        System.out.println(hobby);
        System.out.println(password);
        System.out.println(host);
        return "success";
    }

4.@RequestHeader 

@RequestHeader是将请求头信息和控制器方法的形参创建映射关系@RequestHeader注解一共有三个属性:value、required、defaultValue,用法同@RequestParam

 5、@CookieValue

@CookieValue是将cookie数据和控制器方法的形参创建映射关系@CookieValue注解一共有三个属性:value、required、defaultValue,用法同@RequestParam

6、通过POJO获取请求参数

可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form th:action="@{/testpojo}" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="password" name="password"><br>
    性别:<input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女"><br>
    年龄:<input type="text" name="age"><br>
    邮箱:<input type="text" name="email"><br>
    <input type="submit">
</form>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RequestMapping("/testpojo")
public String testPOJO(User user){  
  System.out.println(user);  
  return "success";}

 7、解决获取请求参数的乱码问题

解决获取请求参数的乱码问题,可以使用SpringMVC提供的编码过滤CharacterEncodingFilter,但是必须在web.xml中进行注册

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--配置springMVC的编码过滤器-->
<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceResponseEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

SpringMVC中处理编码的过滤器一定要配置到其他过滤器之前,否则无效

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringMVC获取请求参数
将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象
愷龍
2023/02/26
1.4K0
SpringMVC 获取请求参数
将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象
用户9615083
2022/12/25
1.4K0
SpringMVC 获取请求参数
4. SpringMVC获取请求参数
将 HttpServletRequest 作为控制器方法的形参 , 此时 HttpServletRequest 类型的参数表示封装了当前请求的请求报文的对象
捞月亮的小北
2023/12/01
1870
4. SpringMVC获取请求参数
快速学习-处理请求数据
第4章 处理请求数据 4.1 请求处理方法签名 Spring MVC 通过分析处理方法的签名,HTTP请求信息绑定到处理方法的相应人参中。 Spring MVC 对控制器处理方法签名的限制是很宽松的,几乎可以按喜欢的任何方式对方法进行签名。 必要时可以对方法及方法入参标注相应的注解( @PathVariable 、@RequestParam、@RequestHeader 等)、 Spring MVC 框架会将 HTTP 请求的信息绑定到相应的方法入参中,并根据方法的返回值类型做出相应的后续处理。 4.2 @
cwl_java
2020/02/19
5530
【SpringMVC】获取 -请求参数- 的多种方式
.29.
2023/10/17
2510
【SpringMVC】获取 -请求参数- 的多种方式
SpringMVC
今天开始学习我自己总结的 Java-学习路线 中的《SpringMVC》,小简从 0 开始学 Java 知识,并不定期更新所学笔记,期待一年后的蜕变吧!
小简
2023/01/04
3.3K0
SpringMVC
SpringMVC基础(上篇)
​ 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过 @PathVariable(“xxx“) 绑定到操作方法的入参中。
OY
2022/03/12
3480
SpringMVC基础(上篇)
springMVC基础
springMVC中默认的转发视图是InternalResourceView 当控制器方法中所设置的视图名称以“forward:”为前缀时,创建InternalResourceView视图,此时的视图名称不会被springmvc配置文件的视图解析器解析,而是通过转发方式实现跳转。
冬天vs不冷
2025/01/20
440
springMVC基础
SpringMVC的数据请求
服务器端要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数
楠羽
2023/10/17
1610
【SSM_06】SpringMVC-响应数据、请求数据
一、数据响应 1. 页面跳转 ① 返回字符串 @RequestMapping(value = "/find") public String find(){ return "success"; } # 注意 - 返回的字符串将被视图解析器解析 - 返回值省略了 forward:转发 【 redirect: 重定向 [ 不经过视图解析器 ] 】 - 需要配置视图解析器前后缀 // 自动拼接为 /WEB-INf/success.jsp -
用户8250147
2021/02/04
7690
SpringMvc入门
简单的Java对象(Plain Ordinary Java Objects)实际就是普通JavaBeans
大忽悠爱学习
2021/11/15
7680
SpringMVC请求参数的绑定
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
多凡
2019/11/01
7580
SpringMVC学习笔记
V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据
SerMs
2022/03/31
1.7K0
SpringMVC学习笔记
SpringMVC RequestMapping-请求数据-响应数据
  4、非常容易与其他视图技术集成,如:Velocity、FreeMarker等等
用户7353950
2022/05/10
1.5K0
SpringMVC RequestMapping-请求数据-响应数据
快速学习-SpringMVC请求参数的绑定
SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的。 例如:
cwl_java
2020/04/08
7230
SpringMVC之请求参数的绑定
SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的。
yuanshuai
2022/08/22
6740
SpringMVC之请求参数的绑定
请求参数绑定
我们都知道,表单中请求参数都是基于 key=value 的。 SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的 例:例如:
暴躁的程序猿
2022/03/24
6270
请求参数绑定
Spring 全家桶之 Spring Web MVC(二)- Restful
创建一个新的Maven工程,导入依赖,添加Framework Support,选择Web,配置web.xml,创建Spring MVC的配置文件,点击Project Structure,在Artifacts目录下选择WEB-INF,点击创建lib文件夹,并将右侧的jar导入新建的lib文件夹下,配置Tomcat,配置项目请求地址为/,启动Tomcat
RiemannHypothesis
2022/08/19
4160
Spring 全家桶之 Spring Web MVC(二)-  Restful
请求参数的绑定
public String testParam(String username,String password){
阮键
2019/12/10
8280
你真的了解SpringMVC吗?
用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller 调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果 找到相应的View视图,渲染数据后最终响应给浏览器
用户11097514
2024/05/30
1090
你真的了解SpringMVC吗?
相关推荐
SpringMVC获取请求参数
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验