java 获取request中的请求参数代码详解
程序员文章站
2024-02-23 14:23:28
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中的请求参数的代码详解,希望对大家有所帮助
上一篇: Java编程实现逆波兰表达式代码示例