2012-02-25 9 views
0

나는 다음과 같은 URL 패턴을 (* * *의 .any_pattern 대.) :서블릿 매핑

내가 URL 패턴의 예에서 하나 개 이상의 패턴이있는 경우
<servlet-mapping> 
     <servlet-name>name_of_a_servlet</servlet-name> 
     <url-pattern>*.some_pattern</url-pattern> 
    </servlet-mapping> 

: *.htm, *.css, *.do 등 , URL 패턴에 *.*을 사용할 수 있습니까? 또는 나는 이것 같이 사용해야한다;

<url-pattern>*.htm</url-pattern> 
<url-pattern>*.css</url-pattern> 
<url-pattern>*.do</url-pattern> 

답변

2

*.*은 유효한 URL 패턴이 아닙니다. *은 시작 부분에 또는 패턴 끝 부분에서만 가능합니다. 을 모두 HTTP 요청으로 처리하려면 /*을 사용해야합니다.

<servlet-mapping> 
    <servlet-name>name_of_a_servlet</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

서블릿이 filter 일 수는 없는지 궁금합니다.

0

의 URL 매핑 구문은이 정보에 대한 서블릿 API 스펙 (I 2.4을 참조하고 있습니다)에 정의되어

에 '/'문자로 시작하고 '/ *'접미사로 끝나는 문자열 경로 매핑에 이 사용됩니다. '*.'로 시작하는 문자열. 접두사는 확장 매핑으로 사용됩니다. '/'문자 만 포함 된 문자열은 응용 프로그램의 "기본"서블릿을 나타냅니다. 이 경우 서블릿 경로는 요청 URI에서 컨텍스트 경로를 뺀 경로 정보는 null입니다.
다른 모든 문자열은 정확한 일치 에만 사용됩니다.

짧은 답변은 url 패턴이 단일 URL 패턴임을 의미합니다. 세 패턴을 독점적으로 일치시키기 위해 여러 패턴을 만들어야합니다.

+0


및 패턴 사양은 영업 이익의 아닌 서블릿 2.4 스펙 – gorjusborg

+1

섹션 11.2에 정의되어있다 문제. 하나의''내에 여러 개의 ''항목을 가질 수 있습니다. OP의 구체적인 질문은 오직 하나만 갖는 것입니다. OP의 '*. *'사용 시도가 실패한 것 같습니다. 그래서 그가 여기에 물었습니다. – BalusC

+0

죄송합니다. 질문을 잘못 읽었습니다. – gorjusborg

-1

<url-pattern>*.some_pattern</url-pattern>

<url-pattern>/*.some_pattern</url-pattern> // 경로 앞에 슬래시이어야한다

또는 -pattern>/path-pattern</url-pattern>

+1

스택 오버플로에 오신 것을 환영합니다 .-) [대답] – JimHawkins

관련 문제