2011-09-16 5 views
6

url 패턴 "/*"으로 주 응용 프로그램을 제공해야하므로이 패턴이 Servlet과 일치합니다. 내가 겪고있는 문제는 현재 "/css/all.css", "/ images /"등에있는 모든 CSS 파일과 이미지가이 서블릿을 통해 바람직하지 않은 방식으로 이동하고 있다는 것입니다. 이 파일에 직접 액세스하려고합니다. 이 상황을 처리하는 더 좋은 방법은 무엇입니까?web.xml 또는 Guice 서블릿 모듈에서 특정 URL 패턴을 제외/리디렉션하는 방법은 무엇입니까?

참고 : Guice의 Servlet Module을 사용하여 패턴을 구성하고 있습니다.

감사합니다.

+0

[. 나는 생각하지 않는다'/ * '당신이 시작하려는 패턴은] (http://stackoverflow.com/q/7447885/399649) –

답변

5

우리는 규칙을 코딩하는 방법을 알 수 있도록 특정 요청을 서블릿으로 라우팅해야하는지 구체적으로 알아야합니다. a) CSS 및 이미지를 제외한 모든 요청을 서블릿에 보내야하는지 또는 b) 서블릿이 특정 폴더/디렉토리 집합에 대한 요청 만 처리해야하는지 여부를 알 수 없습니다. 당신은 아마하고 싶은 것 두 가지 중 하나를

는 제외 특정 폴더 :

^/(?!css|images).* 

또는 포함 특정 폴더 : 경우

^/myservlet/.* 

당신은 당신으로, +에 그 * 문자를 변경해야 이전 질문에 표시된대로 패턴에 / 뒤에 적어도 하나의 문자가 필요합니다.

+0

감사 : 그리고이 같은 매핑을 ! 이 필터를 사용하려고했지만 이것은 더 우아합니다! – Mayumi

+2

이것은 Guice에만 적용되며 질문 제목에 언급 된 web.xml에는 적용되지 않습니다. web.xml'url-pattern'은 단순 경로와 확장 맵핑 와일드 카드를 지원합니다 :'/ *'와'. *' – Kapep

0

이 당신을 위해 작동합니다 :

모든 이미지/CSS 등 자원이 default servlet을 통해 이동합니다.

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.xml</url-pattern> 
    <url-pattern>*.html</url-pattern> 
    <url-pattern>*.png</url-pattern> 
    <url-pattern>*.jpg</url-pattern> 
    <url-pattern>*.gif</url-pattern> 
    <url-pattern>*.js</url-pattern> 
    <url-pattern>*.css</url-pattern> 
</servlet-mapping> 
관련 문제