springboot如何接收get和post请求参数

 更新时间:2023年06月28日 10:16:03   作者:Archie_java  
这篇文章主要介绍了springboot如何接收get和post请求参数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、get请求前端传参和后台接收的写法:

1、ajax请求:

 $.ajax({                
     	url:'/user/login3',
        //contentType: 'application/json;charset=utf-8', //这一句添加与否,效果都一样
     	data:{"userName":"张三", "userPass":"123"},
     	method:'get',       
     	dataType:'json',                
     	success:function(res){    
     		if(res.successful == true || res.successful=='true'){      
     			alert("ok");   
     		}else{
     			alert("用户名或密码错误");            
     		}
     	},                
     	error:function (data) {
     		alert("用户名或密码错误");            
     	}            
     });

此时查看浏览器的network选项,会看到请求地址变成:

​ Request URL:http://localhost:8082/user/login3?userName=%E5%BC%A0%E4%B8%89&userPass=123

即请求参数拼接到url地址栏后,并且已经编码了。

2、针对这种请求,后台接收参数有三种写法:

1)、参数名称与前端key对应,不加任何注解:

@RequestMapping(value = "/login3", method = RequestMethod.GET)
	Map<String, Object> login4( String userName,  String userPass)

2)、参数名称与前端key对应,添加@RequestParam注解:

@RequestMapping(value = "/login3", method = RequestMethod.GET)
	Map<String, Object> login2(@RequestParam String userName, @RequestParam String userPass) 

3)、使用@RequestParam注解,将所有的参数封装到Map<String,Object>对象:

@RequestMapping(value = "/login3", method = RequestMethod.GET)
	Map<String, Object> login3(@RequestParam Map<String,Object> param)

此时,后台通过param.get(“userName”)来获取参数的值。@RequestParam注解换成@RequestBody注解无效,ajax请求报400错误,进入不了后台对应的方法。

二、post请求前端传参和后台接收的写法:

​ 3、ajax请求:

 $.ajax({                
     	url:'/user/login3',
     	data:{"userName":"张三", "userPass":"123"},
     	method:'post',       
     	dataType:'json',                
     	success:function(res){    
     		if(res.successful == true || res.successful=='true'){      
     			alert("ok");   
     		}else{
     			alert("用户名或密码错误");            
     		}
     	},                
     	error:function (data) {
     		alert("用户名或密码错误");            
     	}            
     });

4、针对3的ajax请求,后台的接口参数写法同2。

5、ajax请求:

$.ajax({                
     	url:'/user/login3',
     	contentType: 'application/json;charset=utf-8',
     	data:JSON.stringify({"userName":"张三", "userPass":"123"}),
     	method:'post',       
     	dataType:'json',   

不同的地方在于添加了contentType,data需要改成序列化的json字符串。

6、针对5这种ajax请求,2的三种写法后台都拿不到值,或者直接报400错误。需要用另外一种写法:

@RequestMapping(value = "/login3", method = RequestMethod.POST)
	Map<String, Object> login3(@RequestBody Map<String,Object> param) {
		try {
			System.out.println("userName==" + param.get("userName") +", userPass==" + param.get("userPass"));

​ 这里的param名称可以随便取,可以用别的名称代替;Map<String,Object>也可以替换成自定义的POJO类名,比如自定了User类,包含了userName和userPass两个属性,则@RequestBody User user也可以去到前端传递的值,此时用user.getUserName()就可以了。

或者:

@RequestMapping(value = "/login2", method = RequestMethod.POST)
	Map<String, Object> login2(@RequestBody String userInfo) {
		try {
			JSONObject json = JSONObject.parseObject(userInfo);
			System.out.println("userName==" + json.getString("userName") +", userPass==" + json.getString("userPass"));

这里的userInfo名称是随便取,可以用别的名称代替;把这里的@RequestBody替换成@RequestParam,会报400错误。

到此这篇关于springboot接收get和post请求参数的文章就介绍到这了,更多相关springboot接收get和post参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用GenericObjectPool避免泄漏设置方法

    使用GenericObjectPool避免泄漏设置方法

    这篇文章主要为大家介绍了使用GenericObjectPool避免泄漏的设置方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • SpringBoot+MyBatisPlus对Map中Date格式转换处理的方法详解

    SpringBoot+MyBatisPlus对Map中Date格式转换处理的方法详解

    在 SpringBoot 项目中, 如何统一 JSON 格式化中的日期格式。本文将为大家介绍一种方法:利用MyBatisPlus实现对Map中Date格式转换处理,需要的可以参考一下
    2022-10-10
  • SpringBoot @Retryable注解方式

    SpringBoot @Retryable注解方式

    这篇文章主要介绍了SpringBoot @Retryable注解方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java纯代码实现导出PDF功能

    Java纯代码实现导出PDF功能

    在项目开发中,产品的需求越来越奇葩啦,开始文件下载都是下载为excel的,做着做着需求竟然变了,要求能导出pdf,本文就来和大家分享一下Java实现导出PDF的常用方法吧
    2023-07-07
  • Java JVM运行时数据区(Run-Time Data Areas)

    Java JVM运行时数据区(Run-Time Data Areas)

    运行时数据区,是java虚拟机定义的在程序执行期间使用的各种运行时的数据区,通过JVM运行时数据区图例给大家展示的很详细,对JVM 运行时数据区相关知识感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • SpringBean管理与Spring Boot自动配置原理解析

    SpringBean管理与Spring Boot自动配置原理解析

    在Spring中,Bean的作用域(Scope)决定了Bean的实例化方式以及其生命周期,下面给大家介绍SpringBean管理与Spring Boot自动配置原理解析,感兴趣的朋友一起看看吧
    2025-05-05
  • SpringMVC修改返回值类型后的消息转换器处理方式

    SpringMVC修改返回值类型后的消息转换器处理方式

    这篇文章主要介绍了SpringMVC修改返回值类型后的消息转换器处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java中的IO读写原理详解

    Java中的IO读写原理详解

    这篇文章主要介绍了Java中的IO读写原理,IO是指输入和输出操作的技术,它提供了一组用于读取和写入数据的类,以及用于处理字符和字节数据的接口,这些类和接口可以用于读取和写入文件、网络流、内存缓冲区等各种数据源和目标,需要的朋友可以参考下
    2023-08-08
  • Java File类的概述及常用方法使用详解

    Java File类的概述及常用方法使用详解

    Java File类的功能非常强大,下面这篇文章主要给大家介绍了关于Java中File类的概述及常用方法使用,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 在es中查询null值的操作方法

    在es中查询null值的操作方法

    在我们向es中写入数据时,有些时候数据写入到es中的是null,或者没有写入这个字段,那么这个时候在es中该如何查询出这种为null的数据呢,本文给大家详细讲解,需要的朋友参考下吧
    2023-02-02

最新评论