JSPのライフサイクル

JSPページは、要求を処理するためにサーブレットに変換されます。 JSPページのサーブレットへの変換は、Jspのライフサイクルと呼ばれます。 JSPライフサイクルはサーブレットライフサイクルとまったく同じで、JSPコードをサーブレットコードに変換する最初のステップが追加されています。 JSPライフサイクルの手順は次のとおりです:

  1. JSPからサーブレットコードへの変換。
  2. サーブレットをバイトコードにコンパイルします。
  3. サーブレットクラスをロードします。
  4. サーブレットインスタンスを作成します。
  5. jspInit()メソッドを呼び出して初期化
  6. _jspService()メソッドを呼び出して要求処理
  7. jspDestroy()メソッドを呼び出して破棄

JSpのライフサイクル

Webコンテナは、JSPコードをサーブレットクラスソースに変換します(.java)ファイルをコンパイルし、それをjavaサーブレットクラスにコンパイルします。 第三のステップでは、サーブレットクラスのバイトコードをclassloaderを使用してロードします。 次に、コンテナはそのサーブレットクラスのインスタンスを作成します。

初期化されたサーブレットが要求を処理できるようになりました。 リクエストごとに、Webコンテナは_jspservice()メソッドを呼び出します。 コンテナがサーブレットインスタンスをサービスから削除すると、jspDestroy()メソッドを呼び出して、必要なクリーンアップを実行します。

サーブレットに変換されたときにJSPに何が起こるか

サーブレットに変換されたときにJSPコードが実際に何が起こるかを見てみましょう。 内部に記述されたコード はJSPコードです。

<html> <head> <title>My First JSP Page</title> </head> <% int count = 0; %> <body> Page Count is: <% out.println(++count); %> </body></html>

上記のJSPページ(こんにちは.jsp)がこのサーブレットになります,

public class hello_jsp extends HttpServlet{ public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { PrintWriter out = response.getWriter(); response.setContenType("text/html"); out.write("<html><body>"); int count=0; out.write("Page count is:"); out.print(++count); out.write("</body></html>"); }}

これは、内部的に何が起こるかを説明するためだけです。 JSP開発者は、WEBコンテナによって自動的に行われるため、JSPページがサーブレットに変換される方法について心配する必要はありません。