5

假设
网址http://localhost:9090/project1/url.jsp?id1=one&id2=two&id3=three

<%
String str=request.getRequestURL()+"?"+request.getQueryString();
System.out.println(str);
%>

有了这个我得到输出 http://localhost:9090/project1/url.jsp?id1=one

但有了这个我只能检索第一个参数(即 id1=one)而不是其他参数


但如果我使用 javascript 我能够检索所有参数

function a()
     {
        $('.result').html('current url is : '+window.location.href );
    }

html:

<div class="result"></div>

我想检索要在我的下一页中使用的当前 URL 值,但我不想使用会话

使用以上两种方法中的任何一种我如何检索jsp中的所有参数?

提前致谢

4

2 回答 2

7

给定 URL = http://localhost:9090/project1/url.jsp?id1=one&id2=two&id3=three

request.getQueryString();

确实应该返回 id1=one&id2=two&id3=three

请参阅HttpServletRequest.getQueryString JavaDoc

我曾经遇到过同样的问题,可能是由于某些测试程序失败。如果发生这种情况,请在清晰的环境中进行测试:新的浏览器窗口等。

Bhushan 答案不等同于 getQueryString,因为它解码参数值!

于 2014-03-21T15:11:57.647 回答
5

我想这就是你要找的..

String str=request.getRequestURL()+"?";
Enumeration<String> paramNames = request.getParameterNames();
while (paramNames.hasMoreElements())
{
    String paramName = paramNames.nextElement();
    String[] paramValues = request.getParameterValues(paramName);
    for (int i = 0; i < paramValues.length; i++) 
    {
        String paramValue = paramValues[i];
        str=str + paramName + "=" + paramValue;
    }
    str=str+"&";
}
System.out.println(str.substring(0,str.length()-1));    //remove the last character from String
于 2013-02-26T04:34:58.310 回答