■ 톰켓의 디렉토리 구조
─────
> bin
- 톰캣 서버 실행과 관련된 쉘 스크립트 파일 (.sh, bat 등)을 모아둔 곳입니다.
> conf
- 톰캣 서버를 실행할 때 참조할 설정 파일을 모아둔 곳입니다.
> lib
- 톰캣 서버를 구성하는 자바 클래스(classs) 라이브러리들을 모아둔 곳입니다.
> logs
- 톰캣 서버를 실행하는 동안 실행 정보와 오류 정보를 기록한 파일을 모아둔 곳입니다.
client로부터 get 요청이 들어왔는지 post 요청이 들어왔는지도 알 수 있고
마지막으로 요청한 정보가 무엇인지, ip address는 어떻게 되는지 등도
알 수 있습니다.
> temp
- 톰캣 서버가 실행하는 동안 임시 데이터를 보관하는 디렉토리입니다.
> work
- 톰캣 서버가 JSP를 실행할 때 그 중간 파일을 보관하는 곳입니다.
> webapps
- 웹 애플리케이션을 모아둔 곳입니다.
■ 개발용 웹 애플리케이션 실행 환경
$workspace/Servers/localhost.../*.xml
- 톰캣 서버의 설정 파일을 복사해 옵니다.
- $tomcat_home/conf 에서 설정파일을 복사해서 생성된 파일입니다.
- 여기서 편집한 설정 파일은 실행환경 임시폴더인 아래 폴더에 저장이 됩니다.
$workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
또한
$workspace/.metadata/.plugins/org.eclipse.wst.server.core/ 폴더에는
이 실행환경에서만 사용할 폴더들이 생성이 됩니다.
>logs
>temp
>work
>webapps
>wtpwebapps > 생성한 웹프로젝트 폴더(ex : web01)
그리고 생성한 웹프로젝트 폴더(ex: web01)에는 $workspace/web01/src/WebContent/에 있는 모든 폴더와 파일이 복사가 되구요,
> web01 > WEB-INF 폴더 안에는 $workspace/web01/src/WebContent/WEB-INF에 있는 모든 폴더와 파일이 복사가 됩니다.
$workspace/web01/bin/ 에는 $workspace/web01/src/에서 컴파일된 *.class 파일이
저장되고 *.properies *.xml 등의 파일이 복사되어 저장됩니다.
───────
톰캣의 디렉토리 구조와 이클립스 웹 프로젝트 폴더 구조
# .class 파일은 java 파일에서 블록 단위의 class {} 마다 생성이 됩니다.
## 이클립스에는 버그가 있다. 이클립스는 톰캣 서버를 실행시키면 웹 애플리케이션
프로젝트에서 실행환경 임시폴더(tmp0)로 파일들을 복사 -> 배치 (deploy)시키는데
자꾸 이전 파일이 로딩되는 경우가 있는 것이다. 이럴 땐 Servers 창에서 서버를
중단시키고 삭제하고 다시 추가하면 된다. 그러면 다시 실행환경 임시폴더가 생성될 것이다.
다시 프로젝트 폴더를 만드는 바보 같은 행동은 하지 말자!
■ 이클립스 웹 어플리케이션 프로젝트 폴더 구조
이클립스에서 웹 프로젝트를 다룰 때의 폴더 구조입니다.
IntelliJ 혹은 NetBeans 등 다른 IDE를 사용할 때는 폴더 구조가 다를 수 있습니다.
$workspace/web01
> src
- 자바 소스 파일을 두는 곳입니다.
> WebContent : HTML, CSS, JavaScript, GIT 등 정적 웹 자원(static resource)을 두는 곳입니다. JSP 파일도 이 폴더 안에 두는 것이 일반적입니다.
> WEB-INF : 웹 애플리케이션 정보 파일을 두는 곳입니다.
> classes : 자바 클래스 파일(.class)을 두는 곳입니다.
> lib : 자바 라이브러리 파일(.jar)을 두는 곳입니다.
> web.xml : 웹 애플리케이션 설정 파일입니다.
■ 웹 어플리케이션 배치 폴더구조
$deployment_dir : HTML, CSS, JavaScript, GIT 등 정적 웹 자원(static resource)을 두는 곳입니다. JSP 파일도 이 폴더 안에 두는 것이 일반적입니다.
> WEB-INF : 웹 애플리케이션 정보 파일을 두는 곳입니다.
> classes : 자바 클래스 파일(.class)을 두는 곳입니다.
> lib : 자바 라이브러리 파일(.jar)을 두는 곳입니다.
> web.xml : 웹 애플리케이션 설정 파일입니다.