컨테이너에서 웹 애플리케이션 실행하기
컨테이너에 웹 애플리케이션 등록
웹 애플리케이션은 일반 PC에서 실행되는 자바 애플리케이션과 달리 단독으로 실행할 수 없습니다. 웹 애플리케이션은 톰캣과 같은 웹 컨테이너에서 실행되는 구조입니다. 따라서 웹 애플리케이션을 실행하려면 우선 톰캣에 등록부터 해야 합니다.
웹 컨테이너에 톰캣 컨테이너에 등록하는 벙법은 다음 두 가지입니다.
① %CATALINA_HOME%webApps 디렉터리에 애플리케이션을 저장
② server.xml에 직접 웹 애플리케이션을 등록
첫 번째 방법은 CATALINEA_HOME, 즉 설치한 톰캣 루트 디렉터리의 하위 디렉터리인 webapps 폴더에 작성한 웹 애플리케이션을 위치시킨 다음 톰켓을 껐다가 다시 실행하면 톰캣이 자동으로 웹 애플리케이션을 인식한 후 실행시키는 방법입니다. 두 번째 방법은 임의의 장소에 위치해 있는 웹 애플리케이션을 톰캣의 설정 파일은 server.xml에 등록해서 실행하는 방법입니다.
우선 첫 번째 방법부터 알어봅시다.
1. C 드라이버의 webShop 폴더 전체를 복사한 후 톰캣 루트 디렉터리의 하위에 있는 webapps 폴더에 붙여 넣습니다.

2. VS Code를 실행한 후 상단 메뉴의 File > newFile을 선택합니다.

3. 다음과 같이 HTML 코드를 입력합니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello JSP!</title>
</head>
<body>
Hello JSP!<br>
안녕하세요!!
</body>
</html>
4. 상단 메뉴의 File > Save를 선택하고 파일 이름을 main.html로 수정한 후 webShop 폴더에 저장합니다.

톰캣 실행
이제 웹 애플리케이션을 서비스하기 위해 톰캣을 실행해 보겠습니다.
1. 톰캣을 설치한 루트 디렉터리의 bin폴더를 이동합니다.

2. bin 디렉터리의 Tomcat9.exe를 더블클릭해 실행합니다.

3. 콘솔창이 나타나면서 톰캣 컨테이너가 실행됩니다.

브라우저에서 웹 애플리케이션 요청
이제 톰캣 컨테이너가 시작되면서 webShop 애플리케이션이 자동으로 등록되어 실행될 것입니다. 그럼 톰캣이 실행시킨 webShop 애플리케이션을 웹 브라우저에서 요청해 보겠습니다.
다음은 톰켓에서 실행한 웹 애플리케이션을 웹 브라우저에서 요청하는 방법입니다.
http://IP주소:포트번호/컨텍스트이름/요청파일이름
먼저 톰캣 컨테이너가 위치해 있는 IP 주소를 입력하고 콜론(:)으로 구분하여 톰캣 설치 시에 입력한 포트 번호(여기서는 8090)를 입력합니다. 그런 다음 콘텍스트 이름(여기서는 webShop)을 입력합니다.
http://localhost:8090/webShop/main.html

컨텍스트란?
server.xml에 등록하는 웹 애플리케이션을 컨텍스트(Context)라 부릅니다. 즉, 톰캣이 입장에서 인식하는 한 개의 웹 애플리케이션이라고 보면 됩니다.
컨테이너 실행 시 웹 애플리케이션당 하나의 컨텍스트가 생성됩니다.
컨텍스트의 주요 특징은 다음과 같습니다.
- 웹 애플리케이션당 하나의 컨텍스트가 등록됩니다.
- 웹 애플리케이션 이름과 같을 수도 있고 다를 수도 있습니다.
- 컨텍스트 이름은 중복되지 않습니다.
- 웹 애플리케이션의 의미를 가장 잘 나타날 수 있는 명사형으로 지정합니다.
- 대소문자를 구분합니다.
- server.xml에 등록합니다.
톰캣 컨테이너에 컨텍스트 등록하기
이번에는 임의의 폴더에 만든 webShop 웹 애플리케이션을 server.xml에 컨텍스트로 등록해서 실행하는 과정을 알아보겠습니다. server.xml은 톰캣 설치 디렉터리 아래, conf 디렉터리 안에 있습니다.

server.xml에 컨텍스트를 등록하려면 다음과 같이 <Context> 태그를 이용해야 합니다.
코드 server.xml에 컨텍스트 등록하기
| <Context path="/컨텍스트 이름" docBase="실제 웹 애플리케이션의 WEB-INF 디렉터리 위치" reloadable="true 또는 false" /> |
코드 등록 예
<Context path="/webMal"
docBase=" C:\\webShop"
reloadable="true" />
일반적으로 컨텍스트 이름은 웹 애플리케이션 이름과 동일하게 합니다.
server.xml을 메모장이나 VS Code로 열어 149행 쯤에 있는 <Host> 태그 안에 <Context> 태그를 이용해서 등록합니다.

코드 C:/tomcat9/conf/server.xml
<Context path="/webMal"
docBase="C:\webShop"
reloadable="true"/>
그리고 첫 번째 톰캣 실행 시 사용한 main.html을 복사하여 C:\webShop에 븥여 넣습니다.

그런 다음 톰켓을 재실행하여 웹 브라우저에서 등록한 컨텍스트 이름인 /webMal/main.html로 요청합니다.
- http://localhost:8090/webMal/main.html
다음은 웹 브라우저에 표시된 결과 화면입니다.

톰캣 컨테이너에서의 웹 애플리케이션 동작 과정
실제 웹 브라우저에서 컨텍스트 이름으로 요청할 경우 웹 애플리케이션이 동작하는 과정은 다음과 같습니다.
- http://localhost:8090/webMal/main.html
① 웹 브라우저에서 컨텍스트 이름(webMal)으로 요청합니다.
② 요청을 받은 톰캣 컨테이너는 요청한 컨텍스트 이름이 server.xml에 있는지 확인합니다.
③ 해당 컨텍스트 이름이 있으면 컨텍스트 이름에 대한 실제 웹 애플리케이션이 있는 경로(C:\webShop)로 가서 요청한 main.html을 클라이언트 웹 브라우저로 전송합니다.
④ 웹 브라우저는 전송된 main.html을 브라우저에 나타납니다.
컨텍스트 이름으로 요청할 경우 이 컨텍스트 이름이 미리 server.xml에 등록되어 있어야 합니다. 만약 등록되어 있지 않은 컨텍스트 이름으로 요청하면 404 오류가 발생합니다.

'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| 웹 애플리케이션 서비스하기 (0) | 2025.03.25 |
|---|---|
| 이클립스에서 웹 애플리케이션 실습하기 (5) | 2025.03.22 |
| 웹 애플리케이션의 기본 구조 (0) | 2025.03.17 |
| 웹 애플리케이션 (0) | 2025.03.17 |
| exERD 설치하기 (0) | 2025.03.13 |