springboot如何接收前台传送过来的数据呢?

戚薇 SpringBoot 发布时间:2023-05-07 10:09:16 阅读数:4449 1
下文笔者讲述springboot中接收参数的三种方式分享(@requestParam,@requestBody和@PathVariable),如下所示
在讲述SpringBoot中接收参数的三种方法,我们先讲述一下http请求的get和post区别

Get与Post区别

?
Get和POST请求的区别
   在于浏览器发送数据的方法
Get:
  将http的header和data一并发往服务端
  即发送一次tcp数据包,此时会导致传送数据量有限
   据量有限,依赖于Tcp负载能力,所以携带的数据量很大的情况下,容易造成重发。

Post:
  先发送http的header
  然后再传输data
  数据类型也不受限制
  且数据隐秘性比较好 

后端获取数据

//1.获取路径上的数据
    如:
	  localhost:/user/8
	   此时获取路径上8

//2.url路径上的参数
    如:
	  localhost:/user?name=maomao

//3.存放在body中的普通数据
    使用@requestParam

//4.存放在body中的json数据
    使用application/json格式
	   可使用@requestBody获取

Get方式参数获取的示例

使用@RequestParam

	@RequestMapping(value="/getUserInfo")
	public User getUserInfo(@RequestParam(value= "id") String id  ){
	}

使用HttpServletRequest

@RequestMapping(value = "/getUserInfo")
public User getUserInfo(HttpServletRequest request){
	Integer id = Integer.parseInt(request.getParameter("id"));
	if (id.intValue() == 0) {
		return null;
	}
}

Post方式参数获取

post可传递参数可以大致分成两种
   第一种是表单
     在sevlet实现中mutipart/form-data
	       和application/x-www-form-urlencoded会被特殊处理
     请求参数将被放置于request.paramter
      解析成map
  第二种 application/json
      参数是存放在json中
      参数必须要用@RequestBody才能解析出来 
//使用@RequestBody,此方式必须使用Content-Type=application/json
//获取数据的原理 json转map,然后 (Integer) map.get(“id”) 
@RequestMapping(value = "/getUserInfo")
public User getUserInfo(@RequestBody Integer id){

}

 
//使用@RequestParam
//在Content-Type=mutipart/form-data和Content-Type=application/x-www-form-urlencoded这种情况下才能使用
//servlet将Body中的key-value转成Param
@RequestMapping(value = "/getUserInfo")
public User getUserInfo(@RequestParam(value = "id",required = false) Integer id){

}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202305/6376.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者