如何使用JSP从URL获取参数值

如何使用JSP从URL获取参数值,jsp,jakarta-ee,jsp-tags,Jsp,Jakarta Ee,Jsp Tags,我有一个像var=p+q+EvhE951eg/I5nz1vi/w2YpJdH+v/vSPaQNg/I= 我在urllike中传递这个参数 http://localhost/proj/home.jsp?var=P+q+EvhE951eg/I5nz1vi/w2YpJdH+v/vSPaQNg/I= 现在在home.jsp中,我想按原样使用var的这个值 stringvar=request.getParameter(“var”)变量获取值 “p q EvhE951eg/I5nz1vi/w2YpJdH v

我有一个像var=
p+q+EvhE951eg/I5nz1vi/w2YpJdH+v/vSPaQNg/I=

我在
url
like中传递这个参数

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

现在在home.jsp中,我想按原样使用var的这个值

stringvar=request.getParameter(“var”)变量获取值

“p q EvhE951eg/I5nz1vi/w2YpJdH v/vSPaQNg/I=“
注意它将
+
替换为
空格


有人能帮我解决这个问题吗。

尝试对参数进行如下编码:

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
“+”在Url中表示“空格”。您可以用%2B答复此问题

比如说

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

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

String urlContent = request.getQueryString();
您也可以通过request.getQueryString()来获取此信息-这里不需要替换查询字符串

String urlContent = request.getQueryString();

输出:var=p+q+EvhE951eg/I5nz1vi/w2YpJdH+v/vSPaQNg/I=

在发送之前,您需要对参数进行编码该参数已经编码。您的容器可能会在没有您的许可的情况下选择性地解码文本。您可能需要研究特定容器的编码配置。或者用+替换所有空格