English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JSP의 하부 기능을 이해하는 열쇠는 그들이 따르는 생명주기를 이해하는 것입니다
JSP 생명주기는 생성부터 소멸까지의 전 과정을 의미하며, servlet 생명주기와 유사하지만 JSP 생명주기는 JSP 파일을 servlet로 컴파일하는 부분도 포함됩니다
아래는 JSP 생명주기에서 거쳐간 몇 가지 단계입니다:
컴파일 단계:
servlet 컨테이너가 servlet 소스 파일을 컴파일하여 servlet 클래스를 생성합니다
초기화 단계:
JSP에 대응하는 servlet 클래스를 로드하고 예제를 생성하여 초기화 메서드를 호출합니다
실행 단계:
JSP에 대응하는 servlet 예제의 서비스 메서드를 호출합니다
소멸 단계:
JSP에 대응하는 servlet 예제의 소멸 메서드를 호출한 후 servlet 예제를 소멸합니다
JSP의 네 가지 주요 생명주기 단계는 servlet의 생명주기와 매우 유사합니다. 다음은 그 그래프입니다:
브라우저가 JSP 페이지를 요청할 때, JSP 엔진은 이 파일이 컴파일되었는지 확인합니다. 이 파일이 컴파일되지 않았거나 이전 컴파일 이후 변경되었으면, JSP 파일을 컴파일합니다.
컴파일 과정은 세 단계로 구성됩니다:
JSP 파일을 해석합니다。
JSP 파일을 servlet로 변환합니다。
servlet을 컴파일합니다。
컨테이너가 JSP 파일을 로드한 후, 요청에 대한 서비스를 제공하기 전에 jspInit() 메서드를 호출합니다. 사용자 정의 JSP 초기화 작업을 수행하려면 jspInit() 메서드를 오버라이드하면 됩니다. 다음과 같이 사용할 수 있습니다:
public void jspInit(){ // 초기화 코드 }
일반적으로 프로그램은 한 번만 초기화되며, servlet도 마찬가지입니다. 일반적으로 데이터베이스 연결을 초기화하거나 파일을 열고 쿼리 테이블을 생성하는 jspInit() 메서드에서 초기화할 수 있습니다.
이 단계는 JSP 생명주기에서 요청과 관련된 모든 상호작용 행위를 설명하며, 소멸될 때까지입니다.
JSP 웹 페이지가 초기화가 완료되면, JSP 엔진은 _jspService() 메서드를 호출합니다.
_jspService() 메서드는 HttpServletRequest 객체와 HttpServletResponse 객체를 매개변수로 필요하며, 다음과 같이 사용됩니다:
void _jspService(HttpServletRequest request, HttpServletResponse response) { // 서버 측 처리 코드 }
_jspService() 메서드는 각 request에 대해 한 번 호출되며, 해당 response를 생성하고, 모든7HTTP 메서드의 응답, 예를 들어 GET, POST, DELETE 등입니다.
JSP의 생명주기에서 소멸 단계는 JSP 웹 페이지가 컨테이너에서 제거될 때 발생하는 모든 일을 설명합니다.
jspDestroy() 메서드는 JSP에서 servlet의 소멸 메서드와 동일합니다. 데이터베이스 연결을 해제하거나 폴더를 닫는 등의 정리 작업을 수행해야 할 때, jspDestroy() 메서드를 오버라이드하여 정리 작업을 수행합니다.
jspDestroy() 메서드의 형식은 다음과 같습니다:
public void jspDestroy() { // 정리 코드 }
JSP의 생명주기 코드 예제는 다음과 같습니다:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>life.jsp </head> <%! private int initVar=0; private int serviceVar=0; private int destroyVar=0; %> <%! public void jspInit(){ initVar++; System.out.println("jspInit(): JSP被初始化了"+initVar+"회 } public void jspDestroy(){ destroyVar++; System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"회 } %> <% serviceVar++; System.out.println("_jspService(): JSP는 총 "+serviceVar+"요청"); String content1="초기화 횟수: "+initVar; String content2="고객 요청 응답 횟수: "+serviceVar; String content3="소멸 횟수: "+destroyVar; %> <h1>기본 튜토리얼(oldtoolbag.com) JSP 테스트 예제</h1> <p><%=content1 %></p> <p><%=content2 %></p> <p><%=content3 %></p> </body> </html>
브라우저에서 이 페이지를 엽니다, 출력 결과는 다음과 같습니다: