프로그래밍 언어/자바 웹

웹 애플리케이션의 기본 구조

· 코딩마이데이

웹 애플리케이션의 기본 디렉토리 구조

 

이러한 구조를 갖추지 않고 컨테이너에서 웹 애플리케이션을 실행하면 오류가 발생합니다. 만약 기본 구조 외에 다른 기능이 추가되면 디렉터리(폴더)를 추가해서 사용하면 됩니다.

 

1. 탐색기에서 C 드라이브에 webShop 폴더를 생성합니다.

webShop 폴더 생성

 

2. webShop 폴더 안에 WEB-INF 폴더를 생성합니다.

WEB-INF 폴더 생성

 

3. WEB-INF 폴더에 classeslib 폴더를 생성합니다.

classes와 lib 폴더 생성

 

4. WEB-INF 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한 후 새로 만들기 > 텍스트 문서를 선택해 텍스트 파일을 생성하고 이름을 web.xml로 변경합니다.

텍스트 파일 이름을 web.xml로 변경

 

5. Vs Code로 web.xml로 파일을 열고 다음 코드를 작성합니다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
</web-app>

 

우리가 만든 웹 애플리케이션의 이름은 webShop이고, 하위 디렉터리(폴더)에는 WEB-INF가 있습니다. WEB-INF 폴다 하위에는 classes와 lib 폴더가 있고, web.xml 파일이 있습니다. 이것이 이 웹 애플리케이션을 이루는 요소들입니다. 각 구성 요소들의 자세한 기능을 표에 정리했습니다.

구성 요소 기능
webShop 웹 애플리케이션의 루트 디렉터리, 웹 애플리케이션 이름과 중복을 허용하지 않으며, 여기에는 JSP HTML 파일이 저장됩니다.
WEB-INF 웹 애플리케이션에 관한 정보가 저장되는 것입니다. 이 디렉터리는 외부에서 접근할 수 수 없습니다.
classes 웹 애플리케이션이 수행하는 서불릿과 다른 일반 클래스들이 위치하는 곳입니다.
lib 웹 애플리케이션에서 사용되는 여러 가지 라이브러리 압축 파일(jar 파일)이 저장되는 곳입니다. DB 연동 드라이버는 프레임워크 기능 관련 jar 파일이 여기에 저장됩니다. lib 디렉터리의 jar는 클래스패스가 자동으로 설정됩니다.
web.xml 배치 지시자(deployment descriptor)로서 일종의 환경 설정 파일입니다. 웹 애플리케이션에 대한 여러 가지 설정을 할때 사용됩니다.

 

WEB-INF 디렉터리 하위에 여러 가지 기능의 디렉터리를 추가하면서 실제 서비스를 제공합니다. 필요할 경우 또다시 디렉터리 안에 디렉터리를 생성하여 사용할 수 있습니다.

구성 요소 기능
jsp/html JSP 파일과 HTML 파일이 저장된 곳입니다.
css 스타일시트 파일이 저장된 곳입니다.
image 웹 애플리케이션에서 사용되는 이미지가 저장된 곳입니다.
js 자바스크립트 파일이 저장된 곳입니다.
bin 애플리케이션에서 사용되는 각종 실행 파일이 저장된 곳입니다.
conf 프레임워크에서 사용하는 각종 설정 파일이 저장된 곳입니다.
src 자바 소스 파일이 저장된 곳입니다.