Describing the JSP Page Life Cycle


JSP is a technology which enables the generation of dynamic web contents for a typical web application by separating the user interface generation from the actual content generation. This separation helps the page designers and content developers to do their respective tasks without interfering with each other. JSP can also be extended by adding Custom Tag Libraries to it.A JSP page is first converted into a Servlet and then that Servlet gets compiled and executed like any other Servlet. The translation of a JSP page into the corresponding Servlet is done by the JSP Engine of the underlying Web Container.
 
The Entire life cycle of a typical JSP page can be summarized as the following phases

Stage 1: JSP Page Translation:
A java Servlet file is generated from the JSP source file. This is the first step in its  multiple phase life cycle. In the translation phase, the container validates the syntactic correctness of the JSP pages and tag files. The container interprets the standard directives and actions, and the custom actions referencing tag libraries used in the page.

Stage 2: JSP Page Compilation: Once the JSP page has been translated into the corresponding Servlet, the next obvious step is to compile that Servlet. The translation of a JSP source page into its implementation class can happen at any time between initial deployment of the JSP page into the JSP container and the receipt and processing of a client request for the target JSP page.

Stage 3: Class Loading & Instantiation Phase: The java servlet class that was compiled from the JSP source is loaded into the container. Once the class is loaded, an instance of this class gets created. JspPage interface contains the jspInit() method, which is used by the JSP Engine to initialize the newly created instance. This jspInit() method is just like the init() method of the Servlet and it's called only once during the entire life cycle of a JSP/Servlet.

Stage 4: Servicing Requests: This method is called for every request of this JSP during its life cycle. This is where it serves the purpose of creation. Oops! it has to through all the above steps to reach this phase. It es the request and the response objects. _jspService() method cannot be overridden. Every time a request arrives, the main JSP thread spawns a new thread and es the request (incoming request) and response (new) objects to the _jspService() method which gets executed in the newly spawned thread.

Stage 5: jspDestroy() Phase: jspDestroy() method is called (almost always by the Web Container)Read a related article on why a JSP/Servlet writer shouldn't call this method explicitly. This method is called when this JSP is destroyed. With this call the servlet serves its purpose and submits itself to heaven (garbage collection). This is the end of jsp life cycle.

Here we are going to describe the jsp life cycle through an example

Step 1: Create A New Web Application

For creating a new application select java web and click web application, after click on the next button

create a new web page.jpg

Step 2: Name and Location

Give a specific Name and Choose a specific Location for it  

name and location.jpg

Step 3: Server And Setting:

Select server Glassfish 3.1 and java web version

  server and setting.jpg

Step 4: Select Framework:

There is no need to select any framework for it

select framerwork.jpg


Step 5: Create Jsp File:

Create two jsp file index.jsp and string.jsp

create a new jsp file.jpg

Index.jsp

<HTML>
  <HEAD>
    <TITLE>
Using jspInit and jspDestroy</TITLE>
  </HEAD>
   <BODY bgcolor="cyan">
     <H1>Using jspInit and jspDestroy</H1>
       <%!
           int number;
           public void jspInit()
          {
           number = 50;
          }
          public void jspDestroy()
          {
           number = 0;
          }
       %>
       <%
           out.println("The number is " + number + "<BR>");
       %>
    </BODY>
 </HTML>


String.jsp

<HTML>
  <HEAD>
   <TITLE>
Using jspInit and jspDestroy</TITLE>
  </HEAD>
  <BODY bgcolor="pink">
    <H1>Using jspInit and jspDestroy</H1>
    <%!
      String s;
      public void jspInit()
      {
      s = "Vikas Mishra";
      }
      public void jspDestroy()
     {
     s = "0";
     }
     %>
     <%
        out.println("The String is " + s + "<BR>");
     %>
   </BODY>
 </HTML>



Compiling and Running The application

After compiling and Running the above code we found the following output

Output

index.jsp

index.jpg

String.jsp

string.jpg


Similar Articles