4.1 웹 애플리케이션
- 웹 애플리케이션의 정의
기존의 정적인 웹 애플리케이션의 기능을 그대로 사용하면서 이 책에서 다루는 서블릿(자바로 만든 CGI 프로그램), JSP, 자바 클래스들을 추가하여 사용자에게 동적인 서비스를 제공하는 프로그램
웹 컨테이너에서 실행되는 JSP, 서블릿, 자바 클래스들을 사용해 정적 웹 프로그래밍 방식의 단점을 보완하여 서비스를 제공하는 서버 프로그램을 웹 애플리케이션이라 함,
따라서 정적 웹 애플리케이션의 기능인 html, 자바스크립트, css 등도 웹 애플리케이션에서 그대로 사용할 수 있다.
이런 요소들과 연동하는 기능들도 다루므로 기본적으로 숙지해 두어야 함.
장별로 학습하며 jsp나 서블릿이 이런 정적인 요소들과 어떻게 연동하는지는 따로 설명함.
4.2 웹 애플리케이션의 기본 구조
실제 톰캣과 같은 웹 컨테이너에서 실행하는 웹 애플리케이션의 기본 디렉터리(폴더) 구조에 대해 살펴보자.
컨테이너에서 실행되는 모든 웹 애플리케이션은 웹 애플리케이션의 이름으로 이루어진 루트 디렉터리와 하위 디렉터리의 구조를 기본 구조로 가짐.(웹 애플리케이션 이름 -- WEB-INF -- classes, lib, web.xml)
톰캣 9 버전 부터는 xml을 추가해주어야 함.(103p)
- 웹 애플리케이션 구성 요소의 기능
구성요소 | 기능 |
webShop | 웹 애플리케이션의 루트 디렉터리. 다른 웹 애플리케이션 이름과 중복을 허용하지 않음. 여기에는 JSP HTML 파일이 저장됨. |
WEB-INF | 웹 애플리케이션에 관한 정보가 저장됨. 이 디렉터리는 외부에서 접근할 수 없음. |
classes | 웹 애플리케이션이 수행하는 서블릿과 다른 일반 클래스들이 위치하는 곳. |
lib | 웹 애플리케이션에서 사용되는 여러 가지 라이브러리 압축 파일(jar 파일)이 저장됨. DB 연동 드라이버나 프레임워크 기능 관련 jar 파일이 여기에 저장됨. lib 디렉터리의 jar는 클래스패스가 자동으로 설정됨. |
web.xml | 배치 지시자(deployment descriptor)로서 일종의 환경 설정 파일. 웹 애플리케이션에 대한 여러 가지 설정을 할 때 사용됨. |
* 웹 애플리케이션 구성요소, 기능 (105p)
bin : 애플리케이션에서 사용되는 각종 실행파일이 저장됨.
conf : 프레임워크에서 사용하는 각종 설정 파일이 저장된 곳.
src : 자바 소스 파일이 저장된 곳.
4.3 컨테이너에서 웹 애플리케이션 실행하기
웹 애플리케이션은 자바 애플리케이션과 달리 단독으로 실행할 수 없고 톰캣과 같은 웹 컨테이너에서 실행되는 구조. 따라서 웹 애플리케이션을 톰캣에 우선 등록해야함.
%CATALINA_HOME%webApp 디렉터리에 애플리케이션을 저장하거나
or server.xml에 직접 웹 애플리케이션을 등록
- 컨텍스트란?
개발 중에는 개발자가 정한 위치에 웹 애플리케이션을 생성한 후 그 위치를 server.xml에 등록해놓고 톰캣을 실행하는 식으로 개발해야 함. 이때 server.xml에 등록하는 웹 애플리케이션을 컨텍스트라 부름. 즉, 톰캣 입장에서 인식하는 한 개의 웹 애플리케이션이라 보면 됨.
- server.xml에 웹 애플리케이션 등록
server.xml은 톰캣 설치 루트 디렉터리 아래, conf 디렉터리 안에 있음.
<Host> 태그 안에 <Context> 태그를 이용해서 등록함.
- <Context> 태그 구성 요소
path : 웹 애플리케이션의 컨텍스트 이름. 웹 브라우저에서 실제 웹 애플리케이션을 요청하는 이름.
docBase : 실제 웹 애플리케이션이 위치한 경로. WEB-INF 상위 폴더까지의 경로를 나타냄.
reloadable : 실행 중 소스 코드가 수정될 경우 바로 갱신할지를 설정함.
'(책) 자바 웹을 다루는 기술' 카테고리의 다른 글
Chap 5 키워드 정리 (0) | 2023.07.27 |
---|---|
개발환경설정(3) 한글 인코딩(UTF-8), servlet-api.jar 클래스패스 설정 (0) | 2023.07.26 |
개발환경설정(2) 이클립스에 톰캣 연동 및 프로젝트 등록 (0) | 2023.07.26 |
Chap 4. 키워드 정리 (0) | 2023.07.26 |
자바 웹 프로젝트 개발환경설정(1) (0) | 2023.07.25 |