The JSP/Servlet container is responsible for managing the life cycle of a JSP file. In general there are three important stages in JSP life cycle.
- Request Processing
JSP Life Cycle – Initialization Stage
When a JSP/Servlet container receives request for a JSP it checks if the JSP is initialized. If the JSP is not initialized already then the container would take the JSP file through the following stages.
|1||Translation||Container translate the JSP file into a Servlet file|
|2||Compilation||The generated java Servlet file is compiled into a java Servlet class|
|3||Class Loading||The java Servlet class is loaded into JVM|
|4||Servlet Instantiation||An instance of the Servlet class is created|
|5||Initialization||jspInit() method is called right after instance was created.|
jspInit() method is called only once during JSP life cycle. Initialization will make ServletContext and ServletConfig objects available for the Servlet.
JSP Life Cycle – Request Processing Stage
Every request from client is served by _jspService() method. The whole initialization stage is done to make the JSP ready to serve the client request.
JSP Life Cycle – Destruction Stage
A Servlet/JSP container may call the _jspDestroy() method any time after the initialization. Once the _jspDestroy() method is called JSP file has go through to initialization process to be consumed by the client. Container may call the _jspDestroy() method as and when the container is gracefully shutdown or the container need to free up some memory to load other resources. Once the _jspDestroy() method is called the Servlet is no longer referred by a reference and the garbage collector can pick it up.
JSP Life Cycle Methods
JSP Life Cycle