
스프링 mvc 를 시작하기 전에 스프링 동작하는 서블렛 에 대해 공부해 보기로 했다. 일단 서버를 띄우기 위해 톰캣을 설치하고 intellij와 연동하여 8080 서버를 띄워보는것을 목표로 했다.
macOS에서는 Homebrew 패키지 매니저를 통해 간편하게 Tomcat을 설치할 수 있다. 버전은 안정적으로 9버전을 사용해보겠다.
# Tomcat 9 설치
brew install tomcat@9
설치가 완료되면 다음 경로에 설치된다.
/opt/homebrew/opt/tomcat@9/libexec
해당 디렉토리에는 Tomcat의 실행 파일들이 포함되어 있으며, 아래 명령어로 서버를 실행하거나 종료할 수 있습니다:
# Tomcat 실행
/opt/homebrew/opt/tomcat@9/libexec/bin/startup.sh
# Tomcat 종료
/opt/homebrew/opt/tomcat@9/libexec/bin/shutdown.sh
build.gradle 파일에 다음과 같이 추가합니다:
dependencies {
implementation 'jakarta.servlet:jakarta.servlet-api:5.0.0'
}
HttpServlet 클래스 구조 및 동작 방식HttpServlet은 HTTP 요청을 처리하고 응답을 생성하는 서블릿 개발의 핵심 클래스입니다.
클래스를 상속받아 doGet(), doPost() 등을 오버라이딩하면 클라이언트의 요청을 처리할 수 있습니다.
java.lang.Object
└─ jakarta.servlet.GenericServlet
└─ jakarta.servlet.http.HttpServlet
| 메서드 | 설명 |
|---|---|
doGet(HttpServletRequest req, HttpServletResponse resp) | GET 요청 처리 |
doPost(HttpServletRequest req, HttpServletResponse resp) | POST 요청 처리 |
service(HttpServletRequest req, HttpServletResponse resp) | 요청 메서드에 따라 doGet() 또는 doPost()로 분기 처리 |
HttpServlet.service() 메서드 호출doGet() 또는 doPost() 호출@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/plain");
resp.getWriter().write("Hello, Jakarta EE!");
}
}
@WebServlet("/hello"): 이 서블릿은 /hello 경로로 들어온 요청을 처리doGet()은 GET 요청 처리HttpServletResponse 객체를 통해 응답 본문을 클라이언트에 전달| 구성 요소 | 역할 |
|---|---|
GenericServlet | 서블릿 기본 구조 제공 (비HTTP도 지원) |
HttpServlet | HTTP 요청에 특화된 서블릿 |
doGet() / doPost() | HTTP 요청에 대한 처리 메서드 |
@WebServlet | URL과 서블릿 매핑 |
| Tomcat | 서블릿 실행 환경 (컨테이너) |

8080 에서 확인!