Tuesday 22 March 2016

THE JSP API

The JSP API consists of two packages:

  1. javax.servlet.jsp
  2. javax.servlet.jsp.tagext

javax.servlet.jsp package

The javax.servlet.jsp package has two interfaces and classes.The two interfaces are as follows:
  1. JspPage
  2. HttpJspPage
The classes are as follows:
  • JspWriter
  • PageContext
  • JspFactory
  • JspEngineInfo
  • JspException
  • JspError


The JspPage interface

According to the JSP specification, all the generated servlet classes must implement the JspPage interface. It extends the Servlet interface. It provides two life cycle methods.
JSP API

Methods of JspPage interface

  1. public void jspInit(): It is invoked only once during the life cycle of the JSP when JSP page is requested firstly. It is used to perform initialization. It is same as the init() method of Servlet interface.
  2. public void jspDestroy(): It is invoked only once during the life cycle of the JSP before the JSP page is destroyed. It can be used to perform some clean up operation.


The HttpJspPage interface

The HttpJspPage interface provides the one life cycle method of JSP. It extends the JspPage interface.

Method of HttpJspPage interface:

  1. public void _jspService(): It is invoked each time when request for the JSP page comes to the container. It is used to process the request. The underscore _ signifies that you cannot override this method.

JSP Scriptlet tag

In JSP, java code can be written inside the jsp page using the scriptlet tag. Let's see what are the scripting elements first.

JSP Scripting elements

The scripting elements provides the ability to insert java code inside the jsp. There are three types of scripting elements:
  • scriptlet tag
  • expression tag
  • declaration tag


JSP scriptlet tag

A scriptlet tag is used to execute java source code in JSP. Syntax is as follows:

  1. <%  java source code %>  

Example of JSP scriptlet tag

In this example, we are displaying a welcome message.

  1. <html>  
  2. <body>  
  3. <% out.print("welcome to jsp"); %>  
  4. </body>  
  5. </html>  


Example of JSP scriptlet tag that prints the user name

In this example, we have created two files index.html and welcome.jsp. The index.html file gets the username from the user and the welcome.jsp file prints the username with the welcome message.
File: index.html

  1. <html>  
  2. <body>  
  3. <form action="welcome.jsp">  
  4. <input type="text" name="uname">  
  5. <input type="submit" value="go"><br/>  
  6. </form>  
  7. </body>  
  8. </html>  
File: welcome.jsp

  1. <html>  
  2. <body>  
  3. <%  
  4. String name=request.getParameter("uname");  
  5. out.print("welcome "+name);  
  6. %>  
  7. </form>  
  8. </body>  
  9. </html>  

JSP expression tag

The code placed within JSP expression tag is written to the output stream of the response. So you need not write out.print() to write data. It is mainly used to print the values of variable or method.

Syntax of JSP expression tag


  1. <%=  statement %>  

Example of JSP expression tag

In this example of jsp expression tag, we are simply displaying a welcome message.

  1. <html>  
  2. <body>  
  3. <%= "welcome to jsp" %>  
  4. </body>  
  5. </html>  

Example of JSP expression tag that prints current time

To display the current time, we have used the getTime() method of Calendar class. The getTime() is an instance method of Calendar class, so we have called it after getting the instance of Calendar class by the getInstance() method.
index.jsp

  1. <html>  
  2. <body>  
  3. Current Time: <%= java.util.Calendar.getInstance().getTime() %>  
  4. </body>  
  5. </html>  

Example of JSP expression tag that prints the user name

In this example, we are printing the username using the expression tag. The index.html file gets the username and sends the request to the welcome.jsp file, which displays the username.
File: index.jsp

  1. <html>  
  2. <body>  
  3. <form action="welcome.jsp">  
  4. <input type="text" name="uname"><br/>  
  5. <input type="submit" value="go">  
  6. </form>  
  7. </body>  
  8. </html>  
File: welcome.jsp

  1. <html>  
  2. <body>  
  3. <%= "Welcome "+request.getParameter("uname") %>  
  4. </body>  
  5. </html>  

JSP Declaration Tag

The JSP declaration tag is used to declare fields and methods.
The code written inside the jsp declaration tag is placed outside the service() method of auto generated servlet.
So it doesn't get memory at each request.

Syntax of JSP declaration tag

The syntax of the declaration tag is as follows:

  1. <%!  field or method declaration %>  

Difference between JSP Scriptlet tag and Declaration tag

Jsp Scriptlet Tag
Jsp Declaration Tag
The jsp scriptlet tag can only declare variables not methods.
The jsp declaration tag can declare variables as well as methods.
The declaration of scriptlet tag is placed inside the _jspService() method.
The declaration of jsp declaration tag is placed outside the _jspService() method.

Example of JSP declaration tag that declares field

In this example of JSP declaration tag, we are declaring the field and printing the value of the declared field using the jsp expression tag.

index.jsp


  1. <html>  
  2. <body>  
  3. <%! int data=50; %>  
  4. <%= "Value of the variable is:"+data %>  
  5. </body>  
  6. </html>  


Example of JSP declaration tag that declares method

In this example of JSP declaration tag, we are defining the method which returns the cube of given number and calling this method from the jsp expression tag. But we can also use jsp scriptlet tag to call the declared method.

index.jsp


  1. <html>  
  2. <body>  
  3. <%!   
  4. int cube(int n){  
  5. return n*n*n*;  
  6. }  
  7. %>  
  8. <%= "Cube of 3 is:"+cube(3) %>  
  9. </body>  
  10. </html>  

No comments:

Post a Comment