Back-end/JSP

웹 애플리케이션

메델 2023. 1. 19. 13:22

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)  톰캣 컨테이너에서 웹 애플리케이션 동작 과정 

  1. 웹 브라우저에서 컨텍스트 이름으로 요청
  2. 요청을 받은 톰캣 컨테이너는 요청한 컨텍스트 이름이 server.xml에 있는지 확인 (등록 되어 있지 않은 컨텍스트 이름으로 요청시 404 에러 발생)
  3. 해당 컨텍스트 이름이 있으면 컨텍스트 이름에 대한 실제 웹 애플리케이션이 있는 경로에 가서 요청한 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