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

Servlet容器中的请求参数顺序

章远航
2023-03-14
问题内容

显然,请求参数的顺序未保留在Tomcat Servlet容器中(对于Google,似乎其他容器也存在相同的问题)。

这似乎是非常错误的。

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

*对于那些认为请求参数顺序无关紧要的人来说, *编辑 BTW之间是有区别的:

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

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

因此,顺序对于重复的请求参数确实很重要(幸运的是Java确实处理了此权利)。


问题答案:

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

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


 类似资料:
  • 问题内容: 现有的Web应用程序正在Tomcat 4.1上运行。页面存在XSS问题,但是我无法修改源代码。我决定编写一个servlet过滤器以在页面看到参数之前对其进行清理。 我想这样编写一个Filter类: 但是ServletRequest.setParameter不存在。 在将请求向下传递之前,如何更改请求参数的值? 问题答案: 如前所述,没有setParameter方法。这是故意的,因为该类

  • 我正在使用JSF2.2,并配置了servlet过滤器。过滤器中工作的部分代码: 如果我添加第二个param-常规请求可以工作(发生重定向并看到两个param),但AJAX请求不能工作(没有重定向,什么也不发生)。以下是Firebug报告: 这是如何造成的,我们如何在filter中为AJAX调用设置多个参数?

  • 可以在模板中直接使用$Request对象,直接输入它的属性或调用它的大部分方法,但只支持方法的第一个参数; // 调用Request对象的get方法 传入参数为id {$Request.get.id} // 调用Request对象的param方法 传入参数为name {$Request.param.name} // 调用Request对象的param方法 传入参数为post.post_title

  • 可以在模板中直接使用$Request对象,直接输入它的属性或调用它的大部分方法,但只支持方法的第一个参数; // 调用Request对象的get方法 传入参数为id {$Request.get.id} // 调用Request对象的param方法 传入参数为name {$Request.param.name} // 调用Request对象的param方法 传入参数为post.post_title

  • 问题内容: 是否可以使用Java Servlet API解析此类请求中的字符串键? 返回数组中值的顺序不是键的顺序(无关紧要) 已解决:可能将键解释为简单的全局键字符串。Java无法将它们识别为数组。使用正则表达式 问题答案: 不直接。将在HTTP请求的参数没有特殊的含义,是由不被识别为数组键了Servlet API(你或许这的确有这个专有解析器PHP程序员?)。你需要分析和收集它 自己 在一个循

  • 我从jquery发送如下请求: 在servlet内部,我可以获得参数,但问题是参数包含序列化的表单数据:如下所示: 我知道我可以使用来获取数据,但我想确保--如果他们的方法简单与否?