iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java中springMVC获取请求参数的方法
  • 842
分享到

java中springMVC获取请求参数的方法

springMVC 请求参数springMVC 请求 2023-05-18 17:05:22 842人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录原生方式获取请求参数控制器方法形参获取请求参数@RequestParam注解@RequestHeader注解@CookieValue注解通过POJO获取请求参数原生方式获取请求参

原生方式获取请求参数

html代码

<a th:href="@{/testServlet(username='admin',passWord=123456)}">测试原生Servlet获取请求参数</a><br>

接收参数代码

@RequestMapping(value = "/testServlet")
//形参位置的request表示当前请求
public String testServlet(httpservletRequest request) {
    System.out.println(request.getParameter("username"));
    System.out.println(request.getParameter("password"));
    return "test";
}

这种方式当然可以接收到传递过来的参数,但是方式略显繁琐。

控制器方法形参获取请求参数

html代码

<a th:href="@{/testParam(username='admin',password=123456)}">测试使用控制器的形参获取请求参数</a><br>

接收代码,直接将传递过来的参数名写成函数形参来获取对应的值。

@RequestMapping(value = "/testParam")
public String testParam(String username, String password) {
    System.out.println("username = " + username + ", passwprd = " + password);
    return "test";
}

输出内容

 当然通过控制器方法形参获取请求参数还有几个我们需要注意的地方。

@RequestParam注解

使用这一个注解,可以在请求参数和形参之间建立映射关系,大致意思就是获取到传递过来的这一参数然后赋值给形参。@RequestParam注解有三个属性:

value属性:设置指定的请求参数名。

required属性:设置是否必须传输此参数,默认值为true,如果设置为true但是没有接收到这一个参数,那么将会报错。

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

例如我们修改传递过来的参数,下面只传递了参数名为username007的用户名,并且没有传递密码。

<a th:href="@{/testParam(username007='admin')}">测试使用控制器的形参获取请求参数</a><br>

接收参数代码 

@RequestMapping(value = "/testParam")
    public String testParam(@RequestParam(value = "username007", required = false, defaultValue = "默认username") String username,
                            @RequestParam(value = "password007", required = false, defaultValue = "默认password") String password) {
        System.out.println("username = " + username + ", passwprd = " + password);
        return "test";
    }

 输出结果

 从输出结果可以看出,由于我们传递了username007,@RequestParam注解讲其内容传递给了形参username,但是我们并没有传递password007,所以使用的是默认值。

@RequestHeader注解

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

首先查看请求标头的信息如下

html代码

<a th:href="@{/testParam(username='admin',password='123456')}">测试使用控制器的形参获取请求参数</a><br>

 接收参数代码

@RequestMapping(value = "/testParam")
public String testParam(
        @RequestHeader(value = "Host", required = false, defaultValue = "默认Host") String host,
        @RequestHeader(value = "Cookie", required = false, defaultValue = "默认Cookie") String cookie,
        String username, String password) {
    System.out.println("username = " + username + ", passwprd = " + password);
    System.out.println("Host = " + host + ", Cookie = " + cookie);
    return "test";
}

输出结果 

 从输出结果我们可以看出,程序获取到了请求头的Host和Cookie信息,并且传递给了形参。相比于原生的Servletapi获取请求头的信息,这种方式更加高效简便。

@CookieValue注解

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

通过查看请求头的信息,我们可以看到Cookie数据如下

html代码

<a th:href="@{/testParam(username='admin',password='123456')}">测试使用控制器的形参获取请求参数</a><br>

接收参数代码

@RequestMapping(value = "/testParam")
    public String testParam(
            @CookieValue("jsESSioNID") String JSESSIONID,
            String username, String password) {
        System.out.println("username = " + username + ", passwprd = " + password);
        System.out.println("JSESSIONID = " + JSESSIONID);
        return "test";
    }

输出结果

相当于获取到了Cookie中的JSESSIONID属性下的信息。

通过POJO获取请求参数

想一想,要是我们提交的是一个表单,并且表单的提交内容十分的多,那我们岂不是要写很多个形参,而且也不方便维护,所以当参数很多时,我们可以用一个实体类来接收数据并进行操作。当浏览器传输的请求参数的参数名和实体类中的属性名一致时,请求参数就会为此属性赋值。其底层原理是通过反射set方法进行属性注入。

如果通过POJO获取请求参数出现了乱码问题,可以先在web.xml文件当中配置过滤器设置编码。

 WEB.xml文件配置过滤器代码

<!--配置过滤器-->
<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!--设置获取时的编码-->
    <init-param>
        <!--在springMVC源码当中有一个encoding属性表示编码方式,可以通过初始化这一参数来设置编码方式-->
        <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>

html代码

<fORM th:action="@{/testBean}" method="get">
    用户名:<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="location"><br>
    电话:<input type="text" name="phoneNumber"><br>
    邮箱:<input type="text" name="email"><br>
    <input type="submit" value="使用实体类接收请求参数">
</form>

实体类代码,就相当于根据表单设置了对应的属性,然后生成了属性的set和get方法,创建了对应的构造方法和空构造方法。

package com.mvc.bean;
public class User {
    private Integer id;
    private String username;
    private String password;
    private Integer age;
    private String location;
    private String phoneNumber;
    private String sex;
    private String email;
    public User() {
    }
    public User(Integer id, String username, String password, Integer age, String location, String phoneNumber, String sex, String email) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.age = age;
        this.location = location;
        this.phoneNumber = phoneNumber;
        this.sex = sex;
        this.email = email;
    }
    //属性的get和set方法这里写出,太占篇幅了。
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", location='" + location + '\'' +
                ", phoneNumber='" + phoneNumber + '\'' +
                ", sex='" + sex + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

