2013-02-26 64 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,因爲它解碼參數的值!