关于java里面的post请求接受参数的一点总结

第一部分  关于post

post的headers 的Content-Type有很多,这里着重区分两种

第一种

application/application/x-www-form-urlencoded

这一种也就是俗称的表单提交方式

参数的提交形式是类似于url拼接的,也就是post的请求体body里面的存放的内容形如:

a="123"&b=520&c=true&d="你好" 

这种

 

第二种

application/json

这种也就是所谓的json提交,post的请求体body里面的存放的内容形如:

{

    "a":"",

    "b":"",

    "c":"",

    "d":""

}

 

第二部分  关于java的servlet    的取参

HttpServletRequest request

针对

1.application/application/x-www-form-urlencoded 的url参数 2.body参数 3.application/json的url参数

推荐方式:

request.getParam("前端参数名")

 

针对

application/json  body参数

BufferedReader streamReader = new BufferedReader( new InputStreamReader(request.getInputStream(), "UTF-8"));  

StringBuilder responseStrBuilder = new StringBuilder();  

String inputStr;  

while ((inputStr = streamReader.readLine()) != null)  

           responseStrBuilder.append(inputStr);  

 

最终responseStrBuilder里面就取到所有参数的json字符串,最后自己百度一下怎么把StringBuilderjson串转化为JsonObject

 

第三部分 关于spring的注解接受参数

1.@requestParam  只能接收到1.application/application/x-www-form-urlencoded 的url参数 2.body参数 3.application/json的url参数

这里提供一个requestParam接受庞大前端参数的解决方案,就是让前端将参数转成json字符串,包在一个key里面传过来,这样后台能取到json字符串,想转map或是model都很方便了,不然后台接口方法的参数太多了,很不友好

 

2.@requestBody  用于接收application/json 的body参数

A.可以用@requestBody Map<String,Object> map来接收,然后在通过map的key去取想要的参数

B.@requestBody Model model来接收 Model为自己定义的实体类,要注意前端body体里的参数要与Model字段一致

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值