2011-10-25 3 views
9

다른 사람이 작성한 J2EE 프로젝트가 발생했습니다. web.xml으로 가면 동일한 URL 패턴에 매핑 된 두 개의 서로 다른 서블릿이 있습니다. 이 방법의 목적이 궁금합니다. 그게 정확히 어떻게 작동하고 푸시는 무엇입니까? 여기 동일한 URL 패턴에 매핑 된 두 개의 다른 서블릿이 있음

web.xml의 관련 부분입니다 :

<servlet> 
    <servlet-name>fileDownload</servlet-name> 
    <servlet-class>com.htsoft.core.web.servlet.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownload</servlet-name> 
    <url-pattern>/file-download</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>fileDownLoad</servlet-name> 
    <servlet-class>com.kaiwii.oa.action.system.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownLoad</servlet-name> 
    <url-pattern>/file-downLoad</url-pattern> 
</servlet-mapping> 
+0

xml 부분을 붙여 넣는 것이 좋습니다. – hellectronic

+0

나는 아직 web.xml 콘텐츠를 이미 게시했다. –

+3

이들은 동일하지 않습니다. 서블릿 스펙은 패턴 일치가 대소 문자를 구분한다는 것을 나타냅니다. –

답변

11

가 하나의 서블릿이 호출되는 것입니다; 두 개의 서블릿으로 하나의 요청을 처리하는 메커니즘을 알지 못합니다.

서블릿 URL 패턴이 겹칠 수 있지만 정확하게 동일한 URL을 가진 두 개가 의미가 없습니다. 서블릿 스펙이 명시 적으로 인 경우을 허용하지 않는다는 것을 기억하지 못합니다. 그러나 일치는 첫 번째 일치에서 중지됩니다. 일치하는 메소드는 스펙에 정의됩니다.

Servlet 2.4 spec PDF 85+

+0

사양은 URL 패턴이 발생 순서대로 테스트되어야한다는 점에서 매우 분명하다. 따라서 가장 긴 일치가 처음으로 유지된다. SRV 2.5. – EJP

+0

@ EJP 필자는 매핑 사양 부분에서 그랬다고 생각했습니다. –

+0

내 의견을 수정했지만 필터 매핑과 보안 제약을 설명하는 부분은 web.xml 순서에 대해 명시 적입니다. 에 대해 설명하는 # 11.1은 그렇지 않습니다. – EJP

관련 문제