우와한 개발자

[Spring] 이클립스(Eclipse) 웹 프로젝트 환경 설정 - Dynamic Web Project 생성 및 Tomcat 설정

by 우와한개발자

Spring 실습 환경 구성을 위해 Eclipse에서 Dynamic Web Project를 생성하고 Tomcat을 설정하는 방법을 정리

1. Dynamic Web Project

1) Dynamic Web Project 생성

  • 이클립스에서 New → Dynamic Web Project 로 생성
설정 항목 설명
Context root / 로 설정해야 URL에 프로젝트명이 붙지 않음
Content directory HTML, CSS, JS 파일이 담길 폴더 (기본값: WebContent)
  • Open Perspective 를 클릭하면 이클립스 메뉴 구성이 Java EE 레이아웃으로 변경

2) Static Web Project vs Dynamic Web Project

구분 Static Web Project Dynamic Web Project
사용 기술 HTML, CSS, JS Java (Servlet, JSP) + HTML, CSS, JS
응답 방식 항상 동일한 화면 요청에 따라 다른 응답
가능한 기능 정적 페이지만 가능 게시판, 회원가입 등 동적 기능 가능

 

3) Dynamic Web Project 구조

  • 브라우저 주소창에서 직접 /WEB-INF/views/board/list.jsp 로 요청해도 접근되지 않음.
WebContent
 ┣ index.jsp
 ┣ css
 ┣ js
 ┣ images
 └ WEB-INF
    ┣ web.xml
    ┣ lib
    ┣ classes
    └ views
       └ board
          ┣ list.jsp
          └ search.jsp
폴더/파일 설명
WebContent 웹 리소스가 위치하는 기본 폴더
index.jsp 기본 시작 페이지
css, js, images 정적 리소스 보관
WEB-INF 외부에서 직접 접근할 수 없는 내부 폴더
web.xml 서블릿, 필터, init-param 등의 설정 파일
lib 필요한 라이브러리(JAR) 보관
classes 컴파일된 클래스 파일 위치
views JSP 화면 파일 보관 폴더

 

2. Servlet 생성 및 설정

1) Servlet 생성

  • New → Servlet 으로 생성
설정 항목 설명
Superclass javax.servlet.http.HttpServlet 상속 (항상 고정)
Class Name Java 클래스 이름
URL Patterns 해당 Servlet이 처리할 URL 경로 지정 (예: /user)

 

2) 주요 메서드

메서드 호출 시점 설명
init() 서블릿 최초 생성 시 초기화 작업
doGet() HTTP GET 요청 수신 시 GET 요청 처리
doPost() HTTP POST 요청 수신 시 POST 요청 처리
destroy() 서블릿 메모리 제거 직전 자원 해제

 

3) Servlet 설정 방식

  • 서블릿을 URL에 매핑하는 두가지 방법
구분 어노테이션 방식 web.xml 방식
설정 위치 Java 클래스 위에 직접 WEB-INF/web.xml 외부 파일
도입 Servlet 3.0 이상 전통적인 방식
설정 변경 시 코드 수정 + 재컴파일 xml만 수정
현재 사용 주로 사용 Spring 설정 시 사용

 

(1) 어노테이션 방식 (@WebServlet)

@WebServlet("/member")
public class MemberServlet extends HttpServlet { ... }

// 여러 URL 매핑도 가능
@WebServlet(urlPatterns = {"/member", "/user"})
public class MemberServlet extends HttpServlet { ... }

 

(2) web.xml 방식

  • WEB-INF/web.xml = Deployment Descriptor(배치 기술자)
  • Servlet, 필터, 초기화 파라미터 등 웹 관련 설정을 담는 파일
  • 두 단계로 작성 : Servlet 등록 → URL 매핑
  • servlet-name이 둘을 연결하는 다리 역할
  • request.getContextPath()는 Context root가 /일 때 빈 문자열("")을 반환
