getParameterMap()缺少getQueryString()中传递的参数

时间:2014-05-29 20:46:33

标签: java http tomcat servlets tcserver

我有一个java servlet应用程序,我们从WebSphere移植到TC Server并从java 2升级到java 7。

在测试中,我们发现以%符号(包括密码)结尾的参数正在丢失。

这是一个示例片段

https://xxx.xxx/servletname?userName=abcdefg&password=abcdefg&folderName=ABCDEFG&Cycle%20Date=05/16/14&Account%20Number=815010009023%

帐号不在参数地图中。

在研究期间,我发现了。

如果我首先查询请求对象,getQueryString()有我的参数,但是... getParameterMap()将其过滤掉。

因此,它适用于旧的WebSphere / Java 2版本,但不适用于TC Server / Java 7版本。

我尝试过的事情。

  request.setCharacterEncoding("utf-8") at the top of the doGet - no affect.
  <Connector ... URIEncoding="UTF-8" ... </Connector> in my server.xml - no affect.

1 个答案:

答案 0 :(得分:1)

像这样悬挂的百分比可能是非法的URL,因为它是一个不完整的字节。行为将是未定义的。