jspInit(){}: 이 메서드는 jsp 페이지가 초기화될 때 호출되며 이 메서드는 초기화 중에 한 번만 실행되므로 작성자가 생성한 일부 초기화 매개변수 구성 및 기타 일회성 작업을 여기에서 수행할 수 있습니다.
jspDestroy(){}: 이 메서드는 작성자가 만든 jsp 페이지가 어떤 이유로 닫힐 때 호출됩니다.
jspService(){}: jsp 컨테이너에 의해 생성된 jsp 컨테이너에 의해 자동으로 생성된 jsp 페이지를 처리하기 위한 메서드
정확하게 말하면 jsp에는 jspInit(), _jspService(), jspDestroy() 세 가지 내부 메소드가 있어야 합니다. 이 세 가지 메소드 중 jspInit() 및 jspDestroy()는 작성자가 정의할 수 있지만 _jspService()는 다음으로 정의합니다. jsp 컨테이너는 jsp Pge의 내용을 기반으로 정의되며 작성자가 정의할 수 없습니다.
먼저 jsp 웹 페이지의 내부 원리에 대해 이야기해 보겠습니다. jsp 파일이 처음 처리되면 서블릿으로 변환됩니다. jsp 엔진은 먼저 jsp 파일을 Java 소스 파일로 변환합니다. 변환 프로세스 중에 오류가 발생하면 즉시 중지되고 변환이 성공하면 오류 메시지 보고서를 서버와 클라이언트로 보냅니다. . 그런 다음 Servlet 객체를 생성하고 먼저 초기화를 위해 jspInit() 메소드를 실행합니다. jspInit() 메소드는 전체 실행 과정에서 한 번만 실행되므로 이 메소드에서 데이터베이스에 연결하고 일부를 초기화하는 등 필요한 작업을 수행할 수 있습니다. 그런 다음 _jspService() 메서드를 실행하여 클라이언트의 요청을 처리합니다. 동시에 처리할 요청이 여러 개인 경우 서블릿이 여러 개 생성됩니다. 메모리에서 오랜 시간 동안 실행 속도는 빠르지만 초기화에는 컴파일이 필요하기 때문에 첫 번째 실행은 여전히 상대적으로 느립니다. 어떤 이유로 jsp 웹 페이지가 닫히거나 파괴되면 jspDestroy() 메서드가 실행됩니다.
<%@ 페이지 언어="java" contentType="text/html; charset=gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
< 메타 http-equiv="Content-Type" content="text/html; charset=gbk">
<title>테스트</title>
</head>
<body>
<%!
public void jspInit(){
System.out. print("start");
}
%>
<%!
public void jspDestroy(){
System.out.print("end")
}
%>
</body>
</html>
이 jsp 파일을 실행한 후 닫습니다. tomcat/logs에서 해당 날짜의 로그를 확인하면 해당 내용이 "start and end"라는 것을 알 수 있습니다. 이는 jsp 파일 실행을 시작할 때 jspInit() 메서드가 호출되기 때문입니다. "start" 내용이 로그에 기록되고, jsp 파일을 닫을 때 jspDestroy() 메서드를 호출하고 "End" 내용이 로그에 기록됩니다.