我的网址中有3个参数。我用它们编码了它们
http://localhost/myPage.jsp%3Fparam1%3Daction%26param2%3D3%26param3%3Dhi
带编码参数的我的网址如下所示
pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"
我在jsp页面中指定了request.setCharacterEncoding("UTF-8")
,并在使用request.getParameter("param1")
获取参数值之前设置了null
。
我仍然只得到第一个参数的价值,即param1。对于其他参数,我得到URLEncoder.encode(myEncodedUrl,"UTF-8")
但如果我进行双重编码(使用&
),我可以得到所有三个参数的值。我想双重编码不是正确的方法。
如果我将%2526
替换为%26
而不是&
(实际编码值为\w*[a-z]\w*(\.\w*[a-z]\w*)+
),我将获得所有3个参数的值。我猜它也不正确。
请先让我知道我遗失的内容。
答案 0 :(得分:1)
您的网址编码错误,您不应对整个网址进行编码:
?param1=action¶m2=3¶m3=hi
您应该只编码参数的值:'action','3'(如果它不是整数)和'hi'。
也许这个链接可以帮到你。 Java URL encoding of query string parameters