BACKEND [Kamranahmedse Roadmap]/JSP - Servlet

Servlet이란 무엇인가?

Alex Han 2025. 2. 6. 02:23
반응형

서블릿(Servlet)Java 기반 웹 애플리케이션에서 클라이언트의 요청을 처리하고 동적인 웹 페이지를 생성하는 기술이다.

Servlet은 Java 클래스로 구현되며, 웹 서버(WAS)에서 실행되어 요청(Request)을 처리하고 응답(Response)을 생성하는 역할을 한다.

 

 

 


0. 먼저 읽어보기

 

웹 어플리케이션이란 무엇인가

 

웹 애플리케이션(Web Application)이란 무엇인가

웹 애플리케이션(Web Application)은 웹 브라우저를 통해 사용자가 접근하고 사용할 수 있는 소프트웨어를 의미한다. 일반적으로 서버에서 실행되며, 클라이언트(사용자)는 웹 브라우저를 통해 이를

jyhan0625.tistory.com

웹 서버와 WAS

 

웹서버(Apache)와 WAS(Tomcat)의 개념과 차이점

웹 애플리케이션을 실행할 때 웹 서버(Apache)와 WAS(Web Application Server, Tomcat)을 함께 사용하는 경우가 많다.이 둘은 비슷해 보이지만 역할과 기능이 다르며, 함께 사용하면 성능을 더욱 최적화할 수

jyhan0625.tistory.com

 


1. Servlet의 역할과 동작 방식

Servlet은 클라이언트(보통 웹 브라우저)로부터 HTTP 요청을 받아 이를 처리하고, HTML이나 JSON 등의 응답을 생성하는 역할을 한다.

 

📌 Servlet의 동작 과정

1. 클라이언트가 HTTP 요청을 보낸다.

사용자가 웹 브라우저에서 URL을 입력하거나, 버튼을 클릭하면 요청이 발생한다.

 

2. 웹 서버(Apache, Nginx)가 요청을 WAS(Tomcat)로 전달한다.

정적 파일은 웹 서버가 직접 처리하지만, 동적 처리가 필요하면 WAS가 요청을 받는다.

 

3. WAS가 요청을 해당 Servlet으로 전달한다.

URL 매핑 정보를 기반으로 해당 Servlet 클래스의 service() 메서드를 호출한다.

 

4. Servlet이 요청을 처리하고 응답을 생성한다.

요청에 따라 데이터베이스에서 정보를 가져오거나, 다른 비즈니스 로직을 수행한 후 응답을 생성한다.

 

5. WAS가 클라이언트에게 응답을 반환한다.

HTML, JSON, XML 등의 데이터를 브라우저로 전달한다.

 

 

 


2. Servlet의 주요 메서드

Servlet은 javax.servlet.http.HttpServlet 클래스를 상속하여 만들며, 다음과 같은 핵심 메서드를 사용한다.

메서드 설명
init() 서블릿이 처음 로딩될 때 한 번만 호출됨 (초기화 작업 수행)
service() 클라이언트의 요청을 받아 적절한 메서드(doGet(), doPost())를 호출
doGet() GET 요청을 처리하는 메서드 (예: URL 파라미터 전달)
doPost() POST 요청을 처리하는 메서드 (예: 폼 데이터 전송)
destroy() 서블릿이 종료될 때 호출됨 (자원 해제 작업 수행)

 

 

 


3. 간단한 Servlet 코드 예제

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 서블릿 매핑 (URL을 "/hello"로 설정)
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().println("<h1>Hello, Servlet!</h1>");
    }
}

 

📌 코드 설명

@WebServlet("/hello") → “/hello” 경로로 요청이 들어오면 해당 Servlet이 실행된다.

doGet() 메서드 → GET 요청을 받아 HTML 응답을 생성한다.

 

 

 


4. Servlet의 한계 및 개선된 기술

Servlet은 강력한 기능을 제공하지만, 단점도 존재한다.

 

1. HTML을 Java 코드 내에서 직접 작성해야 하므로 가독성이 떨어진다.

2. 비즈니스 로직과 UI 코드가 혼재되어 유지보수가 어렵다.

3. 코드가 길어지면 관리가 어렵고 생산성이 낮아진다.

 

이를 해결하기 위해 등장한 것이 JSP, Spring MVC 같은 프레임워크이다.

JSP는 HTML 중심으로 페이지를 작성할 수 있도록 개선된 기술.

Spring MVC는 Servlet을 기반으로 한 웹 애플리케이션 개발을 더욱 효율적으로 수행할 수 있도록 함.

 

JSP란 무엇인가

 

JSP란 무엇인가?

JSP (JavaServer Pages)는 자바 기반의 서버 사이드 스크립트 언어로, 동적인 웹 페이지를 생성하기 위해 사용된다. HTML 코드 내에 Java 코드를 포함할 수 있으며, 주로 Java Servlet과 함께 사용된다. Servlet

jyhan0625.tistory.com

 

 

 


📌 결론

Servlet은 Java 기반 웹 애플리케이션에서 클라이언트의 요청을 처리하고 동적 응답을 생성하는 기술이다.

Servlet은 WAS에서 실행되며, doGet(), doPost() 등의 메서드를 통해 요청을 처리한다.

하지만 Servlet만으로 개발하면 HTML 코드와 Java 코드가 섞여 유지보수가 어려워지므로, JSP, Spring 같은 기술과 함께 사용한다.🚀

반응형