[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
'프레임워크 > Spring' 카테고리의 다른 글
블로그의 정보
우와한개발자 님의 블로그
우와한개발자