<web-app>

    <!-- Servlet 등록 : 이름과 클래스를 연결 -->
    <servlet>
        <servlet-name>memberServlet</servlet-name>
        <servlet-class>com.example.MemberServlet</servlet-class>
    </servlet>

    <!-- URL 매핑 : 이름과 URL을 연결 -->
    <servlet-mapping>
        <servlet-name>memberServlet</servlet-name>
        <url-pattern>/member</url-pattern>
    </servlet-mapping>

</web-app>

3. Tomcat 설정

1) JavaSE vs JavaEE, javax vs jakarta

  • Servlet은 Java SE에 포함되지 않고 Java EE(Jakarta EE)에 포함되어 있음
  • 따라서 생성 직후 javax.servlet 패키지가 import 되지 않으며, 런타임 환경(Tomcat)을 별도로 설정해야 컴파일 가능

 

2) Servlet 버전과 Tomcat 버전 호환성

  • Servlet 버전에 따라 사용할 수 있는 Tomcat 버전과 패키지명이 달라짐.
  • Tomcat 10부터 패키지명이 javax → jakarta 로 변경됨.
  • 버전을 잘못 맞추면 import가 안 되거나 런타임 오류가 발생하니 반드시 확인해야 한
  • 서블릿 버전 3.0으로 프로젝트를 생성한 경우 → Tomcat 9사용
  • 버전 확인 : https://tomcat.apache.org/whichversion.html
 

Apache Tomcat® - Which Version Do I Want?

Apache Tomcat® is an open source software implementation of a subset of the Jakarta EE (formally Java EE) technologies. Different versions of Apache Tomcat are available for different versions of the specifications. The mapping between the specifications

tomcat.apache.org

Servlet 버전 Tomcat 버전 패키지명
5.0 이상 Tomcat 10 이상 jakarta.servlet
4.0 이하 Tomcat 9 이하 javax.servlet

 

3) Server Runtime 설정

  • 컴파일 시 Servlet 관련 클래스를 참조할 수 있도록 IDE에 Tomcat을 등록
  • 컴파일 시 : javax.servlet 같은 Servlet 클래스를 IDE가 인식할 수 있어 빨간줄(컴파일 에러)이 사라짐
  • 배포 시 : Servlet 라이브러리는 Tomcat이 이미 제공하므로, .war에 중복으로 포함시키지 않고 Tomcat 것을 그대로 사용
Window → Preferences → Server → Runtime Environments
→ Add → Apache Tomcat v9.0 → Next
→ Tomcat installation directory에 압축 해제한 폴더 선택
→ Finish → Apply and Close

 

4) Build Path 설정

  • 프로젝트에 Tomcat 라이브러리 추가
  • Server Runtime 설정이 "이클립스에 Tomcat을 등록" 하는 것이라면, Build Path 설정은 "이 프로젝트에서 그 Tomcat을 쓰겠다" 고 연결하는 것
프로젝트 우클릭 → Build Path → Configure Build Path...
→ Add Library... → Server Runtime → Apache Tomcat v9.0
→ Finish → Apply and Close
구분 Server Runtime 설정
Build Path 설정
대상 IDE 전체 (이클립스) 현재 프로젝트
역할 Tomcat 위치를 IDE에 등록 등록된 Tomcat을 프로젝트에 연결
순서 먼저 해야 함 Server Runtime 설정 후에 가능
  • jar vs war vs ear 비교
확장자 포함 내용 용도
.jar Java 클래스 일반 Java 라이브러리
.war Java + HTML, CSS, JS 웹 애플리케이션 배포
.ear 여러 모듈(jar, war) 엔터프라이즈 애플리케이션

 

4. Server 실행

  • 이클립스 내장 브라우저 또는 외부 브라우저에서 자동으로 열림
  • 기본 주소 : http://localhost:8080/
  • Context root를 /로 설정했기 때문에 URL에 프로젝트명이 붙지 않음
  • Context root를 프로젝트명 그대로 뒀다면 http://localhost:8080/프로젝트명/ 으로 접근해야함.
프로젝트 우클릭 → Run on Server
→ Next → 실행할 프로젝트를 오른쪽으로 이동
→ Finish

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기