260416_복습

정한결·2026년 4월 17일

JSP / Servlet / Tomcat 기본 개념 및 프로젝트 세팅

1. JSP란?

JSP(Java Server Pages)는
👉 HTML 안에 Java 코드를 넣어 웹 페이지를 만드는 기술이다.

특징

웹 브라우저는 HTML, CSS, JS만 인식
JSP는 내부적으로 Servlet으로 변환되어 실행됨
MVC 구조에서 View 역할 담당

2. Tomcat이란?

👉 Tomcat = 웹 서버 + 서블릿 컨테이너

Apache에서 제공하는 오픈소스
JSP와 Servlet 실행 가능
쉽게 이해하면
Tomcat = 건물
내 프로젝트 = 입주민

👉 우리는 서버를 직접 만드는 게 아니라
Tomcat 위에서 코드만 작성하면 된다

3. Servlet이란?

👉 웹 요청을 처리하는 Java 클래스

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
        // 요청 처리
    }
}

역할

클라이언트 요청 처리
HTML 응답 생성

4. 프로젝트 세팅

✔ Maven 기반 프로젝트 생성
Build System: Maven
JDK: 21
✔ 필수 의존성 추가

<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
</dependency>

✔ provided 의미

👉 컴파일 시에만 필요
👉 실행 시에는 Tomcat이 제공

5. Tomcat 설정

✔ Smart Tomcat 설정

Server Port: 8080
Deployment directory: /src/webapp
Context path: /

6. 포트 충돌 해결

Mac

lsof -i :8080
kill -9 PID
Windows
netstat -a -o | findstr 8080
taskkill /f /pid PID

7. 개발 생산성 (핫 리로드)

👉 코드 수정 시 서버 재시작 없이 반영됨

8. Servlet 예제 (구구단)

@WebServlet("/gugudan")
public class GugudanServlet extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
        int dan = Integer.parseInt(req.getParameter("dan"));
        int limit = Integer.parseInt(req.getParameter("limit"));

        for (int i = 1; i <= limit; i++) {
            resp.getWriter().append("%d * %d = %d".formatted(dan, i, dan * i));
        }
    }
}

👉 URL 예시

/gugudan?dan=5&limit=12

🚀 핵심 정리

JSP = View
Servlet = Controller
Tomcat = 실행 환경 (서버)

-> 웹 개발의 기본 구조는 이미 Tomcat이 제공하고 우리는 로직만 작성하면 된다

💡 느낀 점

웹 개발은 처음부터 모든 걸 만드는 게 아니라 이미 만들어진 서버 위에서 동작한다는 점이 인상적이었다.
JSP → Servlet → Tomcat 구조가 이해되면서 MVC 흐름이 조금씩 보이기 시작했다.

0개의 댓글