it should ordered by query string then post form data. for example POST http://localhost:8080/test?a=a&b=b with form data "c=c&d=d&e=e" request.getParameterNames() should return ["a","b","c","d","e"]
Hi, There was already a report for a similar issue - Bug 55576. The fix is available in 8.0.0-RC4 and yesterday it was announced the availability of 8.0.0-RC6. I tried your scenario with the current trunk and the parameters are ordered. Please provide a reproducible scenario against trunk. Regards Violeta
wonderful,thanks very much,I have tested with 8.0.0-RC5,can you fix this in 7.0.x?
It is fixed in 7.0.x also. Currently we are voting 7.0.47 [1]. The fix is available in that version. Regards Violeta [1] http://markmail.org/message/yus4osg2bgaoekp6?q=7%2E0%2E47+list:org%2Eapache%2Etomcat%2Edev/ *** This bug has been marked as a duplicate of bug 55576 ***
The fix for bug #55576 might not entirely "fix" this enhancement as written. For example, in this case: /path/to/servlet?a=1&b=2&c=3&a=4 One might expect the return value of getParameterNames to be: [ a, b, c, a ] ...but it will instead be [ a, b, c ]. "Ordering" the parameter map has the same "problem", but there is absolutely nothing to be done about that AFAICT. I'm not suggesting that either of the above problems can be fixed... I just wanted to point-out the possible expectations users might have and how those expectations can't necessarily be met.
@Christopher Schultz, it should be [a, b, c],and request.getParameterValues("a") will be [1,4]