2012-06-07 6 views
4

내가 좋아하는 시작하는 '&'sybol이있는 요청 매개 변수를 얻기 위해 노력하고 있어요 얻을 : - 나는 String value=request.getParameter("my"); value.substring(0,4);요청에 URL에서 매개 변수 및 심볼

처럼 받고 있어요 다른 페이지에서 http://localhost:8080/simple.jsp?my=&234587

& 234를 받고 싶습니다. 제발 내가 어떤 가치도 얻지 못했다고 제안하십시오.

감사합니다,이 예에서 아스

답변

4

당신은 하나가 아닌 두 개의 매개 변수가 있습니다

  1. 234

234 여기에 값이 아닙니다. &은 쿼리 매개 변수를 구분합니다. 앰퍼샌드가 my 값의 일부로 필요하면 URL에서 %26으로 이스케이프되어야합니다.

+0

고마워요. 그러나 제 3 자 도구에서 오는 URL을 수정할 수 없습니다. 즉, % 26에 '&'기호를 변경하면 주소 표시 줄에서 전체 URL을 가져올 수있는 코드가 생기므로 & % 26 수동으로 & opulation을 수행 하시겠습니까? – Ars

+0

타사 도구에서 가져온 것 같은 경우 버그를 신고하십시오. 그것은'my'의 값이 될 것이라면 ** 준수하지 않습니다 **입니다. –

+0

괜찮 았어 어떤 식 으로든 나는 앰퍼샌드 즉 234587 이후의 값만 가져올 수 있습니까 ??? – Ars

0

당신은 가장 가능성 URL에 '&'인코딩해야합니다 :

http://localhost:8080/simple.jsp?my=%26234587

+0

고마워요.하지만 제 3 자 도구에서 오는 URL을 수정하지 못했습니다. 즉, % 26에 '&'기호를 바꿀 수 없습니다. 주소 표시 줄에서 전체 URL을 가져올 수있는 코드가 있으므로 & 수동으로 대체 할 수 있습니다. % 26을 (를) 사용하고 opration을 수행 하시겠습니까? – Ars

0

만 Get 요청을 처리 할 수됩니다. 이런 식으로 쓸 수 있습니다. 내가 답을 발견 resonse에 대한

String requestURI=request.getRequestURI(); 
String pContent=requestURI.split("?")[1]; 
String[] pArray= pContent.split("&"); 
String value="";     
for (int i=0 ;i<pArray.length;i++) { 
    if(pArray[i].equals("my"+"=")){ 
    value="&" + pArray[i+1]; 
    break; 
    } 
} 
2

덕분에, 나는 적절하게 분석 한 후 전체 문자열 즉 & 234,587를 얻기 위해 request.getQueryString();을 사용합니다.

:)

다시 한 번 감사드립니다.