2013-05-11 3 views
12

/ev/* url-pattern으로 매핑 된 EmailVerification 서블릿이 있습니다.서블릿 내부 요청 URL 요청하기

http://example.com/ev/ce52320570 
내 서블릿의 URL이 ce52320570 부분을 얻을 수있는 방법

?

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
                throws ServletException, IOException { 
     String vid = ""; // Here I need to get the id from the URL 
} 
+0

당신이 원하는 경우 request.getRequestURI().replace("/ev/"); * 경로 매개 변수는'HttpServletRequest' 방법을 내놓고, 자신에 그들을 처리해야합니다 *. * 쿼리 매개 변수로 대체 할 수 있다면 * 모든 것이 더 쉬울 것입니다. – skuntsel

+0

슬래시를 포함하지 않고 마지막 부분 만 반환하는 동안 답변을 게시했습니다. –

+0

@acdcjunior URL을 'http://xyz.com/ev/ce52320570'과 같이 처리해야합니다. /'- _ 끝에 여분의'/'가 있습니다. 그것은 물건을 나누고 바꾸기위한 약간의 여분의 작업을 본다. 이것에 대한 더 좋은 방법이 있습니까? – JAVAGeek

답변

28

/ev/*에 매핑 (EmailVerification라고 함) 서블릿 고려 :

을 윌 EmailVerification 서블릿의 URL http://example.com/ev/ce52320570 트리거?

예. 서블릿 버전 2.5와 3.0 (어쩌면 이전 버전)에서는 *으로 매핑하면 서브 경로를 얻게됩니다 (예 : /ev/*).

나는 URL http://example.com/ev/ce52320570ce52320570 부분을 얻을 수있는 방법

?

  • request.getRequestURI()/ev/ce52320570처럼 String 당신에게 요청 된 URL을 얻을 것이다.

  • request.getPathInfo()은 (존재하는 경우) /ev/ 이후의 모든 것을 가져옵니다.

    • 그래서 /ev/123에 요청, getPathInfo() 당신에게 /123을 줄 것입니다. 같은 방식으로 /ev/some/other, getPathInfo()에 대한 요청은 /some/other이됩니다. 당신이 쿼리는 URL의 일부 매개 변수가 필요한 경우

  • request.getQueryString()

    사용해야합니다.

    • 모두 getRequestURI()getPathInfo()경로을 요청하면 를 제공 명심하십시오. 쿼리 매개 변수을 가져와야하는 경우, 즉 /ev/something?query1=value1&other=123과 같이 ? 뒤에있는 경우 만 query1=value1&other=123 부분을 반환합니다.
  • request.getParameter(parameterName) 당신이 특정 쿼리 매개 변수의 값을 필요로하는 경우..getParameterValues()

    • 리조트는 다중 파라미터를 요청 here의 URL 부품

더 경우 예시.

+0

은 id를 얻기 위해 마지막 /'/'/ ev/ce52320570'을 분리하는 것 이외의 옵션입니다 – JAVAGeek

+0

예,'request.getPathInfo()'는'/ ev /'뒤에 모든 것을 얻습니다. – acdcjunior

+2

@acdcjunior 마지막 ​​부분에서'request.getParameter (paramName)'은'requedt.getQueryString()'보다 더 적용 가능하다. 왜냐하면 한번에 보낸 값을 얻을 수 있기 때문이다. – skuntsel

0

사용 request.getRequestURI() 필요하지 않은 것을 제거, 즉