2013-06-01 3 views
7

나는 둘서블릿 매핑은 슬래시

/server/abcDef/1432124/adfadfasdfa 

/server/abcDef/abcd/12345 

값 '1432124'과 'ABCD'를 일치하는 서블릿 패턴을지도하려고로 구분 고정되어 있지 않으며 수많은 가치가있을 수 있습니다. 따라서 기본적으로 /abcDef/*/*과 일치해야합니다. abcDef 만 수정됩니다.

지도를 표시 할 수있는 방법이 있습니까? 정말 내가 다음과 같은 뭔가를 찾고 있어요 :

<servlet-mapping> 
    <servlet-name>abcDefServlet</servlet-name> 
    <url-pattern>/server/abcDef/*/*</url-pattern> 
</servlet-mapping> 

답변

11

Servlet Specification에 따르면,로 끝나는 URL 패턴 "/ *"이전 경로에 대한 모든 요청을 일치합니다. 그래서, 당신은 그 일을 한 방법으로, 당신은 abcDefServlet에 도착하는 다음 URL를 입력해야 할 것 : 당신이 생각 할 수있는 일

http://myapp.com/server/abcDef/*/<wildcard> 

하나의 서블릿 매핑에 여러 URL 패턴을 추가 할 수 있습니다. 예를 들면 :

<servlet-mapping> 
    <servlet-name>abcDefServlet</servlet-name> 
    <url-pattern>/server/abcDef/1432124/*</url-pattern> 
    <url-pattern>/server/abcDef/abcd/*</url-pattern> 
</servlet-mapping> 

업데이트 : 1432124 이후

abcd 고정되어 있지 값 안전하게 다음 매핑을 추가 할 수 있습니다

<servlet-mapping> 
    <servlet-name>abcDefServlet</servlet-name> 
    <url-pattern>/server/abcDef/*</url-pattern> 
</servlet-mapping> 

을 그리고 어떤 값을 치료 서블릿 자체 내에 뒤에 나오는 메시지 H 다음 함수 :

req.getPathInfo() 
+0

미안 '1432124'및 'ABCD'는 고정되지 않고, 값이 다수있을 수 있다는 것을 언급한다. 그래서 본질적으로/abcDef/*/*와 일치해야합니다 - 단지 abcDef 만 고정되어 있습니다. 내 질문을 매우 명확하게 편집 할 것입니다. – Sai

+0

@ 사이 : Ok. 나는 지금뿐만 아니라 대답을 업데이 트했습니다. 그것을 확인하십시오. – Cassio

+2

** 업데이트 ** 부분이 올바른 부분입니다. +1 – informatik01