4장 웹 애플리케이션 이해하기
(1) 웹 애플리케이션
- 기존의 정적인 웹 애플리케이션의 기능을 그대로 사용하면서 Servlet, JSP, 자바 클래스 등을 추가하여 사용자에게 동적인 서비스
- 웹 컨테이너에서 실행되는 JSP, 서블릿, 자바 클래스 들을 사용해 정적 웹 프로그래밍 방식의 단점을 보완하여 서비스를 제공하는 서버 프로그램
- 정적 웹 애플리케이션 기능 그대로 사용 가능
웹 애플리케이션 기본 구조
: 톰캣 같은 컨테이너에서 실행되는 웹 애플리케이션은 일정한 디렉토리 구조를 갖추어야한다.
기본 구조를 갖추지 않고 컨테이너에서 웹 애플리케이션 실행시 오류가 발생한다.
웹 애플리케이션 구성 요소
구성요소 | 기능 |
만든 웹 애플리케이션 이름 | 웹 애플리케이션의 루트 디렉토리 다른 웹 애플리케이션 이름과 중복이 허용 x JSP, HTML 파일 저장 |
WEB-INF | 웹 애플리케이션에 관한 정보가 저장되는 곳 이 디렉토리는 외부에서 접근 불가능 |
classes | 웹 애플리케이션이 수행하는 서블릿과 다른 일반 클래스들이 위치하는 곳 |
lib | 웹 애플리케이션에서 사용되는 여러가지 라이브러리 압축파일이 저장되는 곳 DB 연동 드라이버나 프레임워크 기능 관련 jar 파일이 저장된다 lib 디렉토리의 jar은 classpath가 자동으로 설정 |
web.xml | 배치 지시자로서 일종의 환경 설정 파일 웹 애플리케이션에 대한 설정시 사용 |
웹 애플리케이션 추가 구성 요소
구성요소 | 기능 |
jsp/html | jsp 파일과 html 파일이 저장된 곳 |
css | 스타일시트 파일이 저장된 곳 |
image | 웹 애플리케이션에서 사용되는 이미지가 저장된 곳 |
js | 자바 스크립트 파일이 저장된 곳 |
bin | 애플리케이션에서 사용되는 각종 실행 파일이 저장된 곳 |
conf | 프레임워크에서 사용하는 각종 설정 파일이 저장된 곳 |
src | 자바 소스 파일이 저장된 곳 |
(2) 컨텍스트
:server.xml에 등록하는 웹 애플리케이션
- 웹 애플리케이션당 하나의 컨텍스트가 등록된다
- 웹 애플리케이션 이름과 같을 수도 있고 다를 수도 있다.
- 컨텍스트 이름 중복 X
- 웹 애플리케이션의 의미를 가장 잘 나타낼 수 있는 명사형으로 지정
- server.xml에 등록
<Context> 태그란?
톰캣은 모든 설정 정보를 XML로 저장한 후 실행 시 정보를 읽어와 설정대로 실행
<Context> 태그 구성 요소의 기능
구성 요소 | 기능 |
path | 웹 애플리케이션의 컨텍스트 이름 웹 애플리케이션 이름과 다를 수도 있다. 웹 브라우저에서 실제 웹 애플리케이션을 요청하는 이름 |
docBase | 컨텍스트에 대한 실제 웹 애플리케이션이 위치한 경로 WEB-INF 상위 폴더까지의 경로를 나타낸다 |
reloadable | 실행 중 소스코드가 수정될 경우 바로 갱신할지 결정 |
(3) 톰캣 컨테이너에서 웹 애플리케이션 동작 과정
- 웹 브라우저에서 컨텍스트 이름으로 요청
- 요청을 받은 톰캣 컨테이너는 요청한 컨텍스트 이름이 server.xml에 있는지 확인 (등록 되어 있지 않은 컨텍스트 이름으로 요청시 404 에러 발생)
- 해당 컨텍스트 이름이 있으면 컨텍스트 이름에 대한 실제 웹 애플리케이션이 있는 경로에 가서 요청한 main.html을 클라이언트 웹 브라우저로 전송
(참고: 자바 웹을 다루는 기술)
'Back-end > JSP' 카테고리의 다른 글
Servlet 비즈니스 로직 처리 (0) | 2023.01.24 |
---|---|
Servlet 기초 (0) | 2023.01.21 |
Servlet 이란? (0) | 2023.01.20 |
프로그램의 발전 과정, 웹 프로그래밍과 JSP (0) | 2023.01.19 |