🍏 개발일기

서블릿 파일에 대하여 알아보자

보배 진 2025. 12. 14. 16:20

 

 

🥕 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에 전달하는

웹 서버의 핵심 컨트롤러이다