[WEB] 웹 애플리케이션과 톰캣 컨테이너

sang·2024년 1월 7일

웹 애플리케이션 기본 개념

개념

서블릿, JSP, 자바 클래스들을 추가해 사용자에게 동적인 서비스 제공
정적 웹 프로그래밍 방식의 단점을 보완한 서버 프로그램

구조

애플리케이션 이름

WEB-INF

  • classes
    서블릿, 일반 클래스
  • lib
    라이브러리 압축 파일
  • web.xml
    배치 지시자 (환경 설정 파일)
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    </web-app>


톰캣 컨테이너와 실행

컨텍스트 context

server.xml에 등록하는 웹 애플리케이션
애플리케이션의 위치를 알려주는 역할
톰캣에서 인식하는 한 개의 웹 애플리케이션
웹 애플리케이션 1개 당 컨텍스트 1개
컨테이너 실행 시 생성

사용 이유:
실행할 때마다 프로젝트를 복사해서 webapps 디렉터리에 옮기기 번거로움

컨텍스트 이름 규칙

중복 불가
대소문자 구분
명사형
일반적으로 웹 애플리케이션 이름과 동일


등록

방법 1.

%CATALINA_HOME%webApps 디렉터리에 애플리케이션을 위치시킨 후 실행
자동 등록되어 실행됨

방법 2.

톰캣 설정 파일 server.xml에 컨텍스트로 수동 등록한 후 실행

<Host ...> <!-- 150행쯤 위치 -->
	
	<Context path="/컨텍스트이름" docBase="애플리케이션 WEB-INF 디렉터리 위치" reloadable="true 또는 false" />
	...

</Host>

요청

http://IP주소:포트번호/컨텍스트이름/요청파일이름

localhost:8080/컨텍스트이름/요청파일이름

동작 과정

  1. 웹 브라우저에서 컨텍스트 이름으로 요청
  2. 톰캣 컨테이너에서 server.xml 확인
  3. 해당 컨텍스트 애플리케이션 경로에서 요청한 파일을 브라우저로 전송
  4. 브라우저에서 전송받은 파일을 띄움

배치 deploy

웹 애플리케이션을 실제로 서비스 하는 것
개발자의 IDE 등록된 톰캣이 아닌 실제 서비스하는 톰캣으로 애플리케이션을 이동하여 실행하는 것

  1. 프로젝트를 war 파일로 압축
  2. war 압축 파일을 톰캣 webapps 디렉터리에 저장
  3. 톰캣 실행
  4. 톰캣에서 자동으로 컨텍스트 등록하여 실행


*자바 웹을 다루는 기술

profile
CS 메모장

0개의 댓글