请求Servlet容器中的参数顺序

时间:2012-03-21 22:28:55

标签: java servlets

显然,请求参数的顺序不会保留在Tomcat servlet容器中(每个google似乎其他容器共享相同的问题)。

这似乎非常错误。

如何从HttpServletRequest恢复请求参数的实际顺序?

修改 对于那些认为请求参数顺序无关紧要的人来说,BTW之间存在差异:

http://blah?a=1&a=2

http://blah?a=2&a=1

因此,顺序对重复的请求参数很重要(幸运的是Java确实处理了这个问题)。

2 个答案:

答案 0 :(得分:3)

通常你不应该依赖参数的顺序。如果您确定这是必要的,您可以:

  • 使用request.getQueryString()查看GET参数
  • 获取原始请求(request.getInputStream())并阅读提交的POST参数。

答案 1 :(得分:0)

您可能可以使用getRequestURL:http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getRequestURL()并从那里解析参数。

但是,回复你的评论“这似乎非常错误。”,我认为你应该重新考虑你的立场。

订购您的参数根本没有意义。让我们说 - 例如 - 你要求根据参数列出汽车。如果您要求绿色福特列表或绿色汽车列表是无关紧要的。