다이나믹 웹 프로젝트

이클립스(Eclipse IDE for Java EE Developers)와 톰캣이 설치되어 있어야 합니다.
이클립스 설치톰캣 설치를 참조하세요.

이클립스를 시작하고 워크스페이스를 C:/www로 지정한다.
퍼스텍티브를 Java EE로 바꾼 후, 아래 그림처럼 Dynamic Web Project를 생성한다.

1. New - Dynamic Web Project 를 선택한다.
2. Dynamic Web Proejct 를 이용해서 새로운 프로젝트를 생성한다.
프로젝트 이름을 JSPProject라 하겠다.
이클립스와 톰캣을 연동하지 않을 것이니, 프로젝트 이름 외 설정은 수정하지 않고 디폴트 값을 그대로 사용한다.
3. 이클립스에서 Dynamic WebProject 를 선택해서 새로운 프로젝트를 생성하는데 프로젝트명은 JSPProject로 한다.
4. Dynamic WebProject 로 프로젝트를 생성할 때 웹컨텐츠를 두는 기본 폴더는 WebContent 이다.
프로젝트가 만들어진 후 Build Path를 변경해야 한다.
아래 그림처럼 Build Path, Configure Build Path... 를 차례로 선택한다.
5. 개발을 편하게 하기 위해서 Dynamic WebProject의 기본 output 폴더인 build 를 WEB-INF/classes 로 바꾸기 위해 Build Path  를 선택한다.
이어지는 화면에서 Source 탭을 선택한다.
source tab를 선택한다.
화면 하단 Default output folder: 의 오른쪽의 Browse... 버튼을 클릭하면 Folder Selection 화면이 나타난다. Create New Folder... 버튼을 클릭하여 WEB-INF/classes 폴더를 생성하고, WEB-INF/classes 폴더가 Default output 폴더가 되도록 설정한다.
Build Path를 선택해서 나오는 설정화면에서 source 탭을 클릭한다. 아래 Default output Folder 옆의 Browser 를 클릭한 다음 Create New Folder 를 클릭하여 WEB-INF아래 classes 폴더를 만들고 이 폴더를 선택한다.
Default output 폴더가 JSPProject/WebContent/WEB-INF/classes 인지 확인한다.
변경하려는 Build Path, JSPProject/WebContent/WEB-INF/classes 를 확인하는 설정 화면이다.
참고로, JSPProject/build 폴더가 원래 Default output 폴더다.
Default output 폴더를 /WEB-INF/classes로 바꾸었으니 더는 build 폴더는 필요 없다.
설정이 끝난 후 탐색기에서 본 JSPProject 프로젝트의 디렉터리는 다음과 같다.
4. 이클립스에서 워크스페이스를 C:/www 로, 프로젝트명을 JSPProject 로 해서 프로젝트를 생성했을 때 디렉토리 구조를 보이는 화면

JSPProject 웹 애플리케이션을 톰캣에 등록

톰캣이 우리가 만든 JSPProject 웹 애플리케이션을 등록하고 서비스하도록 해야 한다.
아래와 같은 내용으로 ROOT.xml 파일을 만들고, CATALINA_HOME/conf/Catalina/localhost 에 저장한 다음 톰캣을 재실행한다.
--기존 ROOT.xml을 덮어쓴다.--

ROOT.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context
	docBase="C:/www/JSPProject/WebContent"
	reloadable="true">
</Context>

웹 애플리케이션과 JSPProjext.xml 파일에 이상이 없다면 톰캣은 JSPProject 애플리케이션을 등록하고 서비스한다.
여기서 CATALINA_HOME 은 톰캣이 설치된 최상위 디렉토리를 말한다.
톰캣 9을 C:\ 드라이브에 설치다면 CATALINA_HOME은 C:\apache-tomcat-9.0.87이다. ROOT.xml 파일은 C:\apache-tomcat-9.0.87\conf\Catalina\localhost에 저장해야 한다.
ROOT.xml에서 docBase 값이 C:/www/JSPProject가 아니라는 점에 주의한다.
WEB-INF 바로 위 디렉토리가 도큐먼트베이스이다.

WEB-INF/web.xml

web.xml 은 웹 애플리케이션 설정 파일이다.
CATALINA_HOME/webapps 에 있는 ROOT 애플리케이션의 web.xml 파일을 복사해서 JSPProject의 WEB-INF 디렉토리에 붙여넣는다.
붙여넣기한 web.xml 파일을 열고 web-app 엘리먼트의 내용을 모두 지운다.

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

</web-app>

테스트

도큐먼트 베이스에 test.html 파일을 만든다.
아래 그림처럼 WebContent 를 선택한 상태에서 마우스 오른쪽 버튼을 클릭한 후, New -- HTML File 를 차례로 선택한다.
웹 애플리케이션이 톰캣에 등록한 후에 테스트하기 위해서 웹 애플리케이션의 루트 디렉토리에 test.html 이라는 파일을 만드는 화면이다.
http://localhost:8080/test.html를 방문해서 톰캣이 웹 애플리케이션을 서비스하는지 확인한다.

톰캣 포트가 8080이 아닐 수 있다. CATALINA_HOME/conf/server.xml 파일에서 포트 번호를 확인한다.

<Connector port="8080" protocol="HTTP/1.1" 
	connectionTimeout="20000" 
	URIEncoding="UTF-8"
	redirectPort="8443" />