2014-07-03 42 views
0

我试图从一个jsp页面变量传递到另一个,我检索它通过在jsp中传递变量时出错?

s=request.getParameter("itemId"); 

可变我传递的价值:

<[email protected]om> 

当我通过我的网页地址lokks喜欢这样的:

http://localhost:8080/Mazil-1.1.0/jsp/final.jsp?itemId=<[email protected]com> 

但是,当我在final.jsp打印此值,它打印:

<CAAD0KRhXaJ5FAuOxR760HBzgaD-_JyXoVAymeQf [email protected]> 

它用空格替代'+'。我不知道它为什么这样做以及如何纠正它?

回答

1

我建议你使用这种方式:

String encodedItemId = URLEncoder.encode("<[email protected]om>","UTF-8"); 

,然后提交网址为:

http://localhost:8080/Mazil-1.1.0/jsp/final.jsp?itemId=encodedItemId 

然后检索实际项目标识做如下:

String decodedItemId = URLEncoder.encode(request.getParameter(itemId)); 
0

在发送URL之前,您可以用%2B替换加号。

你也可以把它作为一个属性,要求这样的

request.setAttribute("itemId","<[email protected]om>");在发件人JSP。

并获得使用request.setAttribute("itemId");

+0

是的,我总是可以做到这一点,但也必须有其他解决方案! – cooljohny

+0

然后在附加到URL之前用%2B替换加号.. –

+0

但是如果有像我将发送值的限制,如果标志= 0和b如果标志= 1,c如果标志= 2,那么在那种情况下我不能使用设置属性。 – cooljohny

0

把你的价值为会话和比检索它时,你需要接收器的jsp。不推荐使用它的网址。

0

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