2011-02-02 2 views

답변

0
String url = request.getRequestURL().toString(); 
if(url.indexOf("?")== -1){//it doesn't} 
+1

는 심지어'url.endsWith ("?") ' –

+1

@Johan 또는'포함,' –

+0

* "'대해 getRequestURL()'("? ") : 는 URL 요청을하는데 사용되는 클라이언트를 재 구축합니다. 반환 된 URL은 ...을 포함하지만 ** 쿼리 문자열 매개 변수 **는 포함되지 않습니다. "* [API 문서] 참조 (http://download.oracle.com/javaee/1.4/api/javax/servlet/ http/HttpServletRequest.html # getRequestURL()) –

0

이런 일에 대해 어떻게 : -

boolean hasTrailingQuestionMark = "GET".equals(request.getMethod()) && request.getParameterNames().hasMoreElements(); 

내가 틀릴 수도 있지만, 요청이 GET이고이 매개 변수가 있다면, 나는 우리가 안전하게 가정 할 수 있다고 생각 후행 질문이 있습니다 URI 다음에 표시하십시오.

UPDATE

난 그냥 코드를 테스트,이 방법은 매개 변수가있는 경우에만 작동합니다 http://server/bla?param=1. 그러나 http://server/bla? 만 있으면이 조건은 실패합니다. 나는 당신이 후자의 URL 서명을 포착하려고하는지 모르겠습니다.

+0

죄송합니다. 물음표가있는 경우에도 false를 반환합니다. 그래도 좋은 생각. –

+0

물음표 뒤에 다음과 같은 매개 변수가 있습니까 : 'http : // server/bla? param = 1'? 매개 변수없이, 다음과 같이 : http : // server/bla? – limc

+0

매개 변수가 없습니다. 전체 URL에서 유일한 물음표가되는 후행 물음표가있는 경우이를 감지하려고합니다. –

관련 문제