JAVA 웹개발/JSP

서블릿(Servlet)

Irene1988 2025. 6. 24. 15:24
728x90

✅ 서블릿(Servlet)이란?

Servlet은 서버에서 실행되는 Java 프로그램
사용자의 요청(HTTP 요청)을 받아서 처리하고, 그 결과(HTML, JSON 등)를 다시 사용자에게 돌려주는 역할을 한다.

 


🔄 JSP와 Servlet의 관계

  • JSP는 HTML 중심 + Java 코드 포함
  • Servlet은 Java 중심 + HTML 생성

📌 JSP는 내부적으로 서블릿으로 변환되어 실행.
즉, JSP 파일을 실행하면 실제로는 서버가 서블릿 코드로 변환 → 컴파일 → 실행해서 동작한다.

 

💡 Servlet 기본 구조

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();

        out.println("<html><body>");
        out.println("<h1>Hello, Servlet!</h1>");
        out.println("</body></html>");
    }
}

 

🧩 Servlet 동작 흐름

  1. 사용자가 브라우저에서 /hello와 같은 URL 요청
  2. 서버가 이 URL을 서블릿 클래스에 매핑
  3. doGet() 또는 doPost() 메서드가 실행됨
  4. 응답 데이터를 브라우저에 출력

🛠 Servlet과 JSP 비교

구분 Servlet JSP
주 사용 목적 로직 처리 (Controller 역할) 화면 출력 (View 역할)
작성 방식 Java 코드에 HTML 포함 HTML에 Java 코드 포함
유지보수 어려움 (코드 복잡해짐) 비교적 쉬움
실행 방식 직접 작성 내부적으로 Servlet으로 변환되어 실행

 

📌 Servlet → JSP 연동 예시

Servlet에서 데이터를 계산하고 JSP로 넘기기:

// HelloServlet.java
request.setAttribute("name", "MJ");
RequestDispatcher dispatcher = request.getRequestDispatcher("hello.jsp");
dispatcher.forward(request, response);
// jsp
<!-- hello.jsp -->
<%= request.getAttribute("name") %>

 

 

✅ 결론

  • Servlet은 요청 처리에 강하고, JSP는 응답 출력에 강합니다.
  • 실무에서는 Servlet (또는 Controller) → JSP (View) 구조로 많이 사용됩니다.
  • Spring 프레임워크를 배우면, 이 구조가 발전된 MVC 패턴으로 자연스럽게 이어집니다.

 

728x90