为什么HttpServletRequest#getParameterValues(“key”)将分号识别为分隔符?

问题描述:

我很难过。我认为&;是查询参数的有效分隔符。为什么HttpServletRequest#getParameterValues(“key”)将分号识别为分隔符?

看来,Tomcat的7 HttpServletRequest.getParameterValues("key")不会承认我的参数时,它是这样的:

http://acme.com/my.jsp?x=1;y=2;z=3 

如果我去这里,有分号提到:

http://en.wikipedia.org/wiki/Query_string

有没有办法强制tomcat 7在这个方法中识别它们?还是有更好的方法来使用?

谢谢。

+0

您是否从HTML内部发送该URL,并且在'

...
'之外发送该URL? – EJP 2014-10-02 22:17:36
+0

链接到相关w3.org“性能,实现和设计说明”,[B.2.2 URI属性值中的&符号](http://www.w3.org/TR/1999/REC-html401-19991224/appendix/) notes.html#hB.2.2) – 2014-10-02 22:22:08

+0

先前在这里回答的排序 - http://stackoverflow.com/a/7287629/775715 – 2014-10-02 22:33:17

对于关闭,这是错误报告概述了为什么Tomcat的7不查询参数中识别分号作为分隔符

https://issues.apache.org/bugzilla/show_bug.cgi?id=39740

它被标记为之前的最后注释“不会解决“是,这可以通过实施自定义过滤器来解决。这当然是真的。

感谢大家谁回答。