有没有办法通过JSP/Servlet的原始订单获取POST参数?
问题描述:
<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请求:有没有办法通过JSP/Servlet的原始订单获取POST参数?
Enumeration e = request.getParameterNames();
while(e.hasMoreElements()){
out.println(e.nextElement());
}
这是包含在未指定的顺序
是否有一种方式来获得从POST请求原文soruce参数名的Enumeration
?
我想通过原始顺序的参数是这样的(如Chrome开发者工具表现):
d=3&e=5&c=1&a=4&b=2
BTW:我想request.getQueryString()
刚刚从URL返回查询(GET方法),无法得到任何来自POST方法的参数。
答
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());
答
通过使用java script
您形成一个可见的,将按顺序保持您的参数,如果你想通过逗号分隔出来。然后将这些参数传递给您的控制器。这种方法让你可以依次获得值。
答
关于提交表单,您可以在JavaScript中调用一些函数。此功能将从用户输入的页面读取数据。您可以创建发布请求并按要求的顺序传递此参数。
谢谢,我试图从'request.getInputStream获得数据()',但什么都没有这个,只是空流。也许它已经被“ServletRequest”解析了? – Koerr 2015-03-31 08:13:36
在尝试读取请求之前,请确保您的Web框架未读取请求输入流。您是使用任何Web框架还是仅使用servlet? – Daniel 2015-03-31 08:25:19
不,只要在JSP中读取它,我会尝试处理Servlet中的request.getInputStream()'? – Koerr 2015-03-31 08:31:24