웹 애플리케이션의 정의
웹 애플리케이션이란 말 그대로 기존의 정적인 웹 애플리케이션의 기능을 그대로 사용하면서 서블릿, JSP, 자바 클래스 등을 추가하여 사용자에게 동적인 서비스를 제공하는 프로그램입니다.
정적인 방식의 단점을 보완하여 서비스를 제공하므로 정적 웹 애플리케이션의 기능인 HTML, 자바스크립트, CSS 등도 웹 애플리케이션에서 그대로 사용할 수 있습니다.
웹 애플리케이션의 기본 구조
웹 애플리케이션의 기본 디렉토리 구조는 다음과 같습니다.
이러한 기본적인 구조를 갖추지 않고 컨데이너에서 웹 애플리케이션을 실행하면 오류가 발생할 수 있습니다.
이클립스 등과 같은 통합 개발 환경(Integrated Development Environment, IDE) 에서 웹 애플리케이션 프로젝트를 생성하면 구조가 조금 상이할 수 있지만 기본적인 디렉토리 구조는 위와 같습니다.
(통합 개발 환경을 사용하면 자동으로 디렉토리 구조가 구성되니까 아 기본은 이렇구나 만 알고 넘어가시면 됩니다 ^^)
각 구성요소의 기능은 다음과 같습니다.
구성 요소 | 기능 |
웹 애플리케이션(project) | 웹 애플리케이션의 루트 디렉토리로 다른 웹 애플리케이션 이름과 중복을 허용하지 않으며 JSP, HTML 파일이 저장됩니다. |
WEB-INF | 웹 애플리케이션에 관한 정보가 저장되는 곳입니다. 이 디렉토리는 외부에서 접근할 수 없습니다. |
classes | 웹 애플리케이션이 수행하는 서블릿과 다른 일반 클래스들이 위치하는 곳입니다. |
lib | 웹 애플리케이션에서 사용되는 여러가지 아리브러리 압축파일(.jar) 이 저장되는 곳입니다. DB 연동 드라이버나 프레임워크 기능 관련 jar 파일이 여기에 저장됩니다. lib 디렉토리의 jar 은 class path 가 자동으로 설정됩니다. |
web.xml | 웹 애플리케이션에 대한 여러가지 설정을 할때 사용됩니다.(일종의 환경 설정 파일) |
이 외에도 추가적인 기능이 필요할 경우 WEB-INF 폴더 내에 필요한 다렉토리를 추가해서 사용할 수 있습니다.
구성 요소 | 기능 |
jsp/html | JSP 파일 또는 HTML 파일 저장 |
css | 스타일 시트 파일 저장 |
image | 웹 애플리케이션에서 사용되는 이미지 저장 |
js | 자바스크립트 파일 저장 |
bin | 애플리케이션에서 사용되는 각종 실행파일 저장 |
conf | 프레임워크에서 사용하는 각종 설정 파일 저장 |
src | 자바 소스 파일 저장 |
컨테이너에 웹 애플리케이션 실행
웹 애플리케이션은 일반 PC 에서 실행되는 자바 애플리케이션과 달리 단독으로 실행할 수 없습니다.
웹 애플리케이션은 톰캣과 같은 웹 컨테이너에서 실행되는 구조이므로 웹 애플리케이션을 실행하려면 톰캣에 등록을 한 후 실행해야 합니다.
직접 웹 애플리케이션에 등록을 하는 방법은 2가지 입니다.
1. %CATALINA_HOME%webapps 디렉터리 경로에 애플리케이션을 저장
CATALINA_HOME 는 톰캣의 루트 디렉터리로 묵시적으로 사용하고 있습니다.( 여기서는 C:\tomcat9 )
설치한 톰캣 루트 디렉터리의 하위 디렉터리인 webapps 폴더에 작성한 웹 애플리케이션을 위치 시킨 다음 톰캣을 껐다가 다시 실행하면 톰캣이 자동으로 웹 애플리케이션을 인식한 후 실행 시키는 방법입니다.
단점은 개발 중에 웹 애플리케이션을 계속 해서 해당 경로에 복사한 후 톰캣을 재실행해야 하는 번거로움이 있습니다. 자신의 PC 가 아닌 원격으로 업로드를 해야할 경우 그 번거로움과 시간은 더 많이 낭비됩니다.
2. 톰캣의 server.xml 에 직접 웹 애플리케이션을 등록
톰캣 내부 폴더가 아닌 임의의 장소에 위치해 있는 웹 애플리케이션을 톰캣의 설정 파일인 server.xml 에 등록해서 실행하는 방법입니다.
server.xml 에 등록하는 웹 애플리케이션을 컨텍스트(context) 라고 부릅니다. 톰캣에서 인식하는 한개의 웹 애플리케이션이라고 생각하시면 됩니다.
톰캣(컨테이너) 실행 시 웹 애플리케이션 당 하나의 컨텍스트가 생성됩니다. 컨텍스트 이름은 웹 애플리케이션 이름과 같게 만드는 것이 일반적이나 보안 상의 이유나 웹 웹 애플리케이션의 이름이 너무 긴 경우에는 웹 애플리케이션의 이름과 다르게 만들수도 있습니다.
컨텍스트 태그 구성요소에 대한 설명입니다.
구성 요소 | 기능 |
path | 웹 애플리케이션의 컨텍스트 이름입니다. 윀 애플리케이션 이름과 다를수도 있으며 웹 브라우저에서 실제 웹 애플리케이션을 요청하는 이름입니다. |
docBase | 컨텍스트에 대한 실제 웹 애플리케이션이 위치한 경로입니다. WEB-INF 상위 폴더까지의 경로를 나타냅니다. |
reloadable | 실행 중 소스 코드가 수정될 경우 바로 갱신할지를 설정합니다. 만약 false 로 설정하면 톰캣을 다시 실행해야 추가한 소스 코드의 기능이 반영됩니다. |
<Context path = "/컨텍스트 이름"
docBase = "웹 애플리케이션의 WEB-INF 디렉터리 위치"
reloadable = "true or false" />
직접 웹 애플리케이션을 등록하는 방법들은 위와 같습니다.
이클립스와 같은 통합개발환경(IDE : Integrated Development Enviornment)을 사용하면 보다 쉽게 웹 애플리케이션을 등록하고 실행할 수 있으며 다음 글에서 설명드리도록 하겠습니다.
여기까지 임미다.
'개발 > Java' 카테고리의 다른 글
[JAVA - WEB] 서블릿 요청 및 데이터 전송 (1) | 2022.10.31 |
---|---|
[JAVA - WEB] 서블릿 기본 (1) | 2022.10.31 |
[JAVA - WEB] 서블릿이란? (0) | 2022.10.31 |
[JAVA - WEB] 웹 애플리케이션 서비스 (0) | 2022.10.28 |
[JAVA - WEB] 이클립스에서 웹 애플리케이션 실행 (0) | 2022.10.28 |
[JAVA - WEB] 개발 환경 구축 - SQL Developer 설치 (0) | 2022.10.13 |
[JAVA - WEB] 개발 환경 구축 - Oracle DBMS 설치 (0) | 2022.10.13 |
[JAVA - WEB] 개발 환경 구축 - 이클립스 IDE 설치 (0) | 2022.10.13 |
[JAVA - WEB] 개발 환경 구축 - 톰캣 컨테이너 설치 (0) | 2022.10.12 |
[JAVA - WEB] 개발 환경 구축 - JDK 설치 및 환경변수 설정 (0) | 2022.10.12 |