웹 어플리케이션
- 기존의 정적인 웹 어플리케이션의 기능을 그대로 이용하면서 Servlet, JSP, Java class를 추가하여 사용자에게 동적인 서비스를 제공하는 프로그램을 말한다.
- 웹 컨테이너에서 실행되는 JSP, Servlet, Java class들을 사용해 정적 웹 프로그래밍 방식의 단점을 보완하여 서비스를 제공하는 서버 프로그램을 웹 어플리케이션이라고 한다.
웹 어플리케이션의 기본 구조
- 톰캣 = 웹 컨테이너
- 웹 어플리케이션 구성요소의 기능
./
: 루트 디렉토리. 다른 웹 어플리케이션과 중복 불가능. JSP, HTML파일 저장됨../WEB-INF
: 웹 어플리케이션의 정보가 저장됨. 외부에서 접근 불가능../WEB-INF/classes
: 서블릿과 다른 일반 클래스들이 위치하는 곳../WEB-INF/lib
: 라이브러리가 위치하는 곳../WEB-INF/web.xml
: deployment descriptor. 웹 어플리케이션에 대한 환경설정파일.
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">
<display-name>webShop</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
컨테이너에 웹 어플리케이션 등록
- 톰캣 컨테이너에 웹 어플리케이션을 등록하는 방법은 두가지가 있다
%CATALINA_HOME%webApps
디렉토리에 어플리케이션을 저장server.xml
에 직접 웹어플리케이션을 지정
%CATALINA_HOME%
는 톰캣 루트 디렉토리로 묵시적 약속되어있다.- 생성한 웹 어플리케이션 폴더를 톰캣의 webapps 아래로 복사한다.
- webapps아래 main.html파일을 만든다
- 톰캣을 실행해
http://localhost/applicationName/main.html
을 입력하면 웹페이지가 표시된다.
임의로 위치한 웹 어플리케이션을 지정
Context
server.xml
에 등록하는 웹 어플리케이션을 Context라고 부른다. 컨테이너 입장에서 인식하는 한 개의 웹 어플리케이션이라고 보면 된다.- Context는 다음의 특징을 가진다.
- 웹 어플리케이션당 하나의 context를 등록한다.
- 웹 어플리케이션 이름과 같을 수도 있고 다를 수도 있다.
- context이름은 중복 되면 안된다.
- 이름은 명사형으로 지정한다.
- 대소문자를 구분한다
server.xml
에 등록한다.
톰캣 컨테이너에에 컨텍스트 등록하기
server.xml
내에<Host>
태그 안에 다음과 같은 context 태그를 추가한다.
<Context path="/website"
docBase="/source/path"
reloadable="true" />
- 이경우
http://localhost/website
가 웹 어플리케이션의 접근 주소가 된다.
Intellij에서 서블릿 프로젝트 만들기
- 빌드 후 Run해보면 실행이 잘 되는것을 알 수 있다.