📌 Servlet이란?
- HTTP 요청(Request)과 응답(Response)을 처리하는 Java 기반 서버 프로그램
- Java에서
HttpServlet클래스를 상속하여 구현- HTTP 프로토콜 기반 웹 애플리케이션의 핵심 요소
✅ Servlet의 역할
POST 요청 등)⚙️ HTTP 처리 과정
클라이언트 → HTTP Request → 서버(Servlet) → 로직 처리 → HTTP Response → 클라이언트
✉️ HTTP 메시지 예시
> 📤 Request
POST /api/users HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
userId=아이디&pssword=비밀번호
> 📥 Response
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423
<html>
<body>
...
</body>
</html>
서버에서 처리해야 되는 작업

1. 서버와 TCP/IP 연결
2. HTTP Request Message 필요한 형태로 변환하여 읽기
3. 분석한 결과를 통해 프로세스 실행
4. 비지니스 로직 실행
5. HTTP Response Message 생성
6. 응답 전달
7. 연결 종료
🔁 Servlet 동작 순서
- URL 호출 시 WAS가 하는 일
Servlet 예시 코드
@WebServlet(name="ExampleServlet", urlPatterns = "/exmaple")
public class ExampleServlet extends HttpServlet { // HttpServlet을 상속받아 구현한다.
@Override
protected void service(
HttpServletRequest request, // HTTP 요청 정보를 쉽게 사용할 수 있게 만드는 Servlet
HttpServletResponse response // HTTP 응답 정보를 쉽게 제공할 수 있게 만드는 Servlet
) {
// application logic
}
}
→ URL (/example)이 호출되면 service() 메서드가 실행됨
📌 /example 요청 처리 흐름

HttpServletRequest, HttpServletResponse 객체 생성service() 메서드에서 비즈니스 로직 수행response 객체에 담아 응답 생성✨ 개발자가 하는 일
request에서 요청 정보 추출response에 응답 데이터 세팅📂 Servlet Container란?
- Servlet을 관리하는 WAS의 핵심 구성 요소
🧩 기능
| 역할 | 설명 |
|---|---|
| 생성 | Servlet 객체를 직접 생성 |
| 초기화 | 요청 전에 초기화 수행 |
| 요청 처리 | 요청마다 service() 호출 |
| 종료 | 서버 종료 시 Servlet 소멸 |
> Servlet 객체 생성 시점

📄 Servlet 예시 코드
@WebServlet(name="ExampleServlet", urlPatterns = "/example")
public class ExampleServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) {
// 1. 요청 정보 추출
// 2. 비즈니스 로직 처리
// 3. 응답 데이터 작성
}
}
✅ 특징
💡 싱글톤이란?
- 하나의 객체만 생성하여 재사용
→ 메모리 절약, 일관성 유지 가능
→ 하지만 공유 자원 사용 시 동기화에 주의