Servlet 시작하기
자바 서블릿의 기초와 요청 구조를 이해하기 🚀
Servlet 시작하기
프로젝트 세팅부터 요청 구조 이해까지
Servlet은 자바 기반 웹 애플리케이션 개발의 기초가 되는 기술입니다. 이번 포스팅에서는 프로젝트 설정부터 서블릿의 기본 흐름과 HttpServletRequest
를 활용한 요청 메시지의 처리 과정을 배웁니다. 🛠️
1. 프로젝트 세팅: Spring Boot로 환경 구성하기
왜 Spring Boot를 사용할까요?
서블릿은 본래 톰캣(Tomcat) 같은 WAS(Web Application Server)에 직접 배포해야 했습니다. 하지만 Spring Boot는 톰캣 서버를 내장하고 있어, 설정과 실행 과정이 훨씬 간편합니다.
빠른 프로젝트 세팅
- Spring Initializr에서 설정:
- Project: Gradle
- Language: Java
- Spring Boot Version: 3.x.x
- Dependencies: Spring Web, Lombok
WAR 패키지 선택: JSP와 같은 기능을 지원하려면 WAR 패키징이 필요합니다.
- Lombok 설치:
- IntelliJ에서
File > Settings > Plugins
로 이동. - Lombok 플러그인을 설치 후 재시작.
Enable Annotation Processing
활성화.
- IntelliJ에서
- Postman 설치 (선택 사항): API 테스트에 유용한 도구.
프로젝트 초기 설정이 완료되었으면,
localhost:8080
에서 톰캣 서버의 기본 페이지를 확인해보세요.
2. 서블릿의 기본 구조와 동작 이해하기
서블릿의 시작은 간단한 HelloServlet
작성에서 출발합니다.
서블릿 등록 및 호출 흐름
@ServletComponentScan
애노테이션으로 서블릿 자동 등록.@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!"); } }
- 브라우저에서
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
String username = request.getParameter("username");
- 요청 속성(Attribute) 관리:
- 데이터 저장:
request.setAttribute("key", value);
- 데이터 조회:
request.getAttribute("key");
- 데이터 저장:
- 요청 데이터 로깅 (개발 시 디버깅 용도):
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.