jspInit(){}: このメソッドは、JSP ページが初期化されるときに呼び出され、このメソッドは初期化中に 1 回だけ実行されるため、作成者によって作成された初期化パラメータの設定やその他の 1 回限りの作業をここで実行できます。
jspDestroy(){}: このメソッドは、作成者によって作成された、何らかの理由で jsp ページが閉じられたときに呼び出されます。
jspService(){}: jspコンテナが自動生成するjspページを処理するメソッド、jspコンテナが生成
正確に言うと、jsp には jspInit()、_jspService()、jspDestroy() という 3 つの内部メソッドが必要です。この 3 つのメソッドのうち、jspInit() と jspDestroy() は作成者が定義でき、_jspService() は によって定義されます。 jsp コンテナは jsp ページの内容に基づいて定義され、作成者が定義することはできません。
まず、JSP Web ページの内部原理について説明します。JSP ファイルは初めて処理されるときにサーブレットに変換されます。 JSP エンジンは、まず JSP ファイルを Java ソース ファイルに変換します。変換プロセス中にエラーが発生すると、直ちに停止し、変換が成功するとエラー メッセージ レポートがサーバーとクライアントに送信されます。 。次に、サーブレット オブジェクトを作成し、最初に初期化のために jspInit() メソッドを実行します。 jspInit() メソッドは実行プロセス全体で 1 回だけ実行されるため、このメソッドでデータベースへの接続、一部の初期化などの必要な操作を実行できます。その後、_jspService() メソッドを実行してクライアントのリクエストを処理します。同時に処理するリクエストが複数ある場合は、サーブレットが格納されるため、複数のスレッドが作成されます。メモリ内に長時間保持されるため、実行は高速ですが、初期化にはコンパイルが必要なため、最初の実行は依然として比較的遅くなります。何らかの理由で JSP Web ページが閉じられたり破棄されたりすると、jspDestroy() メソッドが実行されます。
<%@ page language="java" contentType="text/html; charset=gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
< meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>テスト</title>
</head>
<body>
<%!
public void jspInit(){
System.out. print("開始");
}
%>
<%!
public void jspDestroy(){
System.out.print("終了")
}
%>
</body>
</html>
この jsp ファイルを実行して閉じます。 tomcat/logs の下にあるその日のログを確認すると、内容が「開始と終了」になっていることがわかります。これは、jsp ファイルの実行を開始するときに jspInit() メソッドが呼び出されるからです。 「start」の内容がログに記録され、jsp ファイルを閉じるときに jspDestroy() メソッドが呼び出され、「End」の内容がログに記録されます。