【SpringMVC]获取参数的六种方式

目录

1.通过ServletAPI获取

2.通过控制器方法的形参获取

3.@RequestParam:将请求参数和控制器方法的形参绑定

4.@RequestHeader:将请求头信息与控制器方法的形参的值进行绑定

[5. CookieValue:将cookie数据和控制器方法的形参绑定](#5. CookieValue:将cookie数据和控制器方法的形参绑定)

Cookie:

​编辑

6.通过控制器方法的实体类类型的形参获取请求参数

对应的index.html页面:


SpringMVC的处理流程:(用户请求-》Controller-》Model-》Controller-》View-》响应给用户)

用户通过视图层(View)发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器。

1.通过ServletAPI获取

只需要在控制器的方法的形参位置设置HTTPRequest request类型的形参就i可以在控制器方法种使用request对象获取请求参数

java 复制代码
 @RequestMapping("/param/servletAPI")
    public String getParamServletAPI(HttpServletRequest request){
        HttpSession session = request.getSession();
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println("username = " + username + "," + "password = " +  password);
        return "success";
    }

2.通过控制器方法的形参获取

只需要在控制器方法的形参位置设置一个形参,形参的名字和请求参数的名字保持一致即可

java 复制代码
 @RequestMapping("/param")
    public String getParam(String username, String password){
        System.out.println("username = " + username + "," + "password = " +  password);
        return "success";
    }

3.@RequestParam:将请求参数和控制器方法的形参绑定

@RequestParam注解的三个属性:value,require,defaultValue

value:设置和形参绑定的请求参数的名字

required:设置是否必须传输value所对应得求情参数默认值为true,表示value所对应得请求参数必须传输,否则页面报错 ,或设置为false,则表示value所对应得请求参数不是必须传输,若为传输,则形参值为null

defaultValue:设置当没有传输value所对应得请求参数时,为形参设置得默认值,此时和required属性无关

java 复制代码
  @RequestMapping("/param")
    public String getParam(@RequestParam(value = "userName",required = true,defaultValue = "hello")String username, String password,){
        System.out.println("username = " + username + "," + "password = " +  password);
      
        return "success";
    }

4.@RequestHeader:将请求头信息与控制器方法的形参的值进行绑定

java 复制代码
@RequestMapping("/param")
    public String getParam(String username, String password,
                           @RequestHeader("referer") String referer){
        System.out.println("username = " + username + "," + "password = " +  password);
        System.out.println("referer = " + referer);
   
        return "success";
    }

5. CookieValue:将cookie数据和控制器方法的形参绑定

java 复制代码
@RequestMapping("/param")
    public String getParam(String username, String password,
                           @CookieValue("JSESSIONID") String jsessionId){
        System.out.println("username = " + username + "," + "password = " +  password);
      
        System.out.println("jsessionId = " + jsessionId);
        return "success";
    }

Cookie:

6.通过控制器方法的实体类类型的形参获取请求参数

注意:需要在控制器方法的形参位置设置实体类类型的形参,要保证实体类的属性的属性名和请求参数的名字保持一致,可以通过实体类类型的形参获取请求参数

java 复制代码
 @RequestMapping("/param/pojo")
    public String getParamByPojo(User user){
        System.out.println(user);
        return "success";
    }

对应的index.html页面:

html 复制代码
<h3>前五种方式实现:</h3>
<form th:action="@{/param}" method="get">
    用户名:<input type="text" name="username"><br>
    密码:  <input type="password" name="password"><br>
    <input type="submit" value="登录">
</form>

<h3>pojo实现:</h3>
<form th:action="@{/param/pojo}" method="get">
    用户名:<input type="text" name="username"><br>
    密码:  <input type="password" name="password"><br>
    <input type="submit" value="登录">
</form>
跳转页面:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>成功</title>
</head>
<body>
<h1>success.html</h1>
</body>
</html>

相关推荐
孤雪心殇几秒前
简单易懂,解析Go语言中的Map
开发语言·数据结构·后端·golang·go
White graces12 分钟前
正则表达式效验邮箱格式, 手机号格式, 密码长度
前端·spring boot·spring·正则表达式·java-ee·maven·intellij-idea
庸俗今天不摸鱼12 分钟前
Canvas进阶-4、边界检测(流光,鼠标拖尾)
开发语言·前端·javascript·计算机外设
菠菠萝宝13 分钟前
【Java八股文】10-数据结构与算法面试篇
java·开发语言·面试·红黑树·跳表·排序·lru
奔跑吧邓邓子16 分钟前
【Python爬虫(36)】深挖多进程爬虫性能优化:从通信到负载均衡
开发语言·爬虫·python·性能优化·负载均衡·多进程
不会Hello World的小苗20 分钟前
Java——链表(LinkedList)
java·开发语言·链表
lsx20240632 分钟前
Perl 面向对象编程指南
开发语言
bubusa~>_<36 分钟前
解决npm install 出现error,比如:ERR_SSL_CIPHER_OPERATION_FAILED
前端·npm·node.js
Allen Bright1 小时前
【Java基础-46.3】Java泛型通配符详解:解锁类型安全的灵活编程
java·开发语言
柃歌1 小时前
【UCB CS 61B SP24】Lecture 7 - Lists 4: Arrays and Lists学习笔记
java·数据结构·笔记·学习·算法