我正在尝试将变量从一个jsp页面传递到另一个jsp页面,我正在通过
检索它s=request.getParameter("itemId");
我传递的变量的值是:
<CAAD0KRhXaJ5FAuOxR760HBzgaD-_JyXoVAymeQf+nQdCawEgGA@mail.gmail.com>
当我通过我的页面地址时,lokks喜欢这样:
http://localhost:8080/Mazil-1.1.0/jsp/final.jsp?itemId=<CCAAD0KRhXaJ5FAuOxR760HBzgaD-_JyXoVAymeQf+nQdCawEgGA@mail.gmail.com>
但是当我在final.jsp上打印这个值时,它会打印:
<CAAD0KRhXaJ5FAuOxR760HBzgaD-_JyXoVAymeQf nQdCawEgGA@mail.gmail.com>
取代&#39; +&#39;按空格。我不知道为什么会这样做以及如何纠正它?
答案 0 :(得分:1)
我建议你这样使用它:
String encodedItemId = URLEncoder.encode("<CAAD0KRhXaJ5FAuOxR760HBzgaD-_JyXoVAymeQf+nQdCawEgGA@mail.gmail.com>","UTF-8");
然后将网址提交为:
http://localhost:8080/Mazil-1.1.0/jsp/final.jsp?itemId=encodedItemId
然后检索实际的项目ID,如下所示:
String decodedItemId = URLEncoder.encode(request.getParameter(itemId));
答案 1 :(得分:0)
在发送网址之前,您可以使用%2B
替换加号。
你也可以把它作为一个属性放在像这样的请求中
发件人jsp中的 request.setAttribute("itemId","<CAAD0KRhXaJ5FAuOxR760HBzgaD-_JyXoVAymeQf+nQdCawEgGA@mail.gmail.com>");
。
使用request.setAttribute("itemId");
答案 2 :(得分:0)
将您的值放入会话中,然后在需要时检索它。建议不要使用网址。
答案 3 :(得分:0)
指定的参数名称和值应保留为未编码 页面作者。 JSP容器必须对参数名称和值进行编码 必要时使用请求对象中的字符编码。对于 例如,如果容器选择将参数附加到URL中的URL dispatchedrequest,boththenamesandvaluesmustbeencodedasperthecontent 在HTML规范中使用typeapplication / x-www-form-urlencoded。