Servlet은 Java 클래스의 일종으로, 웹 서버에서 실행되는 서블릿 컨테이너(Servlet Container) 내에서 동작하며, 클라이언트(주로 웹 브라우저)의 요청을 처리하고 응답을 생성합니다. Servlet은 HTTP 요청 및 응답을 처리하기 위해 HTTP 프로토콜을 사용하며, 데이터베이스와의 상호작용, 비즈니스 로직 처리, 데이터 연산 등을 수행하여 클라이언트에게 동적인 HTML 페이지나 JSON 데이터를 전달할 수 있습니다.
init()
: Servlet이 생성될 때 초기화 작업을 수행하는 메서드.service()
: 클라이언트의 요청을 받아 적절한 처리를 수행하는 메서드. 이 메서드는 요청 방식(GET, POST)에 따라 doGet()
또는 doPost()
메서드를 호출합니다.destroy()
: Servlet이 종료될 때 호출되며, 메모리 해제 등 정리 작업을 수행합니다.HttpServlet
클래스입니다. HttpServlet
은 javax.servlet.http.HttpServlet
을 상속하여 생성하며, HTTP 요청을 처리하기 위해 주로 doGet()
과 doPost()
메서드를 오버라이드하여 요청을 처리합니다.javax.servlet
과 javax.servlet.http
패키지를 통해 요청과 응답 객체를 사용할 수 있습니다.Servlet은 Java 클래스이기 때문에 HttpServlet
을 상속받아 만들어지며, 요청을 처리하기 위해 doGet()
과 doPost()
메서드를 오버라이드합니다.
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.getWriter().println("<h1>Hello, Servlet!</h1>");
}
}
Servlet은 클라이언트 요청이 있을 때마다 컨테이너에 의해 호출되고, 다음과 같은 절차로 동작합니다.
service()
메서드를 호출합니다. 이때 요청 방식에 따라 doGet()
또는 doPost()
메서드를 호출하여 요청을 처리합니다.Servlet은 주로 비즈니스 로직과 데이터를 처리하는 컨트롤러 역할을 수행하며, JSP는 사용자에게 보여줄 프론트엔드 화면을 생성하는 역할을 수행합니다. 이러한 구조에서 Servlet은 데이터를 처리한 후 JSP 페이지로 전달하여 최종 HTML 응답을 생성하는 방식으로, MVC 패턴을 통해 역할을 분리하는 것이 일반적입니다.
JSP는 HTML 내에 Java 코드를 삽입하여 동적인 웹 페이지를 생성하는 기술입니다. JSP는 웹 페이지의 레이아웃이나 디자인을 정의하는 동시에 Java 코드를 삽입하여 서버에서 데이터를 처리하고 표시할 수 있게 합니다. JSP는 Servlet으로 변환되어 실행되기 때문에, 기본적으로 Servlet의 기능을 확장한 형태로 볼 수 있습니다.
JSP 페이지에서는 HTML과 함께 <% %>
문법을 사용하여 Java 코드를 작성할 수 있습니다.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP Example</title>
</head>
<body>
<h1>Hello, JSP!</h1>
<%
String name = "홍길동";
out.println("<p>안녕하세요, " + name + "님!</p>");
%>
</body>
</html>
Oracle JSP 공식 문서 - JSP와 Servlet에 대한 기본 개념과 예제를 제공