2014-10-10 34 views
5

我有这样的VAR值的URL = P+q+EvhE951eg/I5nz1vi/w2YpJdH+v/vSPaQNg/I=如何获得的参数值,因为它是从JSP

我通过这个参数在url

http://localhost/proj/home.jsp?var=P+q+EvhE951eg/I5nz1vi/w2YpJdH+v/vSPaQNg/I=

现在回到Home.jsp我要使用VAR的这个价值,因为它is.But当我这样做

String var=request.getParameter("var"); VAR获得价值

"P q EvhE951eg/I5nz1vi/w2YpJdH v/vSPaQNg/I="注意它用space代替+

所以任何人都可以帮助我解决这个问题。

+1

您需要在发送 – Arvind 2014-10-10 04:34:39

+0

之前编码参数参数已经被编码 – 2014-10-10 04:37:10

+0

您的容器可能有选择地解码文本而不用说你的话。您可能想要研究特定容器的编码配置。或者只是用+自己替换所有空格 – kolossus 2014-10-10 17:22:45

回答

0

尝试编码PARAMS这样的:

class Ideone 
{ 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     String param = "P+q+EvhE951eg/I5nz1vi/w2YpJdH+v/vSPaQNg/I="; 
     System.out.printf("Orginal Param: %s\n", param); 
     param = java.net.URLEncoder.encode(param, "utf-8"); 
     System.out.printf("Encoded Param: %s\n", param); 
    } 
} 

输出:在地址

Orginal Param: P+q+EvhE951eg/I5nz1vi/w2YpJdH+v/vSPaQNg/I= 
Encoded Param: P%2Bq%2BEvhE951eg%2FI5nz1vi%2Fw2YpJdH%2Bv%2FvSPaQNg%2FI%3D 
+0

[demo here](http://ideone.com/2DEnBC) – Arvind 2014-10-10 04:44:40

0

“+” 是指 “空间”。你可以用%2B来代替它。

对于实施例

queryString = queryString.replace('+', '%2B'); 

Reference Link

如果只有一个在查询字符串参数。

你也可以通过request.getQueryString()得到这个 - 这里不需要替换查询字符串。

String urlContent = request.getQueryString(); 

输出:VAR = P + Q + EvhE951eg/I5nz1vi/w2YpJdH + V/vSPaQNg/I =

相关问题