[Java] 서블릿(Servlet)과 생명주기 메소드란? : init(), destroy(), service()
init()
- 딱 한 번만 호출됩니다.
- 서블릿 컨테이너가 서블릿 객체를 생성한 후 호출합니다.
- 서블릿이 작업하는데 필요한 자원을 준비시키는 코드를 넣습니다.
destroy()
- 딱 한 번만 호출됩니다.
- 웹 어플리케이션의 실행이 멈출 때,
서블릿이 사용한 자원을 초기화시킬 수 있도록 이 메서드를 호출합니다.
- 서블릿이 사용한 자원을 초기화 시키는 코드를 넣습니다.
service()
- 해당 서블릿에 대해 요청이 들어올 때마다 호출됩니다.
- 클라이언트가 요청한 작업을 처리하는 코드를 넣습니다.
──━━━
# 참고! : servlet-api 설정하기
▶ servlet-api 라이브러리는 서블릿 컨테이너에 포함되어 있습니다.
따라서 $tmp/wtpwebapps/웹프로젝트명/WEB-INF/lib 폴더에 배치할 필요가
없습니다. 단지 서블릿을 만들 때 컴파일 단계에서만 사용하면 됩니다.
만약 특정 라이브러리 정보를 배치에서 제외하고 싶다면?
▶ build.gradle 파일의 dependencies {} 블록에 라이브러리 정보를 등록할 때,
'complie' 명령 대신 'providedCompile' 명령을 사용하면 됩니다.
ex) providedCompile 예제!
dependencies {
//complie: 빌드할 때도 사용하고, 배치에도 포함시킨다.
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0'
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.42'
//providedCompile: 빌드할 때만 사용한다. 배치에는 제외시킨다.
providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
}
■ javax.servlet.Servlet 인터페이스, Servlet이란?
▶ 서블릿 컨테이너가 클라이언트 요청을 처리하기 위해
객체에 대해 호출하는 메서드의 규칙!
▶ 클라이언트 요청을 처리하는 클래슬르 만들 때는
반드시 이 규칙에 따라 만들어야 합니다.
▶ 이 규칙에 따라 만든 클래스를 '서블릿(Servlet)'이라고 부릅니다.