Tomcat 설치 (Ubuntu)
- 다운로드
~$ wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.89/bin/apache-tomcat-9.0.89.tar.gz
- tar.gz 압축 해제
~$ tar -zxvf apache-tomcat-9.0.89.tar.gz
-
다운로드 완료
- Tomcat 시작
~/apache-tomcat-9.0.89/bin$ ./startup.sh
-
http://localhost:8080 에서 확인
- Tomcat 중지
~/apache-tomcat-9.0.89/bin$ ./shutdown.sh
Tomcat 디렉토리 구조
- bin : Tomcat의 시작, 중지 및 기타 관리 스크립트가 포함된 디렉토리
- 주요 파일
- startup.sh : Tomcat 시작 스크립트
- shutdown.sh : Tomcat 중지 스크립트
- catalina.sh : 주요 제어 스크립트
- 주요 파일
- conf : Tomcat의 설정 파일들이 포함된 디렉토리
- 주요 파일
- server.xml : Tomcat의 전반적인 설정 파일
- web.xml : 모든 웹 애플리케이션에 대한 전역 설정 파일
- context.xml : 개별 웹 애플리케이션에 대한 설정 파일
- 주요 파일
- lib : Tomcat을 작동하는 데 필요한 라이브러리들(.jar)이 포함된 디렉토리
- logs : Tomcat의 로그 파일들이 저장되는 디렉토리
- 주요 파일
- catalina.out : Tomcat의 표준 출력 및 표준 오류 로그 파일
- catalina.out : Tomcat의 표준 출력 및 표준 오류 로그 파일
- 주요 파일
- temp : Tomcat이 실행 중 사용하는 임시 파일들(ex) 업로드, 캐시 파일)이 저장되는 디렉토리
-
webapps : 배포된 웹 애플리케이션들이 위치하는 디렉토리
- work : JSP 파일을 서블릿 형태로 변환한 .java 파일과 이를 컴파일한 결과인 .class 파일이 저장되는 디렉토리
- JSP는 처음 요청될 때 서블릿(.java)으로 변환되고, 이후 재사용을 위해 컴파일된 서블릿(.class)이 저장된다.
webapps 디렉토리
- 각 웹 애플리케이션은 webapps 디렉토리 내에 하나의 디렉토리로 존재하며, 각 웹 애플리케이션은 특정한 디렉토리 구조를 따른다.
- war 파일을 webapps 디렉토리에 배치(배포)하면, Tomcat은 자동으로 war 파일의 압축을 푼다.
- war 파일을 webapps 디렉토리에 배치(배포)하면, Tomcat은 자동으로 war 파일의 압축을 푼다.
- webapps 디렉토리 내 웹 애플리케이션 디렉토리(war 파일 압축 푼 결과)의 구조
- WEB-INF : 웹 애플리케이션의 핵심 설정 파일과 자원을 포함하는 디렉토리
- 클라이언트가 직접 접근할 수 없다.
- 주요 하위 디렉토리와 파일
- web.xml : 웹 애플리케이션의 서블릿, 필터, 리스너, 초기화 매개변수 등의 설정 파일
- classes 디렉토리 : 웹 애플리케이션의 컴파일된 파일(.class)들이 위치하는 디렉토리
- lib 디렉토리 : 웹 애플리케이션이 사용하는 외부 라이브러리 파일(.jar)들이 위치하는 디렉토리
- META-INF : JAR 파일 및 웹 애플리케이션 메타데이터를 포함하는 디렉토리
- 기타 정적 자원 디렉토리 : 정적 파일(css, js 등)들을 포함하는 디렉토리
- 클라이언트가 직접 접근할 수 있다.
- WEB-INF : 웹 애플리케이션의 핵심 설정 파일과 자원을 포함하는 디렉토리
conf/web.xml과 webapps/WEB-INF/web.xml
- 공통점 : 웹 애플리케이션의 설정을 정의
- 서블릿, 필터, 리스너, 초기화 매개변수 등을 정의한다.
- 서블릿, 필터, 리스너, 초기화 매개변수 등을 정의한다.
- 차이점 : 적용 범위와 목적
- conf/web.xml : Tomcat에서 실행되는 모든 웹 애플리케이션에 적용되는 기본 설정
- 각 개별 웹 애플리케이션의 web.xml 파일에 정의되지 않은 설정은 여기에서 정의된 기본 설정을 따른다.
- 기본 서블릿이나 필터 설정을 제공하여, 모든 애플리케이션이 공통적으로 사용해야 하는 서블릿 또는 필터를 정의할 수 있다.
- 공통적인 보안 설정이나 JNDI 리소스 등의 설정을 정의할 수 있다.
- webapps/WEB-INF/web.xml : 개별 웹 애플리케이션에만 적용되는 설정
- conf/web.xml에서 정의된 전역 설정을 덮어쓰거나 추가한다.
- 예를 들어, 특정 서블릿이나 필터가 동일한 이름으로 두 파일에 모두 정의되어 있으면, webapps/WEB-INF/web.xml에 정의된 설정이 우선이다.
- conf/web.xml에서 정의된 전역 설정을 덮어쓰거나 추가한다.
- conf/web.xml : Tomcat에서 실행되는 모든 웹 애플리케이션에 적용되는 기본 설정
- 참고 자료
https://tomcat.apache.org/tomcat-5.5-doc/appdev/deployment.html
https://tomcat.apache.org/download-90.cgi
https://stackoverflow.com/questions/70216/whats-the-purpose-of-meta-inf
https://www.youtube.com/watch?v=WdBAto3IQOg&list=PLqaSEyuwXkSoeqnsxz0gYWZMihw519Kfr&index=39
https://www.youtube.com/watch?v=K84mSiC_q6I&list=PLqaSEyuwXkSoeqnsxz0gYWZMihw519Kfr&index=40
https://www.youtube.com/watch?v=aP4Lw3SfffQ&list=PLqaSEyuwXkSoeqnsxz0gYWZMihw519Kfr&index=6
https://lifesteps.tistory.com/84
https://jake-seo-dev.tistory.com/436
https://velog.io/@xangj0ng/Linux-Ubuntu-Tomcat-%EC%84%A4%EC%B9%98
https://jokerkwu.tistory.com/117
https://xzio.tistory.com/1345
https://infoinhere.tistory.com/85
https://yangbox.tistory.com/16