티스토리 뷰

Java

[Java] Servlet(서블릿)

fnow 2022. 8. 9. 15:58
반응형

 

 

 

 

서블릿 정의

서블릿은 자바를 기반으로 동적인 웹 페이지를 만들 때 사용되는 프로그래밍 기술이다. 서블릿은 웹 요청과 응답의 흐름을 메서드 호출만으로 다룰 수 있게 해 준다.

서블릿은 좁게 보면 웹 페이지를 동적으로 만들어주는 자바의 클래스라고 할 수 있고, 넓게 보면 웹 페이지를 동적으로 만들어주는 자바의 패키지라고 할 수 있다.

 

서블릿 등장 배경

과거 서버는 주로 정적인 리소스만 주고받을 수 있었다. 클라이언트가 자료를 요청하면 서버는 미리 만들어진 자료를 반환하는 형태였다. 하지만 인터넷의 규모가 커지고 웹을 통해 다양한 기능을 구현하게 되어 사용자는 정적인 자료가 아니라 그때그때 필요로 하는 자료를 제공받고 싶어졌다. 사용자 요구에 맞춰 동적으로 반응하는 웹 페이지를 만들기 위해 등장한 것이 바로 서블릿이다.

 

Web과 WAS

Web (웹 서버)

과거의 웹 서버는 아래와 같이 단순히 요청에 대한 페이지(정적 자료)만 반환하는 형태였다. 

 

WAS (Web Application Server)

웹 서버 + 웹 컨테이너

정적인 웹 서버는 동적인 페이지를 제공하기 위해 WAS 방식으로 업그레이드하였다. 서버가 연산 기능까지 수행할 수 있게 되었다. HTTP를 통해 사용자의 요청 중에 연산이 필요한 부분은 WAS가 맡아서 해준다. 이때 WAS에서 연산 기능을 담당하는 것이 바로 서블릿이다.

 

웹 컨테이너 (Web Container)

웹 컨테이너는 서블릿 컨테이너라고도 불린다. 서블릿 클래스의 규칙에 맞게 서블릿을 담고 관리해주는 컨테이너이다. 클라이언트에서 요청을 하면 웹 컨테이너는 HttpServletRequest, HttpServletResponse 두 객체를 생성하여 GET, POST 여부에 따라 동적인 페이지를 생성하여 응답을 보낸다.

 

웹 컨테이너(서블릿 컨테이너) 주요 기능

1. 생명주기 관리

2. 통신 지원

3. 멀티스레딩 관리

4. 선언적인 보안 관리

 

서블릿 생명주기

서블릿도 좁게 보면 자바의 클래스이므로, 실행하게 되면 초기화-서비스 수행-소멸까지 과정을 거친다. 각 단계마다 기능을 수행하는 콜백 메서드가 있으며 '서블릿 생명주기 메서드'라고 한다.

 

서블릿 동작 과정

1. Servlet Request, Servlet Response 객체 생성

2. 설정 파일을 참고하여 매핑할 Servlet을 확인

3. 해당 서블릿 인스턴스 존재 유무 확인하여 없으면 init() 메서드 호출하여 생성

4. Servlet Container에 스레드를 생성하고 service 실행

5. 응답을 처리하였으면 distory() 메서드를 실행하여 Servlet Request, Servlet Response 객체를 소멸함

 

 

 

반응형
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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