티스토리 뷰

Servlet

Java Servlet(자바 서블릿)

daily-dev 2024. 8. 10. 22:06
반응형

 

Servlet

- 초기 동적 페이지들은 서블릿을 이용해서 구현했다.

- JSP 많은 기능은 서블릿의 기능을 따른다.

 

- 서블릿은 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다.

- 독자적으로 실행되지 못하고 톰캣과 같은 JSP/Servlet 컨테이너에서 실행된다.

- 서블릿의 특징

  •  서버 쪽에서 실행되면서 기능을 수행한다.
  •  기존의 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러 가지 기능을 제공한다.
  •  스레드 방식으로 실행된다.
  •  자바로 만들어져 자바의 특징(객체 지향)을 가진다.
  •  컨테이너에서 실행된다.
  •  컨테이너 종류에 상관없이 실행된다(플랫폼 독립적).
  •  보안 기능을 적용하기 쉽다.
  •  웹 브라우저에서 요청 시 기능을 수행한다.

 

계층 구조

- 서블릿은 자바로 만들어졌으므로 당연히 클래스들 간의 계층 구조를 가진다.

 

- 서블릿 API Servlet ServletConfig 인터페이스를 구현해 제공하면 GenericServlet 추상 클래스가  인터페이스의 추상 메서드를 구현한다.

 - GenericServlet 다시 HttpServlet 상속받는다.

 

서블릿 API

서블릿 구성 요소
기능
Servlet 인터페이스
- javax.servlet 패키지에 선언되어 있다.
- Servlet 관련 추상 메서드를 선언한다.
- init(), service(), destroy(), getServletInfo(), getServletConfig() 를 선언한다.
ServletConfig 인터페이스 - javax.servlet 패키지에 선언되어 있다.
- Servlet 기능 관련 추상 메서드가 선언되어 있다.
- getInitParameter(), getInitParameterNames(), getServletContext(), getServletName() 선언되어 있다.
GenericServlet 클래스 - javax.servlet 패키지에 선언되어 있다.
- 상위 인터페이스를 구현하여 일반적인 서블릿 기능을 구현한 클래스이다.
- GenericServlet 상속받아 구현한 사용자 서블릿은 사용되는 프로토콜에 따라 각각 service() 오버라이딩해서 구현한다
HttpServlet 클래스 - javax.servlet.http 패키지에 선언되어 있다.
- GenericServlet 상속받아 HTTP 프로토콜을 사용하는 웹 브라우저에서 서블릿 기능을 수행한다.
- 브라우저 기반 서비스를 제공하는 서블릿을 만들 상속받아 사용한다.
- 요청 service() 호출되면서 요청 방식에 따라 doGet()이나 doPost() 차례대로 호출된다.

- GenericServlet 일반적인 여러 통신 프로토콜에 대한 클라이언트/서버 프로그램에서 서블릿 기능을 구현하는 클래스이다.

- HttpServlet GenericServlet 상속받는다.

- HttpServlet은 HTTP 프로토콜을 사용하는 서블릿 기능을 구현하는 클래스이다.

 

생명 주기

- 서블릿도 자바와 같이 실행하면 초기화 과정, 그리고 메모리에 인스턴스를 생성하여 서비스를 수행한

다시 소멸하는 과정을 거친다.

- 과정에서 호출되어 기능을 수행하는 메서드들이 서블릿 생명주기 메서드이다.

- 서블릿 생명주기 메서드란, 서블릿 실행 단계마다 호출되어 기능을 수행하는 콜백메서드 말한다.

 

생명 주기 메서드

생명주기 단계 생명주기 단계 특징
초기화 init() - 서블릿 요청 처음 번만 호출된다.
- 서블릿 생성 초기화 작업을 주로 수행한다.
작업 수행 doGet()
doPost()
- 서블릿 요청 매번 호출된다.
- 실제로 클라이언트가 요청하는 작업을 수행한다.
종료 destroy() - 서블릿이 기능을 수행하고 메모리에서 소멸될 호출된다.
- 서블릿의 마무리 작업을 주로 수행한다.

 

- init() 메서드는 실행 초기에 서블릿 기능 수행과 관련된 기능을 설정하는 용도로 많이 사용된다.

- destroy() 메서드는 서블릿이 메모리에서 소멸될 여러 가지 종료 작업을 수행한다.

- doGet()이나 doPost() 메서드는 서블릿의 핵심 기능을 처리하므로 반드시 구현해야 한다.

반응형

'Servlet' 카테고리의 다른 글

서블릿 - 응답  (0) 2024.08.11
서블릿 - 클라이언트 요청 얻기  (0) 2024.08.11
서블릿의 기능  (0) 2024.08.11
서블릿 매핑  (0) 2024.08.11
서블릿 생성  (0) 2024.08.11
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함