在jsp中传递变量时出错?

时间:2014-07-03 05:25:01

标签: java jsp tomcat parameters

我正在尝试将变量从一个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;按空格。我不知道为什么会这样做以及如何纠正它?

4 个答案:

答案 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");

进入接收器jsp

答案 2 :(得分:0)

将您的值放入会话中,然后在需要时检索它。建议不要使用网址。

答案 3 :(得分:0)

指定的参数名称和值应保留为未编码 页面作者。 JSP容器必须对参数名称和值进行编码 必要时使用请求对象中的字符编码。对于 例如,如果容器选择将参数附加到URL中的URL dispatchedrequest,boththenamesandvaluesmustbeencodedasperthecontent 在HTML规范中使用typeapplication / x-www-form-urlencoded。