hanker

Java - Java Servlet 이란? 본문

JAVA

Java - Java Servlet 이란?

hanker 2024. 12. 4. 00:00
반응형

Servlet은 자바기반의 웹 애플리케이션을 개발하기 위해 사용되는 서버 측 기술로, 클라이언트의 요청을 처리하고 동적으로 결과를 생성하여 응답하는 역할을 한다.

 

Servlet은 Java EE (이전의 J2EE)의 핵심 구성 요소 중 하나이며, 주로 HTTP 요청과 응답을 처리하기 위해 사용된다.

(현재는 거의 사용하지 않음)

 


주요 특징

 

1. Java 기반

- 플랫폼 독립적인 Java로 작성되어 다양한 환경에서 실행 가능

 

2. 웹 요청 처리

- HTTP 프로토콜을 기반으로 클라이언트 요청(예: GET, POST 등)을 처리하고 동적으로 HTML, JSON 등 다양한 형식의 데이터를 생성

 

3. 컨테이너에서 실행

- 서블릿 컨테이너(Tomcat, Jetty 등) 내에서 실행되며, 요청 수명 주기를 관리

 

4. 확장성

- 객체 지향적으로 설계되어 다양한 웹 애플리케이션 기능을 쉽게 확장 가능

 


Servlet의 역할

 

- 클라이언트로부터 요청 수신

- 요청 처리 (비즈니스 로직 수행 또는 데이터베이스와의 연동)

- 처리 결과를 응답으로 반환

 

 

예제.

@WebServlet("/processRequest")
public class ProcessRequestServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 클라이언트 요청 처리
        String name = request.getParameter("name");
        if (name == null || name.isEmpty()) {
            name = "Guest";
        }

        String greetingMessage = "Hello, " + name + "! Welcome to the Servlet example.";
        response.setContentType("text/html; charset=UTF-8");
        response.getWriter().write("<html>");
        response.getWriter().write("<head><title>Servlet Example</title></head>");
        response.getWriter().write("<body><h1>" + greetingMessage + "</h1></body>");
        response.getWriter().write("</html>");
    }
}

Servlet 작동 방식

 

1. 클라이언트 요청: 브라우저 또는 다른 클라이언트가 HTTP 요청을 보냄.

 

2. 컨테이너: 서블릿 컨테이너가 요청을 받아 서블릿에 전달.

 

3. 요청 처리: 서블릿이 요청을 처리하고 필요한 응답 데이터를 생성.

 

3. 응답 반환: 처리된 결과를 HTTP 응답으로 클라이언트에게 전송.

 


Servlet 수명 주기 (Life Cycle)

 

Servlet은 특정 생명 주기 메서드를 통해 관리됩니다.

 

초기화 (init):

- 서블릿 객체가 처음 생성될 때 한 번 호출.

- 초기화 작업 수행.

 

서비스 (service):

- 클라이언트 요청마다 호출되며, doGet(), doPost()와 같은 메서드로 분기.

 

소멸 (destroy):

- 서블릿이 제거될 때 호출되며, 자원 해제 작업 수행.

 

 


Servlet의 장점

 

효율성: 서버 측에서 실행되어 클라이언트의 부담을 줄임

유연성: 동적 페이지와 다양한 데이터 형식을 생성 가능

안정성: Java의 강력한 예외 처리 및 보안 기능 활용

 


Servlet의 단점

 

1. 코드 복잡성: JSP, Spring MVC와 비교하면 직접적인 HTML 처리와 비즈니스 로직 분리가 어렵다.

2. 유지보수 어려움: 대규모 프로젝트에서는 코드의 가독성과 확장성이 떨어질 수 있음.

 


정리

 

Servlet은 여전히 사용되지만,  현재 웹 개발에서는 Spring Framework와 같은 프레임워크를 사용하는 것이 일반적이다.

이러한 프레임워크는 서블릿 기반이지만, 개발자가 직접 서블릿을 다룰 필요 없이 더 고수준의 구조와 기능을 제공한다.

 

 

끝.

반응형