본문 바로가기
728x90
반응형

 

 

- WEB-INF/ classes, WEB-INF/lib 이해

0. *.html, *.jsp 등 
: 웹 어플리케이션에서 클라이언트 브라우저로 전송이 되는 HTML, JSP 페이지와 다른 파일들(ex. JS, StyleSheet, image). 대규모 어플리케이션에서 이 파일들을 서브디렉토리체계로 나누어 놓을 수 있다. 규모가 작은 어플리케이션이라면 보통 하나의 디렉토리에서 관리한다.

1. WEB-INF/classes 
: 이 디렉토리는 웹 어플리케이션에서 사용하는 모든 자바 파일(관련 자원)이 들어있다. Servlet을 작성할 때, JavaBeans를 작성할 때 이곳에 컴파일 된 class파일을 넣어두고 servlet 혹은 Beans를 호출하여 사용한다. 이렇게 특별  CLASSPATH에 지정된 디렉토리에 있지 않아도 이곳에 넣어두면 바로 사용이 가능하다.
예로 JDBC드라이버 같은 경우도 이곳에 압축을 풀어 넣어두면 곧바로 사용이 가능하다. 서블릿과 비서블릿 클래스 파일들이고, jar형태로 묶여있지 않았고, 패키지가 선언된 클래스라면 /WEB-INF/classes/ 를 기준으로 패키지의 디렉토리를 만들어 구성하면 된다. 
만일 클래스명이  com.my.penta.test.MyServlet  이라면 파일의 저장경로는 
/WEB-INF/classes/com/my/test/MyServlet.class가 된다.

2. WEB-INF/lib
: classes 와는 달리 이곳엔 jar파일을 넣어 둘 수 있는 디렉토리다. 이곳에 **.jar 파일을 넣어두면 이 파일을 classpath에 추가한 것과 마찬가지로 사용이 가능해진다. (외부클래스 라이브러리나 JDBC 드라이브같은것을 넣어둔다.) 단점은 새로 추가한 파일을 적용시키려면 웹 서버를 재시작해야 한다.(서블릿컨테이너마다 다르나 일반적으로 재시작을 해야함)

WEB-INF 아래엔 항상 web.xml이 위치해야 웹애플리케이션으로 인정을 받는다. 또한 WEB-INF는 아무나 참조 할 수 없으며 지정된 WEB/WAS만이 참조할 수 있다.

728x90
반응형

한걸음 한걸음

개인적인 기록