2013-02-26 78 views
4

假设
URL多个参数的URL的完整路径:HTTP:/本地主机:9090/PROJECT1/url.jsp ID1 =一个& ID2 =两个& ID3 =三个如何让包括JSP

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

有了这个,我得到的输出 的http:/本地主机:9090/PROJECT1/url.jsp ID1 =一个

但这个我能牛逼? Ø仅检索第一个参数(即ID1 =之一)没有其他参数


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

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

HTML:

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

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

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

在此先感谢

回答

4

我认为这是你在找什么..

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 
+0

一切是正确的,只是与符号加在最后海峡印刷 – lata 2013-02-26 05:14:01

+0

@lata我已经更新了我的代码,我已经测试,它的工作对我来说 – Bhushan 2013-02-26 05:56:39

+0

thankx很多:) – lata 2013-02-26 09:25:00

6

给定的URL = HTTP:/本地主机:9090/PROJECT1/url.jsp ID1 =一个& ID2 =两个& ID3 =三个

request.getQueryString(); 

确实应该返回ID1 =一个& ID2 =两个& ID3 =三个

HttpServletRequest.getQueryString JavaDoc

我曾经面临同样的问题,这可能是由于一些测试过程失败。 如果碰巧的是,测试在一个明确的环境下,新的浏览器窗口,等

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