본문 바로가기
JAVA

서블릿의 개념!

by GoodDayDeveloper 2020. 6. 21.
반응형

서블릿의 개념!

 

 

안녕하세요. 오늘은 서블릿에 대해 이야기해보겠습니다.

 

서블릿이란

서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램입니다.

서블릿은 자바 코드 안에 HTML 태그가 삽입되며 자바 언어로 되어 있습니다.

IT분야를 처음 접하는 분들은 아무리 서블릿에 대한 개념을 들어도 잘 모를때가 많습니다. 저도 그랬고요..

쉽게 말씀드리면 서블릿은 Controller입니다. 

즉, 클라리언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는

서블릿 클래스의 구현 규칙을 지킨 자바 프로그램 입니다.

 

서블릿은 자바언어를 웹어플리케이션에 조금 더 개발하기 쉽게 하기 위해 만든 API이며, 이 규약에 맞는 라이브러리나 클래스들을 상속 및 구현하여 만든 클래스들을 서블릿이라고 합니다.

 

서블릿의 특징으로는,

자바코드로 구현하고 컴파일 후, 배포해야 합니다.

HTML 태그로 문자열 스크림으로 처리해야 합니다.

코드가 수정되면 다시 컴파일 후 배포해야 합니다.

 

MVC 패턴 model2의 모든 흐름제어를 맡습니다. 브라우저로 요청이 들어오면 어떤 요청이 들어오는지 분석하여 이 요청을 처리하기 위한 모델을 사용하여 처리합니다. 사용한 모델로부터 처리결과를 받으면 추가로 처리하거나 가공해야 할 정보가 있따면 처리 후, request객체나 session 객체에 저장하고, jsp페이지를 선택하여 foward나 redirect하여 클라이언트에 출력합니다.

 

 

 

 

 

이러한 서블릿을 관리해주는 주체가 있는데 이것을 서블릿 컨테이너 라고 합니다.

서블릿 컨테이너는 서블릿의 생명주기를 관리하고 요청에 따른 스레드를 생성해줍니다. 

또한, 클라이언트의 Request를 받아주고 Response를 보낼 수 있게 웹 서버와 소캣을 만들어 통신해줍니다.

서블릿 컨테이너는 크게 통신 지원, 생명주기 관리, 멀티스레딩 관리, 보안관리, JSP지원 역활을 하고 있습니다.

 

이러한 역활을 하는 서블릿 컨테이너의 대표 프로그램은 '톰캣' 입니다.

톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 JSP(자바 서버 페이지)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있습니다. 

톰캣은 설정을 변경할 수 있고 HTTP 서버도 자체 내장합니다. 보통 톰캣은 WAS의 기능을 수행한다고 말합니다.

 

 

서블릿 생명주기

 

서블릿 생성 -> init() -> { service() -> doXxx() } -> destory() -> 서블릿 종료 ( {} 반복 )

서블릿 클래스 객체가 생성되면 가장 처음에 메소드 init()이 실행되며, 클라이언트의 요청이 들어 올 때마다 service() 메소드가 실행되어 요청에 맞는 메소드 doXxx()를 생행합니다. 마지막으로 서버가 종료되거나 서블릿을 더 이상 사용할 필요가 없어 서블릿 객체를 메모리에서 제거할 때, 마지막으로 메소드 destory()가 실행되어 사용하던 자원을 정리하고 종료됩니다.

init()과 destory()는 서블릿의 생서오가 종료시 단 한번이 실행되며 service() 메소드는 사용자의 요청이 있을 때마다 반복적으로 실행됩니다.




 

반응형

'JAVA' 카테고리의 다른 글

컴파일의 이해!  (0) 2020.06.25
JSP 개념과 이해!  (0) 2020.06.23
쿠키와 세션의 차이!  (0) 2020.06.19
JSTL 날짜 포맷 변경 방법  (0) 2020.06.15
JAVA 개념 정리 2탄  (0) 2020.06.05

댓글