<form method="post" action="?">
<input type="text" name="d" value="3">
<input type="text" name="e" value="5">
<input type="text" name="c" value="1">
<input type="text" name="a" value="4">
<input type="text" name="b" value="2">
<input type="submit">
</form>
按以下方式处理POST请求:
Enumeration e = request.getParameterNames();
while(e.hasMoreElements()){
out.println(e.nextElement());
}
这是一个Enumeration
,其中包含未指定顺序
有没有办法从POST请求中获取原始文本?
我希望按原始订单获取参数(如Chrome Developer Tools所示):
d=3&e=5&c=1&a=4&b=2
btw:我试过request.getQueryString()
只是从URL返回查询(GET方法),无法从POST方法中获取任何参数。
答案 0 :(得分:1)
ServletRequest.getInputStream()返回原始输入流,但您需要使用正确的字符编码来构建帖子主体。 e.g,
r = new BufferedReader(new InputStreamReader(request.getInputStream(), "utf8"));
StringBuilder sb = new StringBuilder();
String line;
while ( (line = r.readLine()) != null) sb.append(line);
System.out.println(sb.toString());
答案 1 :(得分:0)
您可以自己解析网址。只需确保将结果存储在具有可预测迭代顺序的集合中(例如,LinkedHashMap)。
答案 2 :(得分:0)
如果你想用逗号将它分开,那么使用java script
形成一个可以按顺序保存参数的veriable。然后将这些参数传递给您的控制器。这种方法可以帮助您按顺序获取值。
答案 3 :(得分:0)
在提交表单时,您可以在javascript中调用某些功能。现在,此功能将从用户输入的页面读取数据。您可以创建发布请求并按要求的顺序传递此参数。