다이나믹 웹 프로젝트
이클립스(Eclipse IDE for Java EE Developers)와 톰캣이 설치되어 있어야 합니다.
이클립스 설치와 톰캣 설치를 참조하세요.
이클립스를 시작하고 워크스페이스를 C:/www로 지정한다.
퍼스텍티브를 Java EE로 바꾼 후, 아래 그림처럼 Dynamic Web Project를 생성한다.
프로젝트 이름을 JSPProject라 하겠다.
이클립스와 톰캣을 연동하지 않을 것이니, 프로젝트 이름 외 설정은 수정하지 않고 디폴트 값을 그대로 사용한다.
프로젝트가 만들어진 후 Build Path를 변경해야 한다.
아래 그림처럼 Build Path, Configure Build Path... 를 차례로 선택한다.
이어지는 화면에서 Source 탭을 선택한다.
화면 하단 Default output folder: 의 오른쪽의 Browse... 버튼을 클릭하면 Folder Selection 화면이 나타난다.
Create New Folder... 버튼을 클릭하여 WEB-INF/classes 폴더를 생성하고, WEB-INF/classes 폴더가 Default output 폴더가 되도록 설정한다.
Default output 폴더가 JSPProject/WebContent/WEB-INF/classes 인지 확인한다.
참고로, JSPProject/build 폴더가 원래 Default output 폴더다.
Default output 폴더를 /WEB-INF/classes로 바꾸었으니 더는 build 폴더는 필요 없다.
설정이 끝난 후 탐색기에서 본 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 를 차례로 선택한다.
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" />