v0
★ MILESTONE LAB

Tomcat 위에 첫 자바 코드 띄우기

Hello Servlet — 실습 / 소요 시간: 약 30분

📍 지금 어디를 만지고 있나요?
브라우저
Tomcat
Servlet
Controller
DB

사전 준비

이번 실습의 목표

Eclipse 에서 Dynamic Web Project 를 만들고, Tomcat 서버를 연결한 뒤, 가장 단순한 Servlet 한 개로 브라우저에 「Hello, World」를 띄웁니다.

1
Eclipse 에 Tomcat 서버 등록
  1. Eclipse 메뉴: WindowPreferences
  2. 왼쪽 검색창에 「Server」입력 → Server > Runtime Environments 선택
  3. Add 버튼 → Apache Tomcat 버전 선택 → Next
  4. 「Tomcat installation directory」에 압축 푼 Tomcat 폴더 경로 지정 → Finish
스크린샷
Eclipse Preferences 의 Server Runtime Environments 화면. Tomcat 이 등록된 후의 모습
CHECKPOINT
  • 등록 후 Tomcat 항목이 목록에 보이나요?
2
Dynamic Web Project 생성
  1. 메뉴: FileNewDynamic Web Project
  2. Project name: hello-web
  3. Target runtime: 위에서 등록한 Tomcat 선택
  4. Finish
CHECKPOINT
  • Project Explorer 에 hello-web 프로젝트가 보이나요?
  • 그 안에 src, WebContent(또는 src/main/webapp) 가 보이나요?
3
HelloServlet 클래스 작성
  1. src(또는 src/main/java)에서 우클릭 → NewClass
  2. Package: hello
  3. Name: HelloServlet
  4. Finish
  5. 아래 코드로 내용 채우기:
package hello;

import java.io.IOException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req,
                         HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/html;charset=UTF-8");
        resp.getWriter().write("<h1>Hello, World</h1>");
    }
}
빨간 줄이 사라지지 않는다면

Servlet API 가 클래스패스에 없는 상태입니다. Project Properties → Project Facets 에서 Dynamic Web Module 이 켜져 있는지, Targeted Runtime 에 Tomcat 이 체크되어 있는지 확인.

CHECKPOINT
  • 코드에 빨간 줄(컴파일 오류)이 없나요?
  • @WebServlet 의 import 가 javax.servlet.annotation.WebServlet 로 되었나요?
4
Run on Server
  1. 프로젝트(또는 HelloServlet 파일) 우클릭 → Run AsRun on Server
  2. Tomcat 선택 → Finish
  3. Eclipse 가 Tomcat 을 켜는 동안 잠깐 기다림 (Console 창에 로그 흐름)
스크린샷
Eclipse Console 창에 Tomcat 시작 로그가 출력된 화면. 마지막에 Server startup in XXXX ms 메시지
CHECKPOINT
  • Console 마지막에 「Server startup in ...」 같은 메시지가 보이나요?
  • 빨간 글씨(에러)가 없는지 한 번 더 확인
5
브라우저에서 첫 응답 보기
  1. 크롬을 열고 주소창에 입력:
http://localhost:8080/hello-web/hello

※ 컨텍스트 경로(hello-web) 부분은 강사가 안내한 값과 다를 수 있습니다.

예상 결과

화면에 큰 글씨로 Hello, World 가 보입니다.

스크린샷
크롬 주소창에 localhost:8080/hello-web/hello 가 적힌 상태에서 "Hello, World" 가 큰 글씨로 보이는 화면
CHECKPOINT — 그 결과를 만든 흐름
  • 방금 일어난 일: ① 브라우저가 GET 요청을 보냄 → ② Tomcat 이 받음 → ③ HelloServlet.doGet() 실행 → ④ 응답을 만들어 돌려줌 → ⑤ 브라우저가 화면에 그림
  • F12 Network 탭에서 이 요청을 클릭해서 실제 응답 헤더와 바디를 한 번 더 확인해보세요.
6
자주 만나는 오류와 해결
증상 원인 / 해결
404 Not Found URL 경로 오타. /hello-web/hellohello-web 이 프로젝트 컨텍스트와 다를 수 있음.
500 Server Error 코드 안에서 예외 발생. Console 의 빨간 글씨 스택 트레이스 확인.
한글 깨짐 resp.setContentType("text/html;charset=UTF-8") 누락.
포트 충돌 8080 이 이미 사용 중. Tomcat 의 server.xml 에서 포트 변경 또는 사용 중 프로세스 종료.

실습 완료 체크리스트

Eclipse 에 Tomcat Runtime 등록 완료
Dynamic Web Project 생성
HelloServlet 클래스 작성 (빨간 줄 없음)
Run on Server 로 Tomcat 가동
브라우저에서 「Hello, World」 응답 확인
F12 Network 탭에서 200 응답 확인
「내가 짠 자바 코드가 Tomcat 안에서 돌아가서 응답을 만들었다」를 입으로 말할 수 있다