JSP 생명 주기라 함은 JSP 생성에서부터 소멸까지의 과정을 말하는데 이는 서블릿 생명주기와 매우 유사하고 추가적으로 JSP를 컴파일 하는 과정만 추가된 것이라고 생각하면 된다.
큰 과정만 간추리면 다음과 같습니다.
Compilation ( 컴파일 )
Initialization ( 초기화 )
Execution ( 실행 )
Cleanup ( 뒷정리 )
그림으로 보면 아래와 같습니다. 서블릿 생명주기에서 컴파일만 추가된 것이죠. 아래 그림에는 컴파일 과정은 생략되어있네요.
웹브라우저가 JSP를 요청하면 JSP engine 은 우선 요청한 JSP파일이 컴파일이 필요한지를 검사합니다. 만약 한번도 컴파일 된적이 없거나 수정된 부분이 있다면 JSP engine 이 컴파일을 하게 됩니다.
컴파일 과정은 아래와 같습니다.
Parsing the JSP. ( JSP 파일 파싱 )
Turning the JSP into a servlet. ( JSP를 서블릿으로 변환 )
Compiling the servlet. ( 서블릿 컴파일 )
컨테이너가 JSP를 로드할 때 jspInit() 메소드를 호출합니다. 요청을 처리하기 전에 말이죠. 만약 특정 JSP에서 특수한 처리가 필요하다면 이 jspInit() 메소드를 오버라이드 하시면 됩니다.
public void jspInit(){ // Initialization code... }
일반적으로 초기화는 서블릿 초기화처럼 한번만 실행이 됩니다, 이 초기화 과정에서 개발자들은 보통 데이타 베이스 커넥션을 맺고 파일을 열고 룩업 테이블을 생성하는 과정을 처리한다고 하네요.
브라우저가 JSP 페이지를 요청하고 페이지가 로드되고 초기화가 됐다면 JSP engine은 _jspService() 메소드를 호출하게 됩니다.
_jspService() 메소드는 HttpServletRequest와 HttpServletResponse 를 파라미터로 받습니다.
void _jspService(HttpServletRequest request, HttpServletResponse response) { // Service handling code... }
JSP의 _jspService()메소드는 요청이 올때마다 한번씩 실행이 됩니다. 그리고 요청에 대한 응답을 생성하며 모든 종류의 HttpRequest방법 ( ie. GET, POST, DELETE, PUT, etc.) 에 대한 응답을 생성합니다.
jspDestroy() 메소드는 서블릿을 소멸시키는 메소드와 동일한 개념이라고 보시면 됩니다. 이 메소드를 오버라이드해서 필요한 처리를 해주셔도 됩니다. 데이타 베이스 커넥션을 끊는다던지 파일을 닫는 것과 같은 일들을 말이죠.
jspDestroy() 메소드는 아래처럼 간단하게 생겼습니다.
public void jspDestroy() { // Your cleanup code goes here. }
Reference : http://www.tutorialspoint.com/jsp/jsp_life_cycle.htm
[JSP] Custom Tags ( 커스텀, 사용자 정의 태그 ) (0) | 2019.02.15 |
---|---|
[JSP] Directives ( 디렉티브 ) (0) | 2019.02.15 |
[JSP] 조건문, 반복문 (0) | 2019.02.15 |
[JSP] JSP 시작하기 (0) | 2019.02.15 |
[JSP] JSP란? (0) | 2019.02.15 |