
JSP(Java Server Pages)는
👉 HTML 안에 Java 코드를 넣어 웹 페이지를 만드는 기술이다.
웹 브라우저는 HTML, CSS, JS만 인식
JSP는 내부적으로 Servlet으로 변환되어 실행됨
MVC 구조에서 View 역할 담당
👉 Tomcat = 웹 서버 + 서블릿 컨테이너
Apache에서 제공하는 오픈소스
JSP와 Servlet 실행 가능
쉽게 이해하면
Tomcat = 건물
내 프로젝트 = 입주민

👉 우리는 서버를 직접 만드는 게 아니라
Tomcat 위에서 코드만 작성하면 된다
👉 웹 요청을 처리하는 Java 클래스
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
// 요청 처리
}
}
역할
클라이언트 요청 처리
HTML 응답 생성
✔ 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이 제공
✔ Smart Tomcat 설정
Server Port: 8080
Deployment directory: /src/webapp
Context path: /
Mac
lsof -i :8080
kill -9 PID
Windows
netstat -a -o | findstr 8080
taskkill /f /pid PID
👉 코드 수정 시 서버 재시작 없이 반영됨
@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 흐름이 조금씩 보이기 시작했다.