[Eclipse] Dynamic Web Project 구조 파헤치기
![](https://velog.velcdn.com/images/minhye1020/post/a09e7488-3b51-4a71-9b92-10c132f897f7/image.png)
1. 새 프로젝트 생성
![](https://velog.velcdn.com/images/minhye1020/post/60df48c9-b173-4f22-9f28-4b576cc54e2d/image.png)
Dynamic Web Project
: JSP와 같이 동적인 웹페이지를 가지는 웹 애플리케이션 개발 시에 사용하는 프로젝트
Static Web Project
: JSP와 같은 동적인 페이지가 없는 순수하게 웹 컨텐츠로만 구성되어 있는 웹 컨텐츠를 위한 프로젝트
Web fragment Project
: 다른 웹 프로젝트에 하나의 라이브러리와 같은 형태로 재사용될 때 유용. 해당 프로젝트의 output은 jar파일로 생성되어 다르웹 프로젝트에 추가될 수 있음.
2. 다이나믹 웹 프로젝트
![](https://velog.velcdn.com/images/minhye1020/post/3eb29a89-c3de-4d2e-9310-3715ebca981c/image.png)
Target runtime
: 웹 어플리케이션 실행 서버. tomcat 관련 라이브러리 프로젝트에 자동 추가
Dynamic web model version
: 서블릿 버전. 이클립스가 해당 버전으로 코드문법을 검사.
3. 웹 어플리케이션 배치 정보 설정Permalink
![](https://velog.velcdn.com/images/minhye1020/post/865e5c03-bb9a-4252-b92a-8d6a28c38946/image.png)
Context root
: 웹 애플리케이션 이름. 웹 브라우저 실행 요청할 때 여기 지정된 이름을 URL에서 사용
Content directory
: 웹 콘텐츠 파일을 저장할 작업 폴더 이름.
Generate web.xml deployment descriptor
: 웹 어플리케이션 배치 설명서 파일 자동 생성 옵션. 프로젝트의 WEB-INF 폴더에 web.xml파일 자동 생성
4. 프로젝트 구조Permalink
- 순서 없는 목록 1
- 순서 없는 목록 2
![](https://velog.velcdn.com/images/minhye1020/post/7d9e06ef-858d-418b-8867-d69d1656e96e/image.png)
- Java Resources : 자바기반의 자원들
src
: Java 소스파일, 프로퍼티(.properties)파일 위치
libraries
: 실제 WebContent/WEB-INF/lib 폴더를 가상으로 보여줌
- build : 소스파일 컴파일 이후의 결과물들
build
: 자바 클래스 파일(.class) 위치
- WebContent : HTML(.html), CSS(.css), JavaScript(.js), JSP, 이미지 파일 등의 웹 콘텐츠
- 웹 어플리케이션을 서버에 배치할 때 이 폴더의 내용물이 그대로 복사
WebContent/WEB-INF
: 웹 어플리케이션 설정 관련 파일들이 위치하는 디렉토리
- 이 폴더에 있는 파일은 클라이언트에서 요청할 수 없음
WebContent/WEB-INF/web.xml
: 웹 어플리케이션 Deployment Descriptor(배치 설명서, DD파일)
- 서블릿, 필터, 리스너, 매개변수, Welcome Pages 등의 웹 어플리케이션 컴포넌트 배치 정보를 작성
- 서블릿 컨테이너는 클라이언트의 요청을 처리할 때 이 파일의 정보를 참고하여 서블릿 클래스를 찾거나 필터를 실행하는 등의 작업을 수행
WebContent/WEB-INF/lib
: 자바 아카이브 파일(.jar)이 위치하는 디렉토리
- jar(Java Archive)?
- zip 파일 형태의 압축파일
- 여러개의 자바 클래스 파일과 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타 데이터를 하나의 파일로 모아서 압축
- 하나의 파일로서 자바 플랫폼에 응용 SW나 라이브러리를 배포하기 위한 파일 포맷
출처