JSP

JSP 라이프 싸이클(life cycle : 생명주기)

요리하다그만둠 2022. 7. 22. 15:10

JSP 생명주기

페이지를 구성하는 요소 중에서 웹 브라우저 자체에서 해석할 수 있는 부분은 HTML, CSS, JavaScript정도라면 나머지 JSP에 대한 부분은 웹 브라우저가 해설할 수 없습니다. 그러므로 Tomcat과 같은 JSP/Servlet 컨테이너(웹 어플리케이션 서버 WAS)이 실행되어 있다면 웹브라우저가 바로 해석할 수 없었던 이 JSP 소스 부분을 패치(fetch)하여 해석(parsing)하고 이 JSP 소스 부분에 Java 코드가 직접 기입되어 있거나 혹은 간접적으로 사용하고 있다면 JRE(Java Runtime Environment) 실행 환경과 Tomcat이 협업하여 이를 해석하게 최종적으로는 서블릿(Servlet)의 한 종류인 것을 증명하는 것입니다. 그리고 이것을 완성된 바이트 코드에서 표현할 부분들을 궁극적으로 HTML로 변환하여 웹 브라우저에 결과를 리턴하면 웹 브라우저에서 실행되는 HTML로 실행되는 것입니다. 제대로 해석된 JSP는 웹 브라우저에서 보았을 때 JSP 요소를 전혀 눈치챌 수 없을 정도로 JSP 소스의 흔적이 사라지고 웹브라우저에서 소스 보기로 확인하면 JSP 요소들이 모두 HTML로 변환 되어 있는 것을 확인할 수 있습니다.

 

JSP 생명주기(life cycle) 함수

 

1) jspInit() : jsp 페이지를 초기화할 경우 호출됩니다.

참고) https://tomcat.apache.org/tomcat-9.0-doc/jspapi/javax/servlet/jsp/JspPage.html#jspInit--

2) _jspService : 위의 초기화 함수가 호출된 이후 호출됩니다.

참고) https://tomcat.apache.org/tomcat-9.0-doc/jspapi/javax/servlet/jsp/HttpJspPage.html#Z:Z_jspService-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-

3) jspDestroy : jsp 페이지가 소멸될 때 즈음에 호출됩니다.

참고) https://tomcat.apache.org/tomcat-9.0-doc/jspapi/javax/servlet/jsp/JspPage.html#jspDestroy--

참고) 위의 생명주기 함수를 고려하여 생명주기를 자세하게 재해석한다면 아래와 같습니다.