我在Tomcat 6運行的servlet,其應該被稱爲如下:Tomcat:可能解析包含'&'的網址參數?
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"
。我嘗試用&
代替'&',但這不起作用(大概是因爲在PARAMS解析出之前它被解碼爲直接「&」)。
謝謝。
1爲 '%26' 的建議。顯然你不應該使用URLEncoder來編碼URL:http://stackoverflow.com/questions/4571346/how-to-encode-url-to-avoid-special-characters-in-java。 – sfinnie
做了'%26'的幫助嗎? – avrono
是的 - 謝謝:取代'%26'的作品。 – sfinnie