有没有办法从 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>

通过以下方式处理开机自检请求:

Enumeration e = request.getParameterNames();
while(e.hasMoreElements()){
    out.println(e.nextElement());
}

这是一个以未指定顺序包含参数名称的Enumeration

有没有办法从 POST 请求中获取原始文本?

我想按原始顺序获取参数,如下所示(如Chrome开发人员工具所示(:

d=3&e=5&c=1&a=4&b=2

顺便说一句:我尝试只从 URL(GET 方法(返回查询request.getQueryString()无法从 POST 方法获取任何参数。

ServletRequest.getInputStream(( 返回原始输入流,但您需要使用正确的字符编码来构建帖子正文。

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());

您可以自己解析 URL。只需确保将结果存储在具有可预测迭代顺序的集合中(例如,LinkedHashMap(。

通过使用java script,您可以形成一个可验证的参数,如果要用逗号将其分隔开,则可以按顺序保存参数。 然后将这些参数传递给控制器。此方法为您提供了按顺序获取值的灵活性。

在提交表单时,您可以在javascript中调用某些函数。现在,此函数将从用户输入的页面读取数据。您可以创建 post 请求并按所需顺序传递此参数。

最新更新