接收代码

@RequestMapping(value = "/testBean")
public String testBean(User user) {
    System.out.println(user);
    return "test";
}

测试

输出结果

 这种方式可以很方便的接收数据并且进行相对于的数据库操作。

到此这篇关于java中springMVC获取请求参数的方法的文章就介绍到这了,更多相关springMVC获取请求参数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: java中springMVC获取请求参数的方法

本文链接: https://www.lsjlt.com/news/212313.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中springMVC获取请求参数的方法
    目录原生方式获取请求参数控制器方法形参获取请求参数@RequestParam注解@RequestHeader注解@CookieValue注解通过POJO获取请求参数原生方式获取请求参...
    99+
    2023-05-18
    springMVC 请求参数 springMVC 请求
  • SpringMVC中请求参数的获取方式
    目录SpringMVC请求参数获取方式一、通过 ServletAPI 获取二、通过控制器方法的形参获取处理多个同名的请求参数三、通过 @RequestParam 注解四、@Reque...
    99+
    2022-11-13
  • SpringMVC获取请求参数实现方法介绍
    目录一、通过ServletAPI获取二、通过控制器方法的形参获取请求参数三、@RequestParam四、@RequestHeader五、@CookieValue六、通过POJO获取...
    99+
    2022-11-13
    SpringMVC获取请求参数 SpringMVC请求参数
  • SpringMVC实现获取请求参数方法详解
    目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@RequestHeader5、@CookieValue6、通过POJO获取...
    99+
    2022-11-13
  • springMVC获取请求参数的方式有哪些
    这篇文章主要讲解了“springMVC获取请求参数的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springMVC获取请求参数的方式有哪些”吧!初步认识可以直接在请求地址中给于请...
    99+
    2023-06-29
  • springMVC获取请求参数的几种方式汇总
    目录一、前言二、初步认识三、servletAPI四、方法参数五、@RequestParam六、实体类七、总结一、前言 大家好,我是卷心菜,大二学生一枚。 大家在学习springMVC...
    99+
    2022-11-13
  • SpringMVC获取请求参数笔记整理
    目录前言一、使用ServletAPI获取参数二、通过控制器方法的形参获取请求参数三、@RequestParam四、@RequestHeader五、@CookieValue六、通过实体...
    99+
    2022-11-13
  • Java中SpringMVC怎么获取请求数据
    本文小编为大家详细介绍“Java中SpringMVC怎么获取请求数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中SpringMVC怎么获取请求数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.获...
    99+
    2023-06-29
  • javascript获取请求参数的方法是什么
    这篇文章主要讲解了“javascript获取请求参数的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript获取请求参数的方法是什么”...
    99+
    2022-10-19
  • java如何获取get请求参数
    在Java中,可以使用HttpServletRequest对象来获取GET请求参数。HttpServletRequest类是Java...
    99+
    2023-10-21
    java
  • java怎么获取请求头参数
    在Java中,可以通过HttpServletRequest对象的getHeader方法来获取请求头参数。具体代码如下: import...
    99+
    2023-10-28
    java
  • java获取请求ip的方法
      在上篇文章中我们介绍了 java获取请求 ip的方法,那么这篇文章我们就来详细讲解下获取请求 ip的方法。获取请求 ip的方法是基于 HTTP协议的,其原理如下: 1、用 web应用程序,将 web服务器端与客户端通过 HTTP协议通...
    99+
    2023-09-06
    java tcp/ip servlet
  • springmvc之获取参数的方法(必看)
    1、导包,四大核心包,一个切面包(AOP),logging,web,springmvc2、配置文件,核心代码如下:web.xml<servlet> <servlet-name>springDispatcherSer...
    99+
    2023-05-31
    springmvc 获取参数 sprin
  • HttpServletRequest核心方法以及获取请求参数
    一. 展示HttpServletRequest中一些重要方法 当Tomcat 通过 Socket API 读取 HTTP 请求(字符串), 并且按照 HTTP 协议的格式把字符串解析成HttpServletRequest 对象. 创建一个S...
    99+
    2023-08-21
    tomcat servlet java
  • php 获取请求参数的函数
    在 PHP 中,可以使用 $_GET、$_POST 和 $_REQUEST 来获取请求参数。以下是介绍它们的一些细节: $_GET 用于获取通过 URL 传递的参数,一般用于获取请求方式为 GET ...
    99+
    2023-09-01
    php 开发语言
  • 二、Gin 路由(Route)和获取请求参数的方法
    路由(Route)方法 支持方法 路由方法有 GET, POST, PUT, PATCH, DELETE 和 OPTIONS,当然匹配所有类型的请求方法是 Any package main import ( "githu...
    99+
    2022-10-22
  • Java注解怎么获取请求参数值
    在Java中,可以使用反射来获取方法中的请求参数值。以下是一个示例代码:```javaimport java.lang.annota...
    99+
    2023-09-27
    Java
  • 使用springmvc的controller层获取到请求的数据方式
    目录content-type1.application/x-www-form-urlencoded1.1 String 参数值=reqeust.getParameter(“参数名”)...
    99+
    2022-11-12
  • Java超详细讲解SpringMVC如何获取请求数据
    目录1.获得请求参数1)基本类型参数:  2)POJO类型参数:3)数组类型参数  4)集合类型参数  2.请求乱码问题3.参数绑注解@RequestP...
    99+
    2022-11-13
  • Node.js中怎么处理POST请求并获取请求参数
    本篇内容介绍了“Node.js中怎么处理POST请求并获取请求参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!接收POST请求在Node....
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作