🥕 Servlet
브라우저 요청을 받아서 자바 코드로 처리하는 서버 프로그램
JSP ❌ → 화면 (View)
Servlet ✅ → 요청 처리 + 로직 제어(Controller)
지금 내 프로젝트는 MVC 패컨을 갖고 있다
[브라우저]
↓ 요청
[Servlet] ← 핵심
↓
[DAO / DTO]
↓
[JSP] (화면 출력)
🥕 왜 Servlet 파일을 쓰는가
JSP만 쓰면 생기는 문제
HTML + Java 코드 섞임 → 지옥
로그인, 장바구니, 페이징 같은 로직 관리 어려움
유지 보수 최악
🥕 Servlet 을 쓰는 이유
| 이유 | 설명 |
| 역할 분리 | Servlet = 처리 / JSP = 화면 |
| 보안 | Java 코드가 노출되지 않음 |
| 구조화 | MVC 패턴 가능 |
| 재사용 | 공통 로직 관리 쉬움 |
| 대규모 개발 | 필수 |
→ JSP는 보여주기만 하고, 생각은 Servlet이 한다
🥕 Servlet 파일은 정확히 무엇인지
Servlet은 HttpServlet을 상속한 자바 클래스이다
public class ItemListServlet extends HttpServlet {
}
또는
@WebServlet("/ItemList.do")
public class ItemListServlet extends HttpServlet {
}
📌 이 뜻은?
/ItemList.do 요청이 오면
→ 이 클래스가 실행된다
🥕 Servlet은 언제 실행되냐?
ex) 브라우저 주소창에 입력 :
http://localhost:8080/프로젝트명/ItemList.do
실행 순서
1. 브라우저 요청
2. Tomcat이 요청 받음
3. @WebServlet("ItemList.do") 매핑 확인
4. 해당 Servlet 실행
🥕 Servlet 내부에서 무슨 일이 벌어지냐?
Servlet은 요청 방식(GET/POST)에 따라 메서드가 실행된다
기본 구조
@WebServlet("/ItemList.do")
public class ItemListServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 1️⃣ 요청 데이터 받기
// 2️⃣ 로직 처리 (DAO 호출)
// 3️⃣ 결과 저장
// 4️⃣ JSP로 이동
}
}
🥕 Servlet 동작 흐름
ex) 상품 목록 조회

ex) 코드 예시

🥕 Servlet에서 주로 하는 일들
| 기능 | 예시 |
| 요청 값 받기 | request.getParameter("id") |
| 로그인 처리 | ID/PW 체크 |
| DB 연동 | DAO 호출 |
| 세션 관리 | HttpSession |
| 페이지 이동 | forward / redirect |
| AJAX 응답 | JSON 반환 |
🥕 forward vs redirect (Servlet이 필요한 이유 중 하나)
🔹 forward
서버 안에서 이동
request 유지
JSP로 데이터 전달 가능
🔹redirect
브라우저에게 다시 요청하라고 시킴
request 날아감
→ 이걸 JSP에서 처리하면 구조가 깨짐
🥕 내 프로젝트 기준으로 정리

Servlet = 교통정리
Action = 업무 처리
DAO = DB
JSP = 화면
정리
Servlet은 브라우저 요청을 받아서
자바 코드로 처리하고
결과를 JSP에 전달하는
웹 서버의 핵심 컨트롤러이다
'🍏 개발일기' 카테고리의 다른 글
| Hexagonal Architecture, 진짜 하실 건가요? 글을 읽으며.. (1) | 2025.12.16 |
|---|---|
| 모달창(Model Window) | 모달에 대한 모든 것.. (0) | 2025.12.15 |
| LoginAction과 LoginPageAction 파일의 각 역할 정리 (0) | 2025.12.12 |
| 별점 플러그인 & 쿠키• 로컬 스토리지 (0) | 2025.12.12 |
| 문자 API | 기본 구조와 주요 기능 (0) | 2025.12.11 |