Post

Servlet 시작하기

자바 서블릿의 기초와 요청 구조를 이해하기 🚀

Servlet 시작하기

프로젝트 세팅부터 요청 구조 이해까지

Servlet은 자바 기반 웹 애플리케이션 개발의 기초가 되는 기술입니다. 이번 포스팅에서는 프로젝트 설정부터 서블릿의 기본 흐름과 HttpServletRequest를 활용한 요청 메시지의 처리 과정을 배웁니다. 🛠️


1. 프로젝트 세팅: Spring Boot로 환경 구성하기

왜 Spring Boot를 사용할까요?

서블릿은 본래 톰캣(Tomcat) 같은 WAS(Web Application Server)에 직접 배포해야 했습니다. 하지만 Spring Boot는 톰캣 서버를 내장하고 있어, 설정과 실행 과정이 훨씬 간편합니다.

빠른 프로젝트 세팅

  1. Spring Initializr에서 설정:
    • Project: Gradle
    • Language: Java
    • Spring Boot Version: 3.x.x
    • Dependencies: Spring Web, Lombok
  2. WAR 패키지 선택: JSP와 같은 기능을 지원하려면 WAR 패키징이 필요합니다.

  3. Lombok 설치:
    • IntelliJ에서 File > Settings > Plugins로 이동.
    • Lombok 플러그인을 설치 후 재시작.
    • Enable Annotation Processing 활성화.
  4. Postman 설치 (선택 사항): API 테스트에 유용한 도구.

프로젝트 초기 설정이 완료되었으면,
localhost:8080에서 톰캣 서버의 기본 페이지를 확인해보세요.


2. 서블릿의 기본 구조와 동작 이해하기

서블릿의 시작은 간단한 HelloServlet 작성에서 출발합니다.

서블릿 등록 및 호출 흐름

  1. @ServletComponentScan 애노테이션으로 서블릿 자동 등록.
  2. @WebServlet 애노테이션으로 URL 매핑:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    @WebServlet(name = "helloServlet", urlPatterns = "/hello")
    public class HelloServlet extends HttpServlet {
        @Override
        protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
            response.setContentType("text/plain");
            response.setCharacterEncoding("UTF-8");
            response.getWriter().write("Hello, World!");
        }
    }
    
  3. 브라우저에서 http://localhost:8080/hello로 접근하면 응답 메시지로 "Hello, World!"가 출력됩니다.

WAR 패키징이 아닌 JAR로 설정하면 JSP나 일부 서블릿 기능이 정상적으로 동작하지 않을 수 있습니다.


3. HttpServletRequest

HttpServletRequest는 클라이언트 요청 메시지의 모든 데이터를 다룹니다.

HTTP 요청 메시지의 구조

  • Start Line: 요청 메서드(GET, POST), URL, HTTP 버전.
  • Header: 클라이언트의 메타데이터(예: Content-Type).
  • Body: 실제 데이터(JSON, Form 데이터 등).

주요 메서드

  1. 쿼리 파라미터 조회:
    1
    
    String username = request.getParameter("username");
    
  2. 요청 속성(Attribute) 관리:
    • 데이터 저장: request.setAttribute("key", value);
    • 데이터 조회: request.getAttribute("key");
  3. 요청 데이터 로깅 (개발 시 디버깅 용도):
    • application.properties에 설정 추가:
      1
      
      logging.level.org.apache.coyote.http11=debug
      

요청 헤더와 바디 데이터를 효율적으로 파악하려면 Postman이나 브라우저 개발자 도구를 활용하세요.


마무리: 서블릿 기초 다지기

이번 포스팅에서는 서블릿 환경 설정, 기본 동작 흐름, 그리고 HttpServletRequest를 활용한 요청 메시지 처리 방식을 다뤘습니다. 💡

  • Servlet 시작점: 프로젝트 세팅과 간단한 HelloServlet 작성.
  • HttpServletRequest: 요청 메시지의 파싱과 처리.

다음 포스팅에서는 MVC 패턴Servlet의 활용에 대해 학습하겠습니다 🚀

This post is licensed under CC BY 4.0 by the author.