Tomcat:可以解析包含'&'的URL参数吗?

时间:2013-09-27 16:58:36

标签: java servlets tomcat6

我有一个在tomcat 6上运行的servlet,应按如下方式调用:

http://<server>/Address/Details?summary="Acme & co"

但是:当我遍历servlet代码中的参数时:

//...
while (paramNames.hasMoreElements()) {
    paramName = (String) paramNames.nextElement();
    if (paramName.equals("summary")) {
        summary = request.getParameter(paramName).toString();
    }
}
//...

summary的值为"Acme "

我假设tomcat忽略了引号 - 所以它将"& co"视为第二个参数(尽管形成不正确:没有=...)。

所以:有什么方法可以避免这种情况吗?我希望summary的值为"Acme & co"。我试过更换'&amp;'在&amp;的网址中,但不起作用(可能是因为它在解析参数之前被解码回直接'&amp;'。)

感谢。

3 个答案:

答案 0 :(得分:1)

您是否使用URLEncode对URL进行编码和解码?如果是这样,你能检查一下它们的输入和输出是什么吗?似乎其中一个特殊字符未正确编码/解码

%26

尝试&

答案 1 :(得分:1)

使用http://<server>/Address/Details?summary="Acme %26 co"。因为在URL中,特殊的http符号(例如,&amp;,/,//)不能用作参数。

答案 2 :(得分:1)