欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-21 09:55:16
1、get 和 post请求方式  (1)request.getparameternames(); 获取所有参数key后。遍历request.getparame...

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中的请求参数的代码详解,希望对大家有所帮助