2011-08-23 5 views
0

# 문자가 있고, 내 매개 변수는 #까지만있는 요청 문자열을 얻으려고합니다. 하지만이 캐릭터를 가지고 있어야하고, 제거 할 수 없다는 점이 다릅니다.자바에서 쿼리 문자열에서 '#'문자로 매개 변수 가져 오기

아이디어가 있으십니까?

+0

사용은 '#'프래그먼트 식별자이다. 쿼리 문자열에서 매개 변수의 일부인 경우 먼저 쿼리 문자열을 인코딩해야합니다. 프래그먼트를 얻으 려한다면, 사용하는 래퍼가 쿼리 문자열을 가져 오는 것과 비슷한 방식으로 수행 할 수 있다고 확신합니다. –

답변

5

Encode # 있어야합니다. 리터럴 #은 fragment id을 나타내며 다른 용도로는 URI에서 사용할 수 없습니다. w3schools에는 encoding tables이 있으므로 값을 직접 확인할 수도 있습니다.

+0

올바르게 작동합니다. ** URLEncode ** 및 ** URLDecode **. 나는 그것을 생성하는 시스템의 부분이 가능한 한 가장 일반적인 것으로 가정되고 모든 데이터가 URL이 아니기 때문에 그것을 사용하고 싶지 않았다. 그러나 모든 데이터를 인코딩하는 데는 문제가 없습니다. 감사 – banduk

1

매개 변수 값을 올바르게 인코딩해야합니다. 당신이 바로 자바를 사용하는 경우

<c:url value="/path/to/myServlet"> 
    <c:param name="param1" value="#paramValue"/> 
</c:url> 

, URLEncoder.encode()를 사용 : URL이 JSP에 의해 생성 된 경우

의 JSTL c:url 태그를 사용해야합니다.

URL이 정적이면

%23paramValue 대신 #paramValue

관련 문제