서블릿

CREE·2023년 8월 29일
0

Spring 개념

목록 보기
9/9
post-thumbnail

서블릿

자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다.

즉 자바로 만들어진 웹서버에서 Html,이미지,css등 정적 웹서버에서 처리하지 못하고 자바 자원을 필요로 하는 요청이 발생했을때 이를 처리하기 위한 Servlet 클래스의 구현 규칙을 지킨 클래스이다.

서블릿의 특징으로는

  1. 클라이언트의 Request에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트
  2. HTML을 사용하여 Response 한다.
  3. JAVA의 스레드를 이용하여 동작한다.
  4. MVC 패턴에서의 컨트롤러로 이용된다.
  5. HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다.
  6. UDP보다 속도가 느리다.
  7. HTML 변경 시 Servlet을 재 컴파일해야 하는 단점이 있다.

등이 있다.

한줄로 요약하자면, 자바코드로 무엇인가 해야하는 요청이 왔을때 그 요청을 처리하고 결과를 html 의 형태로 응답해주는 클래스이다.

서블릿 컨테이너

요청에 따라 서블릿 객체를 생성, 실행, 제거등을 담당하는 컨테이너, 스프링에서는 주로 톰캣이 이를 담당하게 된다.

서블릿 생명주기

서블릿은 요청이 발생할때 생성된다.

  1. 요청

외부에서 서블릿 컨테이너로 요청을 한다.

  1. 서블릿 객체 생성

해당 요청이 최초 요청일 경우 서블릿 컨테이너는 서블릿 객체를 생성한다.

  1. 초기화(init())

서블릿 객체가 생성되면 해당 객체는 init()메소드를 실행한다.
init()메소드는 서블릿의 생명주기중 단 한번만 실행된다.

  1. 서비스 실행

요청에 따라 서블릿 안에 있는 메소드들을 실행한다. 각 메소드는 개별 쓰레드 위에서 실행된다.

  1. 종료(distory)

서블릿 컨테이너가 종료될때 실행되며, 서블릿을 언로드 하고 가비지컬랙션이 진행된다.

주의할 점은 요청이 끝났다고 서블릿이 distroy되는것이 아니라 서비스가 종료될때(서블릿 컨테이너가 종료될때)동작하는 것이다. 서블릿 컨테이너는 생성된 서블릿 객체를 재사용한다.

profile
이리저리 컴공과

0개의 댓글