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 동작 흐름
- 사용자가 브라우저에서 /hello와 같은 URL 요청
- 서버가 이 URL을 서블릿 클래스에 매핑
- doGet() 또는 doPost() 메서드가 실행됨
- 응답 데이터를 브라우저에 출력
🛠 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