카테고리 없음

서블릿(Servlet)이란?

신정훈 2025. 3. 11. 16:49

서블릿(Servlet)이란?

서블릿(Servlet)은 Java EE(Enterprise Edition) 환경에서 웹 애플리케이션을 개발할 때 사용되는 서버 측 기술입니다. 클라이언트의 요청을 처리하고 동적인 웹 페이지를 생성하는 역할을 하며, Java로 작성된 클래스입니다.

서블릿의 특징

  1. 플랫폼 독립성: Java로 개발되므로 다양한 운영체제에서 실행할 수 있습니다.
  2. HTTP 요청 및 응답 처리: GET, POST 등의 요청을 처리하여 웹 페이지를 동적으로 생성할 수 있습니다.
  3. 멀티스레드 지원: 하나의 서블릿 인스턴스가 여러 클라이언트의 요청을 동시에 처리할 수 있습니다.
  4. JSP와의 연동 가능: 서블릿은 JSP(Java Server Pages)와 함께 사용하여 MVC(Model-View-Controller) 패턴을 구현할 수 있습니다.

서블릿의 동작 방식

  1. 클라이언트 요청: 사용자가 웹 브라우저를 통해 특정 URL을 요청합니다.
  2. 서블릿 컨테이너가 요청 처리: 요청이 들어오면 서블릿 컨테이너(Tomcat 등)가 해당 요청을 적절한 서블릿으로 전달합니다.
  3. 서블릿 실행: 서블릿의 service() 메서드가 호출되며, HTTP 요청 방식에 따라 doGet() 또는 doPost() 메서드가 실행됩니다.
  4. 응답 반환: 서블릿은 클라이언트에게 HTML, JSON 등의 데이터를 응답으로 보냅니다.

서블릿 구현 예제

아래는 간단한 서블릿을 구현하는 예제 코드입니다.

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
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 {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>Hello, Servlet!</h1>");
        out.println("</body></html>");
    }
}

코드 설명

  • @WebServlet("/hello"): 해당 서블릿이 /hello 경로에서 동작하도록 설정합니다.
  • doGet() 메서드: GET 요청이 들어오면 HTML 응답을 반환합니다.
  • PrintWriter: HTTP 응답을 클라이언트에게 출력하는 역할을 합니다.

서블릿의 라이프사이클

  1. 서블릿 로드 및 인스턴스 생성: 최초 요청 시 서블릿이 메모리에 로드되고 인스턴스가 생성됩니다.
  2. 초기화 (init() 메서드 호출): 서블릿이 초기화되며, 한 번만 실행됩니다.
  3. 요청 처리 (service() 메서드 호출): 클라이언트 요청이 있을 때마다 실행됩니다.
  4. 소멸 (destroy() 메서드 호출): 컨테이너가 서블릿을 제거할 때 한 번 실행됩니다.

서블릿과 JSP 비교

항목서블릿JSP

코드 구성 Java 코드 중심 HTML 코드 중심
가독성 비교적 어려움 쉬움
유지보수 어렵다 비교적 쉽다
성능 빠름 서블릿으로 변환되므로 약간 느릴 수 있음

마무리

서블릿은 Java 웹 애플리케이션 개발의 기초가 되는 중요한 기술입니다. JSP와 연동하여 동적인 웹 페이지를 구현할 수 있으며, Spring과 같은 프레임워크의 기반이 되기도 합니다. 실무에서는 직접 서블릿을 구현하기보다는 Spring MVC 같은 프레임워크를 사용하는 경우가 많지만, 서블릿의 동작 원리를 이해하면 더욱 효과적으로 웹 애플리케이션을 개발할 수 있습니다.