출처: https://typemin.tistory.com/7 [TypeLOG:티스토리]

서블릿이란 동적 웹페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 서블릿은 웹 요청과 응답 흐름을 간단한 메소드 호출만으로 체계적으로 다룰수 있게 해준다.

동작과정


위에 그림을 조금만 설명하자면 아래와 같다.

  1. 클라이언트가 요청을 한다.
  2. Http요청을 하면 request, response객체가 생성이된다.
  3. 그리고 비즈니스 로직을 전문으로 처리하는 서버인 WAS(Tomcat) 에 요청을한다.
  4. 서블릿 컨테이너는 요청에 대한 기능을 수행하기 위해 서블릿에게 위임을 하고
  5. 결과를 반환해 클라이언트에게 전달해준다.

서블릿 컨테이너


서블릿 컨테이너는 웹서버와 서블릿이 쉽게 통신할수 있는 환경을 제공 해준다.

웹 애플리케이션 서버는 서블릿컨테이너라는 서브 시스템을 포함하고 있다. 서블릿 컨테이너는 서블릿 라이프 사이클을 관리하고 , 요청에 따라 서블릿을 분기,실행하며, HTTP응답을 생성해내는 역할을 한다. 또한 서블릿 컨테이너는 여러개의 서블릿 인스턴스를 생성하고, 이를 효율적으로 관리하기 위해 스레드 풀과 같은 기능을 제공한다.

 

❓그래도 나는 서블릿 컨테이너가 서블릿을 관리하는것이 이해가 안간다…. WebApplicatoinServer가 바로 관리할수있지 않을까? 알고 계시는 분께선 댓글 남겨주시면 감사합니다..

생명주기


서블릿도 자바 클래스 이므로 실행하면 초기화 ,서비스, 소멸 의 과정을 거친다.

우선 클라이언트에게 요청이 들어오면 컨테이너는 해당 서블릿이 메모리에 로드가되어있는지 확인을 한다. 그런데 없다면 init()메소드를 실행한다.

그리고 service()메소드를 통해 요청에 대한 처리를 위해서 HTTP요청을 분석해 GET,POST 적절한 것으로 분기한다.

그리고 컨테이너가 종료요청을 하면 destroy()메소드가 호출되는데 이것이 서블릿의 생명주기이다.

 

 

반응형

+ Recent posts