2013-06-20 1 views
0

모든 요청을 특정 서블릿에 매핑하려고하지만 Tomcat이/WEB-INF/디렉토리를 매핑하도록 허용하지 않습니다.Tomcat 7/WEB-INF/디렉토리 매핑

내 web.xml 파일.

<servlet> 
    <servlet-name>TestServlet</servlet-name> 
    <servlet-class>mypackage.TestServlet</servlet-name> 
</servlet> 
<servlet-mapping> 
    <servlet-name>TestServlet</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

당신은/WEB-INF/디렉토리에있는 페이지를 요청할 때까지 잘 작동 (404 있습니다)./WEB-INF/디렉토리를 포함하여 모든 것을 서블릿에 매핑 할 수있는 방법이 있습니까?

/WEB-INF/*를 사용하여 서블릿 매핑을 시도했지만 아무런 효과가 없습니다.

+0

은 어쩌면 http://stackoverflow.com/questions/14093446/why-request-which의 중복 -start-with-web-inf-can-to-a-servlet-filter – fmodos

답변

1

아니요. 외부에서 WEB-INF의 파일에 직접 액세스 할 수 없습니다.

당신은 WEB-INF 폴더 안에 파일에 대한 요청을 리디렉션 할 것이다 외부 html 또는 jsp 파일을 가지고해야합니다.

+0

/WEB-INF/디렉토리의 내용에 액세스하고 싶지 않습니다. 난 그냥 디렉토리에서 요청을 가로 채서 자동 404가 아닌 내 자신의 서블릿으로 처리하려고합니다. – nikdeapen

+1

그것은 컨테이너에 고정되어 있습니다. 컨테이너는 멀리까지 가지 않습니다. 그것은 기본적으로 보안 예방 조치입니다. –

0

tomcat 표준에 따라 모든 * .html, * .jsp 등을 응용 프로그램 루트 디렉토리에 넣어야합니다./WEB-INF 디렉토리는 주로 web.xml, 클래스 및 libs를 포함하지만 jsp/htmls는 포함하지 않습니다. WEB-INF 디렉토리 아래에있는 파일/아티팩트로 직접 이동할 수 없습니다 (META-INF에도 유효).

은 서블릿 엔진의 보안 기능입니다 : WEB-INF 아래 내용 보호 및 URL을 통해 "외부"에서 액세스 할 수 없습니다. 그렇지 않으면 누구나 응용 프로그램/데이터베이스 구성과 같은 중요한 세부 정보를 적절한 URL을 조합하여 읽을 수 있습니다. 당신은 당신의 웹 애플리케이션을 패키징에 대한 지침을 따라야합니다

, 여기 더 읽기 :

http://tomcat.apache.org/tomcat-6.0-doc/appdev/deployment.html