2014-10-10 4 views
5

Mam wartość jak var = P+q+EvhE951eg/I5nz1vi/w2YpJdH+v/vSPaQNg/I=Jak zdobyć wartości parametrów, jak to jest z adresu URL z JSP

mijam ten parametr w url jak

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

Teraz w home.jsp ja aby skorzystać z tej wartości var gdyż is.But kiedy robię

String var=request.getParameter("var"); var uzyskać wartość

"P q EvhE951eg/I5nz1vi/w2YpJdH v/vSPaQNg/I=" Zawiadomienie o zastąpieniu + przez space.

Czy ktoś może mi pomóc rozwiązać ten problem.

+1

trzeba zakodować parametry przed wysłaniem go – Arvind

+0

Ten parametr jest już zakodowana –

+0

Twój pojemnik może być wybiórczo dekoduje tekst bez Twojej zgody. Możesz chcieć zbadać konfigurację kodowania dla konkretnego kontenera. lub po prostu zamień wszystkie spacje na + siebie – kolossus

Odpowiedz

0

kodowania Spróbuj params jak ten:

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); 
    } 
} 

wyjścia:

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

[tutaj] (http://ideone.com/2DEnBC) – Arvind

0

"+" oznacza "przestrzeń" w adresie URL. możesz zastąpić to% 2B.

Na przykład

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

Reference Link

jeśli jest tylko jeden parametr w zapytaniu.

można również uzyskać to przez request.getQueryString() - Tutaj nie trzeba zastępować ciąg zapytania.

String urlContent = request.getQueryString(); 

wyjściowa: var = P + q + EvhE951eg/I5nz1vi/w2YpJdH + v/vSPaQNg/I =

Powiązane problemy