当前位置: 首页 > 面试题库 >

HttpServletRequest.getParameterValues()中值的排序

益英逸
2023-03-14
问题内容

HttpServletRequest.getParameterValues()返回一个String[]包含给定HTTP请求参数的所有值的。有人知道规范中是否保证此数组中值的顺序与请求中这些值的传递顺序相同?

例如,如果我有GET查询字符串x=1&x=2&x=3,那么我 保证String[] {"1", "2", "3"}在致电时会收到getParameterValues()吗?它似乎在实践中可行,但是我找不到任何可以说明这种情况的东西,因此我不愿意依靠它。


问题答案:

ServletRequest的javadoc(v2.5
javadoc
)没有提及有关该方法的值顺序的任何内容。因此,我不会依赖保留的顺序。

更新:还检查了规范文档中的2.5,其中包含与getParameterValues()有关的以下信息。它没有提及有关查询字符串排序的任何内容,因此我认为您所看到的行为是实现细节,而不是定义为接口的一部分。

参数存储为一组名称/值对。对于任何给定的参数名称,可以存在多个参数值。ServletRequest接口的以下方法可用于访问参数:

  • getParameter
  • getParameterNames
  • getParameterValues
  • getParameterMap

getParameterValues方法返回一个String对象数组,其中包含与参数名称关联的所有参数值。从getParameter方法返回的值必须是getParameterValues返回的String对象数组中的第一个值。getParameterMap方法返回请求参数的java.util.Map,该名称包含名称(作为键)和参数值(作为映射值)。

为了将来参考,可以从Sun(即Oracle的网站)下载Java
Servlet规范。您可以在此处再次检查您感兴趣的特定servlet版本。



 类似资料:
  • 问题内容: 我正在尝试对集合中的元素进行排序,但到目前为止无法完成。这是我正在尝试执行的代码 但是这种方式或其他方式一直无法正常工作,因为它一直给我相同的填充顺序12,15,5 问题答案: 如果排序的字符串,并且然后是最后因为> 。即字符串的自然排序不符合您的期望。 如果要将字符串存储在列表中,但按数字对其进行排序,则需要使用处理该字符串的比较器。例如 另外,我认为您在类型之间略有混淆。A 和A

  • 问题内容: 我在PostgreSQL 8.3中有一个简单的SQL查询,它可以获取大量注释。我在子句中为构造提供了一个 排序 的值列表: 这会以任意顺序返回评论,而在我看来,这些评论恰好是ID 。 我希望结果行的排序类似于构造中的列表:。 如何实现呢? 问题答案: 您可以很容易地使用PostgreSQL(在PostgreSQL 8.2中引入)VALUES(),()。 语法如下:

  • 问题内容: 它有点难以解释。跳到示例可能会更容易。 一个表有一个ID和四列,每列允许为空。 有x行数。(通常小于4)并且在整个列中最多只能使用4个不同的值。 我希望返回最多4行,其中结果集中的每一行基本上都是一列值,其中该值是从顶部保留Col编号开始从右向左选择的。如果另一行的值不是列唯一,则将其移至下一个可用列。 例子: 如果我有: 我想回来 和 给 和 给 谢谢!当存在非唯一列并且值之间存在空

  • 问题内容: 示例: File.txt的内容: 当使用’sort -k 1,1 File.txt’时,行的顺序不会改变,尽管我们期望: 如何根据绝对 数值 对包含数字的字段进行排序? 问题答案: 看看手册页进行排序 … 所以这是一个例子…

  • 问题内容: 我正在尝试通过其score属性的值(是double值)对自定义类染色体进行排序。这些染色体存储在ArrayList中。我知道我必须使用比较器,但是在过去的一个小时里我已经在线阅读了很多不同的观点,这使我感到非常困惑。 附上我的代码,如果有人可以指出正确的方向,我将不胜感激。 不知道这有什么区别,但是分数只能是0.0到1.0之间(包括0.0到1.0)的两倍 问题答案: 要使用: 如果您打

  • 问题内容: 我想知道是否有按IN()子句中的值顺序进行排序的方法(可能是一种更好的方法)。 问题是我有2个查询,一个查询获取所有ID,第二个查询获取所有信息。第一个创建我要第二个排序的ID的顺序。这些ID以正确的顺序放入IN()子句中。 因此,它类似于(极其简化): 问题在于第二个查询不会以将ID放入IN()子句中的顺序来返回结果。 我发现的一种解决方案是将所有ID放入具有自动递增字段的临时表中,