java 获取request中的请求参数代码详解

 更新时间:2019年05月24日 11:21:21   作者:紫薇帝星的故事  
这篇文章主要介绍了java 获取request中的请求参数的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下

1、get 和 post请求方式

 (1)request.getParameterNames(); 获取所有参数key后。遍历request.getParameter(key)获取value

 (2)request.getParameterMap() 。直接包含参数key和value值,简单方便

Map<String, String[]>maps = request.getParameterMap();
for (Map.Entry<String, String[]> entry : maps.entrySet()) {
  String cs = entry.getKey() + ":"+Arrays.toString(entry.getValue())+";";
}

2、获取请求类型为request  payload方式

 这里就不介绍文件流的了,主要针对 后端采用@RequestBody方式的请求

这类数据通过以上2种方式是获取不到的,它是存放在流里面,要通过getInputStream()getReader()方式获取

public String getRequestData(HttpServletRequest httpServletRequest){
  HttpServletRequestWrapper httpServletRequestWrapper = new HttpServletRequestWrapper(httpServletRequest);
  StringBuilder sb = new StringBuilder();
  BufferedReader reader = null;
  InputStreamReader inputStreamReader=null;
  ServletInputStream servletInputStream =null;
  try {
   servletInputStream = httpServletRequestWrapper.getInputStream();
   inputStreamReader=new InputStreamReader (servletInputStream, Charset.forName("UTF-8"));
   reader = new BufferedReader(inputStreamReader);
   String line = "";
   while ((line = reader.readLine()) != null) {
    sb.append(line);
   }
  } catch (IOException e) {
   return "";
  }finally {
   try {
    if(servletInputStream!=null){
     servletInputStream.close();
    }
    if(inputStreamReader!=null){
     inputStreamReader.close();
    }
    if(reader!=null){
     reader.close();
    }
   } catch (IOException e) {
    
   }
  }
  return sb.toString ();
 }

需要注意的是getInputStream()这种获取流的方式  只能用一次,如果多次调用  需要缓存起来,不然流的数据到不了Controller层,报400错误

总结

以上所述是小编给大家介绍的java 获取request中的请求参数的代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • Java for循环标签跳转到指定位置的示例详解

    Java for循环标签跳转到指定位置的示例详解

    这篇文章主要介绍了Java for循环标签跳转到指定位置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 全面解析@InsertProvider执行原理

    全面解析@InsertProvider执行原理

    这篇文章主要介绍了全面解析@InsertProvider执行原理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Mybatis核心组成部分之SQL映射文件揭秘详解

    Mybatis核心组成部分之SQL映射文件揭秘详解

    MyBatis真正的力量是在映射语句中,下面这篇文章主要给大家介绍了关于Mybatis核心组成部分之SQL映射文件揭秘的相关资料,现在分享给大家,给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Java synchronized与CAS使用方式详解

    Java synchronized与CAS使用方式详解

    提到Java的知识点一定会有多线程,JDK版本不断的更迭很多新的概念和方法也都响应提出,但是多线程和线程安全一直是一个重要的关注点。比如说我们一入门就学习的synchronized怎么个实现和原理,还有总是被提到的CAS是啥,他和synchronized关系是啥?请往下看
    2023-01-01
  • JAVA自定义异常使用方法实例详解

    JAVA自定义异常使用方法实例详解

    这篇文章主要介绍了JAVA自定义异常使用方法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 解决springboot 无法配置多个静态路径的问题

    解决springboot 无法配置多个静态路径的问题

    这篇文章主要介绍了解决springboot 无法配置多个静态路径的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Mybatis分页的4种方式实例

    Mybatis分页的4种方式实例

    这篇文章主要介绍了Mybatis分页的4种方式实例,包括数组分页,sql分页,拦截器分页,RowBounds分页,需要的朋友可以参考下
    2022-04-04
  • SpringBoot监控SQL运行情况的流程步骤

    SpringBoot监控SQL运行情况的流程步骤

    Druid是Java语言中最好的数据库连接池,虽然 HikariCP 的速度稍快,但是,Druid能够提供强大的监控和扩展功能 ,也是阿里巴巴的开源项目,本文给大家介绍了SpringBoot监控SQL运行情况的流程步骤,需要的朋友可以参考下
    2024-03-03
  • SpringBoot+Querydsl 框架实现复杂查询解析

    SpringBoot+Querydsl 框架实现复杂查询解析

    本篇主要将介绍的是利用spring query dsl框架实现的服务端查询解析和实现介绍,对SpringBoot Querydsl 查询操作感兴趣的朋友一起看看吧
    2022-05-05
  • springMVC的生命周期详解

    springMVC的生命周期详解

    本篇文章主要介绍了springMVC的生命周期详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论