SpringMVC获取请求参数

SpringMVC获取请求参数方式

一、利用servletAPI

1.控制类

 @RequestMapping("testServletAPI")
    //形参request表示当前请求
    public String testServletAPI(HttpServletRequest request)
    {
   
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println("username: "+username+" password: "+password);
        return "test_param";
    }

2.test_param.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>测试请求参数</h1>
<a th:href="@{/testServletAPI(username ='admin',password=123456)}">测试请求</a>
</body>
</html>

3.控制台输出
在这里插入图片描述

二、通过控制器方法的形参获取

1.通过参数直接获取

1.1.控制器
形参要和请求参数名字相同,这样就可以自动匹配。

 @RequestMapping("testCon")
    public String testControllerParam(String username,String password)
    {
   

        System.out.println("username: "+username+" password: "+password);
        return "test_param";
    }

1.2.控制台输出
在这里插入图片描述
1.3.当有重名的参数时

在这里插入图片描述通过get提交方式发现重名的参数会以这种方式传送。

1.3.1.用字符串类型接收

@RequestMapping("testCon")
    public String testControllerParam(String username,String password,String hobby)
    {
   

        System.out.println("username: "+username+" password: "+password+" hobby "+hobby);
        return "test_param";
    }

当用字符串类型接收时会用,隔开。
在这里插入图片描述1.3.2.用字符串数组接收

 @RequestMapping("testCon")
    public String testControllerParam(String username,String password,String[] hobby)
    {
   

        System.out.println("username: "+username+" password: "+password+" hobby "+ Arrays.toString(hobby));
        return "test_param";
    }

在这里插入图片描述

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

在这里插入图片描述

@RequestMapping("testCon")
    public String testControllerParam(
            @RequestParam(value = "username") String username, String password, String[] hobby)
    {
   

        System.out.println("username: "+username+" password: "+password+" hobby "+ Arrays.toString(hobby));
        return "test_param";
    }

3.@RequestHeader 将请求头和控制器方法的形参创建映射关系

@RequestMapping("testCon")
    public String testControllerParam(@RequestHeader("host") String host)
    {
   

        System.out.println("host "+host);
        return "test_param";
    }

同样具有三个属性

  • value
  • required
  • defaultValue

4.@CookiValue 将Cookie和控制器方法的形参创建映射关系

@RequestMapping("testCon")
    public String testControllerParam(@CookieValue(value = "j")String cookie)
    {
   
        return "test_param";
    }

同样具有三个属性

  • value
  • required
  • defaultValue

5.通过实体类对象获取请求参数

5.1.实体类

package com.mvc.bean;

public class User {
   

    private Integer id;
    private String username;
    private String password;
    private String sex;
    private String email;

    public User(Integer id, String username, String password, String sex, String email) {
   
        this.id = id;
        this.username = username;
        this.password = password;
        this.sex = sex;
        this.email = email;
    }

    public User() {
   
    }

    public Integer getId() {
   
        return id;
    }

    public void setId(Integer id) {
   
        this.id = id;
    }

    public String getUsername() {
   
        return username;
    }

    public void setUsername(String username) {
   
        this.username = username;
    }

    public String getPassword() {
   
        return password;
    }

    public void setPassword(String password) {
   
        this.password = password;
    }

    public String getSex() {
   
        return sex;
    }

    public void setSex(String sex) {
   
        this.sex = sex;
    }

    public String getEmail() {
   
        return email;
    }

    public void setEmail(String email) {
   
        this.email = email;
    }

    @Override
    public String toString() {
   
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", sex='" + sex + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

5.2.表单

<form th:action="@{/testBean}" method="post">
    用户名<input name="username" type="text"><br>
    密码<input type="password" name="password"> <br>
    性别:<input type="radio" name="sex" value=""><input type="radio" name="sex" value=""><br>
    邮箱<input type="text" name="email"> <br>
    <input type="submit" value="通过实体类对象获取">

</form>

5.3.控制类方法

@RequestMapping("testBean")
    public String testBean(User user)
    {
   
        System.out.println(user);
        return "index";
    }

5.4控制台输出
在这里插入图片描述

控制台输出乱码,在web.xml中设置
<!--配置过滤器-->
<!--    设置编码格式-->
    <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>

相关推荐

  1. springMVC获取请求参数的方式

    2024-01-24 13:34:01       41 阅读
  2. SpringMVC获取请求参数和域对象共享数据

    2024-01-24 13:34:01       23 阅读
  3. SpringMVC获取请求数据

    2024-01-24 13:34:01       7 阅读
  4. SpringMVC---获取参数

    2024-01-24 13:34:01       37 阅读
  5. SpringMVC参数获取

    2024-01-24 13:34:01       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-24 13:34:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-24 13:34:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-24 13:34:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-24 13:34:01       18 阅读

热门阅读

  1. C语言大师(8)异常处理

    2024-01-24 13:34:01       28 阅读
  2. 查看现有的conda源

    2024-01-24 13:34:01       35 阅读
  3. HBase学习五:运维排障之宕机恢复

    2024-01-24 13:34:01       43 阅读
  4. 【FINEBI】finebi中常用图表类型及其适用场景

    2024-01-24 13:34:01       32 阅读
  5. 蓝桥杯-1矩阵切割(c/c++)

    2024-01-24 13:34:01       34 阅读
  6. 【AI】深度学习在编码中的应用(3)

    2024-01-24 13:34:01       30 阅读
  7. gin中使用validator做参数校验

    2024-01-24 13:34:01       40 阅读
  8. Redis-2

    Redis-2

    2024-01-24 13:34:01      35 阅读
  9. Python3多线程爬虫实例讲解

    2024-01-24 13:34:01       36 阅读
  10. 邦芒支招:10种小妙招让你准时下班

    2024-01-24 13:34:01       33 阅读
  11. MongoDB用户权限相关

    2024-01-24 13:34:01       32 阅读
  12. 大数据基础设施搭建 - Hbase

    2024-01-24 13:34:01       25 阅读