Java의 서블릿

Mohammad Irfan 2024년2월15일
  1. 서블릿이란
  2. 서블릿 사용의 장점
  3. Java에서 서블릿을 만드는 방법
  4. 서블릿을 위한 중요한 패키지
  5. 서블릿 클래스
  6. 서블릿 인터페이스
Java의 서블릿

이 튜토리얼은 서블릿이 무엇이며 Java에서 서블릿을 생성하는 방법을 소개합니다.

서블릿이란

Servlet은 Java로 웹 애플리케이션을 만드는 데 사용되는 서버 측 기술입니다. 동적 웹 애플리케이션을 생성하고 애플리케이션을 관리하기 위한 여러 클래스와 인터페이스로 구성된 API를 제공합니다.

서블릿 사용의 장점

서블릿 이전에는 CGI(Common Gateway Interface) 프로그램을 사용하여 여러 성능 문제가 있는 서버 측 프로그램을 작성했습니다. 서블릿은 CGI보다 우위에 있으며 다음과 같은 이점을 제공합니다.

  • 멀티스레딩 개념으로 인한 고성능
  • 플랫폼 종속성이 없음
  • 휴대용
  • Java 바이트 코드로 인해 안전하고 안전합니다.

Java에서 서블릿을 만드는 방법

다음 클래스나 인터페이스를 사용하는 것과 같이 서블릿 애플리케이션을 만드는 방법에는 여러 가지가 있습니다.

  1. 서블릿 인터페이스 구현
  2. GenericServlet 클래스 상속
  3. HttpServlet 클래스 상속

이들은 서블릿 애플리케이션을 생성하는 데 사용되는 일부 클래스 및 인터페이스입니다. 여기에는 HTTP 요청을 처리하기 위한 doPost()doGet()과 같은 메서드가 포함되어 있습니다.

서블릿 애플리케이션은 특정 디렉토리/프로젝트 구조를 따르며 다음과 같은 몇 가지 필수 단계로 구성됩니다.

  • 서블릿 생성
  • 배포 디스크립터 생성
  • 서블릿 애플리케이션을 서버(아파치 톰캣)에 배포합니다.

앞에서 언급했듯이 서블릿을 생성하려면 HttpServlet 클래스를 확장하고 해당 메서드를 재정의해야 합니다. 여기에서 Get 요청을 처리하기 위해 doGet() 메소드를 사용하고 있습니다.

아래는 기본 서블릿 코드입니다.

서블릿 생성

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

// Extending HttpServlet class
public class HelloServlet extends HttpServlet {
  private String msg;

  public void init() throws ServletException {
    // Do required initialization
    msg = "Hello Servlet";
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    // Setting content type for response
    response.setContentType("text/html");

    // printing msg to browser in h1 heading
    PrintWriter out = response.getWriter();
    out.println("<h1>" + msg + "</>");
  }

  public void destroy() {
    // code to execute while destroy servlet.
  }
}

출력:

이 서블릿 코드는 브라우저에 아래 메시지를 인쇄합니다.

자바 서블릿

배포 설명자 만들기

이것은 서블릿에 대한 정보를 포함하는 XML 파일이며 웹 컨테이너는 이 파일에서 모든 정보를 가져옵니다. 이 파일은 <web-app>, <servlet>, <servlet-mapping> 등과 같은 여러 태그를 사용합니다.

그것들은 모두 컨테이너에 대한 정보를 설정하는 데 사용됩니다. 컨테이너는 파서를 사용하여 이 정보를 추출합니다.

HelloServlet 클래스에 대한 서블릿 설명자(web.xml)를 참조하세요.

<web-app>  
  
<servlet>  
<servlet-name>HelloServlet</servlet-name>  
<servlet-class>HelloServlet</servlet-class>  
</servlet>
  
<servlet-mapping>  
<servlet-name>HelloServlet</servlet-name>  
<url-pattern>/helloservlet</url-pattern>  
</servlet-mapping>
  
</web-app>

이 XML 파일을 생성한 후 서블릿 파일을 컴파일하고 전체 프로젝트를 Apache Tomcat과 같은 웹 서버에 배포합니다. 이것은 웹 응용 프로그램이므로 실행하려면 서버가 필요합니다.

프로젝트 배포 후 서버를 시작하고 브라우저의 매핑 URL helloservlet을 입력하여 서블릿에 접근합니다.

서블릿을 위한 중요한 패키지

Servlet API에는 모든 클래스와 인터페이스를 포함하는 두 개의 기본 패키지가 포함되어 있습니다.

  • javax.servlet
  • javax.servlet.http

서블릿 클래스

다음은 자주 사용되는 서블릿 클래스입니다.

  • GenericServlet
  • ServletInputStream
  • ServletOutputStream
  • ServletRequestWrapper
  • ServletResponseWrapper
  • ServletRequestEvent
  • ServletContextEvent
  • HttpServlet
  • Cookie
  • HttpServletRequestWrapper
  • HttpServletResponseWrapper
  • HttpSessionEvent

서블릿 인터페이스

다음은 자주 사용되는 서블릿 인터페이스입니다.

  • Servlet
  • ServletRequest
  • ServletResponse
  • RequestDispatcher
  • ServletConfig
  • ServletContext
  • Filter
  • FilterConfig
  • FilterChain
  • ServletRequestListener
  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
  • HttpSessionListener

관련 문장 - Java Servlet