今天才知道原來HttpServletRequest.getParameters()對于空格的處理是這樣的!

url: xxx?p=a+b
request.getParameters("p"): a b(a與b中間是空格)

url: xxx?p=a b(a與b中間是空格)
request.getParameters("p"): a b(a與b中間是空格)

url: xxx?p=a%20b
request.getParameters("p"): a b(a與b中間是空格)

url: xxx?p=a%2Bb
request.getParameters("p"): a+b

直接用Get請求的時候,如果參數中有+號或者空格一定要看看是不是應該先encode一下。如果是空格用javascript的escape()就能encode,如果是+號就得自己轉了。