java-school logo
Last Modified 2014.8.4

개발 준비

Dynamic Web Project 선택해서 새로운 프로젝트 생성

시스템에 톰캣과 이클립스가 설치되어 있어야 하고, 이클립스에는 WTP 플러그인이 설치되어 있어야 한다. 이클립스 버전에 따라 WTP 설치가 쉽지 않을 수 있는데, 이런 경우 WTP가 포함되어 있는 Eclipse IDE for Java EE Developers를 새로 설치하자.
이클립스를 시작한다.(여기서는 워크스페이스를 C:/www라고 정하고 진행한다.)
Java EE 퍼스펙티브에서 Dynamic Web Project를 선택하여 새로운 프로젝트를 생성한다.
(서블릿JSP장의 예제는 Java Project에서 진행했었다.)

Dynamic Web Project 생성

1. New - Dynamic Web Project 를 선택한다.
2. Dynamic Web Proejct 를 이용해서 새로운 프로젝트를 생성한다.
프로젝트 이름을 JSPProject라 하겠다.
이클립스와 톰캣을 연동하지 않을 것이다.
프로젝트 이름 외의 설정은 디폴트로 그대로 두고 'Next'을 계속 클릭하여 마무리한다.
3. 이클립스에서 Dynamic WebProject 를 선택해서 새로운 프로젝트를 생성하는데 프로젝트명은 JSPProject로 한다.
4. Dynamic WebProject 로 프로젝트를 생성할 때 웹컨텐츠를 두는 기본 폴더는 WebContent 이다.
프로젝트가 생성이 완료된 다음에 개발을 편하게 하기 위해서 Build Path를 변경하다.
Package Explorer 뷰에서 프로젝트를 마우스로 선택하고 마우스 오른쪽 키를 클릭하여 아래 그림처럼 메뉴가 나타나도록 한다.
메뉴에서 Build Path, Configure Build Path... 를 차례로 선택한다.
5. 개발을 편하게 하기 위해서 Dynamic WebProject의 기본 output 폴더인 build 를 WEB-INF/classes 로 바꾸기 위해 Build Path  를 선택한다.
이어지는 화면에서 Source 탭을 선택한다.
source tab를 선택한다.
소스 화면 하단 Default output folder: 의 오른쪽의 Browse... 버튼을 클릭하면 Folder Selection 화면이 나타난다.
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 를 확인하는 설정 화면이다.
참고로 Dynamic Web Project 로 생성했을 경우 JSPProject/build 란 폴더가 Default output 폴더로서 만들어진다.
다음은 탐색기에서 본 JSPProject 프로젝트의 디렉토리이다.
4. 이클립스에서 워크스페이스를 C:/www 로, 프로젝트명을 JSPProject 로 해서 프로젝트를 생성했을 때 디렉토리 구조를 보이는 화면

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

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

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

웹 애플리케이션과 JSPProjext.xml 파일에 이상이 없다면 톰캣은 JSPProject 애플리케이션을 등록하고 서비스한다.
여기서 {톰캣홈} 은 톰캣이 설치된 최상위 디렉토리를 말한다.
윈도우 시스템이고 톰캣 7을 설치했을 경우 {톰캣홈} 은
C:\Program Files\Apache Software Foundation\Tomcat 7.0 이고 JSPProject.xml 파일은 C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost 에 저장되어야 한다.
JSPProject.xml 내용중에 docBase 의 값이 C:/www/JSPProject 가 아니라는 점에 조심해야 한다.
WEB-INF 바로 위 디렉토리가 도큐먼트베이스이다.

WEB-INF/web.xml

web.xml 은 웹 애플리케이션에 대한 설정파일이다.
이클립스에서 Dynamic Web Project 로 프로젝트를 생성했다면 web.xml 이 자동으로 만들어질 수 있다.
만일 만들어지지 않았다면 {톰캣홈}/webapps 에 있는 ROOT 애플리케이션의 web.xml 파일을 복사해서 JSPProject 의 WEB-INF 디렉토리에 붙여넣는다.
그다음, 붙여넣기한 web.xml 파일을 열고 web-app 엘리먼트의 내용을 모두 지운다.

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<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_3_1.xsd"
  version="3.1"
  metadata-complete="true">

</web-app>

테스트

톰캣이 JSPProject 를 서비스하고 있는지 확인하자.
도큐먼트 베이스에 test.html 파일을 만든다.
아래 그림처럼 WebContent 를 선택한 상태에서 마우스 오른쪽 버튼을 클릭한 후 New -- HTML File 를 차례로 선택한다.
웹 애플리케이션이 톰캣에 등록한 후에 테스트하기 위해서 웹 애플리케이션의 루트 디렉토리에 test.html 이라는 파일을 만드는 화면이다.
http://localhost:port/JSPProject/test.html를 방문해서 톰캣이 웹 애플리케이션을 서비스하는지 확인한다.
여기서 port는 톰캣이 사용하는 포트 번호이다.
{톰캣홈}/conf/server.xml 파일에서 포트번호를 확인할 수 있다.

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

JSP 페이지

구현하려는 프로젝트는 모델1 게시판이다.
모델1은 클라이언트가 직접 JSP를 요청한다.
그러므로 모델1에서는 주인공이 JSP 라고 할 수 있다.