Java Server Pages

JSP Projects

JSP Project

adplus-dvertising
Java Server Pages(JSP)

Java server pages (JSP) is based on java languages and used to develop dynamic web pages JSP was developed by Sun Microsystems to allow server side development. JSP files are HTML files with special Tags containing Java source code that provide the dynamic content.JSP provide excellent server side scripting support for creating database driven web applications. JSP is a java technology which allows developers to create wide ranges of web services like ecommerce, banking ,corporate intranet banking. JSP combines HTML, XML, Java Servlet and JavaBeans technologies into one highly productive technology which allow web developers to develop reliable, high performance and platform independent web applications .
JSP Basics

JSP Tutorials and Interview Question
JSP Hot Topics
Why JSP?

JSP is easy to learn. as JSP is based on java it provide robust plateform for web development. JSP file contains the HTML , XML , Java Servlet and Java Beans technologies. you can take one JSP file move it to the different plateform. web server or JSP servlet engine.

Advantage of JSP

Write once run anywhere:-As JSP is based on java so ,it provide it plateform independent functionality .once the program of JSP is written it can be deployed or run on any JSP enabled server. without rewriting the changes

Uses Servlet API:-If you are a servlet developer, then it is easy to move over to JSP. In fact, servlet developers are at a distinct advantage because JSP is nothing but a high-level abstraction of servlets. You can do almost anything that can be done with servlets using JSP in a easy way.

Separate dynamic part from the static:- JSP provide a new feature that it separate a dynamic part of program from the static HTML part

JSP container provide easy way for accessing objects and actions.

Compatibility of JSP with ASP , ASP.net ,and Servlet

Comparison between JSP and ASP

Functionally both the languages are same with some differences. JSP is developed by Sun Microsystems so it acquire the features of java .while ASP is developed by Microsoft .JSP is plateform independent it run on any operating system that confirm to the J2EE specifications. Whereas ASP is mostly found on Microsoft platforms i.e. NT, JSP allow component reuse by using JavaBeans and EJBs. ASP provides the use of COM / ActiveX controls.

Comparison of JSP with ASP.net

The main difference between JSP and ASP .net is that ASP. net is based Microsoft .NET frame work. but JSP is idependent just like java.

Comparison of JSP with Servlet

A java class which provide special side services is called server.but it is hard work to write HTML code in Servlets. In Servlets number of println statements are used to generate HTML. JSP pages are converted to Servlets so actually can do the same thing as old Java Servlets.

JSP Architecture

JSPs are built on SUN Microsystems' servlet technology. JSPs are HTML page with special JSP tags. These JSP tags can contain Java code. The JSP file extension is .jsp . The JSP engine parses the .jsp and creates a Java servlet source file. when first time jsp file compile , the JSP is probably slower the first time it is accessed. Any time after this the special compiled servlet is executed and is therefore returns faster.

Setting up JSP environment
  • Download the latest JDK .
  • Setting the path and class path for window 2000 and XP edit the environment variables control panel-->system-->Environment variable
  • Download JSP environment
First Java Page

A JavaServer Page, is a web page which is embedded Java code. Java code is executed in the server side and merge with the static elements of the web page such as HTML tags then returns the result which is plain old HTML code, JavaScript and CSS to the web browser.

<%@page 
contentType="text/html" 
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC
 "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
 <head>
  <title>JSP Page!</title>
 </head>
 <body>
  <h1>
<%
 out.println("Hello to all!");
%>
  </h1>
 </body>
</html>

JSP is composed of HTML and java code. java code is embedded between the notations <% and %> and it is called Scriplet .Inside the scriptlet block, we call the method println of the out object to print the text "Hello to all"

JSP Scripting elements

JSP scripting allows you to add java code the servlet which is generated from the jsp page. These are the forms of scripting elements such ascomments, expression , scriptlet , declaration and expression language.

JSP Comments

JSP comments are used to explain the complicated logic code or to mark some region inside a JSP page for later changes. Comments in JSP is declared inside a JSP page as follows:

comments are embedded inside <%-- and --%>
<%-- This is a JSP comment 
for single line --%><%-- 
This is a JSP comment for 
multiple lines
--%>
JSP Expressions

Expression is used to insert values directly to the output. Syntax of expression is as follows

<%= expression %> there is no space between <% and =

For example: To show the current date and time

Date : <%= new java.util.Date() %>

JSP Scriptlet

Scriplet are just like Expressions without having "=" equal sign. any java code can be insert inside the scriplet.

Syntax of Scriptlet

<% // any java source code here %>

JSP Declaration
If you want to define methods or fields you can use JSP declaration. The JSP declaration is surrounded by the sign <%! and %>.
Syntax to declare a variable

<%! int a = 30 ; %>here variable a is declare
JSP Directive tag

JSP directive tag gives special information about the page to the JSP engine.
Syntax of Directive tag

Directive tag ( <%@ directive ... %> )

there are mainly three type of directive tags

  1. page:- used to provide the information about the page
  2. include: - include is used to include a file in a JSP page.
  3. tag library:-taglib is used to use the custom tags in the JSP pages (custom tags allows us to defined our own tags).
JSP life cycle

JSP Life cycle can be divided into four phases

  1. Translation:-In translation phase, JSP engine translate JSP page into its page implementation class if the syntax is correct. This class is actually a standard Java servlet. After that, JSP engine compiles the source file into class file and ready for use. When the container get the request, then it checks for the changes in the JSP page since it was last translated. If no changes was occur, JSP loads the servlet otherwise the process of check occurs ,then it translate and compile again. Because the compilation process takes time so JSP engine wants to minimize it to increase the performance of the page processing
  2. Initialization:-JSP engine loads the class file and create an instance of of the servlet to handle processing of the initial request. JSP engines will call a method jspInit() to initialize the a servlet.
  3. jspInit method is generated during the translation phase which is normally used for initializing application-level parameters and resource

    <%!
    public void jspInit()
    {
       // write custom here  
    }
    %>
    

  4. Execution:-After the initialization phase, the web container calls jspService() to handle the request and returning a response to the client. Each request is handled in a separate thread.
  5. Finalization:- In the finalization phase, the web container calls the method jspDestroy(). This method is used to clean up memory and resources.
  6. <%!
    public void jspDestroy()
    {
    // write custom code here 
    	  //to cleanup the resources 
    }
    %>
    
JSP implicit objects

These objects are available for the JSP developer and they can use the objects in the JSP files without declaring the objects in the JSP. JSP container provides a list of instantiated objects for you to access different kind of data in a web application. These objects are called implicit objects as they are automatically available for the implement. The following is the list of few implicit objects used in JSP. request object response objectsession objectout objectpagecontext objectconfig object exception objectapplication object

JSP form processing

The browser uses two methods to pass information to web server. These methods are GET Method and POST Method.

  1. GET Method The GET method is the defualt method to pass information from browser to web server. The GET method is used to send request to the server. The page and the encoded information are separated by the ?character as follows: http://www.r4r.co.in/hello?key1=value1&key2=value2 Don't send sensitive information like password using GET method because they are not safe. POST method is safe to pass sensible information.
  2. POST Method The post method is good method to passing information to a backend program . it sends information as a separate message. This message comes to the backend program in the form of the standard input which you can parse and use for your processing.
To handle this type of request JSP uses two methods
  • getparameter method to read simple parameter.
  • getInputStream method to read binary data stream coming from the client.

Reading of data using JSP

JSP used form data parsing automatically depending on the situation. following are the methods which used by the JSP

  • getParameter():-To get the value of a form parameter you use request.getParameter()
  • getParametervalue():-if the parameter appears more than once and returns multiple values, than use this for example in case of chekbox
  • getParametername():- if you want complete list of all parameters in the current request than used this method
  • getInputStream():- is used to read binary data comes from the client side.
JSP program for checkbox using Get Method and Post method

First to create html form using checkbox

<html>
<body>
<form action="form.jsp" method="POST" target="_blank">
<input type="checkbox" name="java" checked="checked" /> java
<input type="checkbox" name=".net" checked=".net" /> .net
<input type="checkbox" name="C#" checked="C#" /> Chemistry
<input type="submit" value="Select languages" />
</form>
</body>
</html>

following is the "form.jsp" jsp program to handle the input given by the web browser.

<html>
<head>
<title>Reading Checkbox Data</title>
</head>
<body>
<center>
<h1>Reading Checkbox Data</h1>
<ul>
<li><p><b>java Flag:</b>
<%= request.getParameter("java")%>
</p></li>
<li><p><b>.net Flag:</b>
<%= request.getParameter(".net")%>
</p></li>
<li><p><b>C# Flag:</b>
<%= request.getParameter("C#")%>
</p></li>
</ul>
</body>
</html>

JSP custom Tag

JSP is the technology which helps to separate the front end presentation from the middle and backend tiers. The custom tag library is a important feature of JSP that comes in that separate form. This technology is valuable to anyone who is building production-quality web applications. It is a user-defined JSP language element. Custom tag allows programmer to hide code in a Java class and access it from a tag in JSP.Some examples of tasks that can be performed by custom tags include operating on implicit objects, processing forms, accessing databases and other enterprise services such as email and directories, and implementing flow control. Custom tags increase productivity because they can be reused in more than one application.

The following steps are to be taken to create a custom tag.

  • Create Tag Handler
  • Create Tag Library Descriptor (.TLD )
  • Register TLD in JSP and use tags declared in TLD
The first task is creating a simple tag. This is mainly to understand the overall process involved in creating a custom tag in JSP 2.0.

Tag Handler

Tag handler is a Java class that responds to events raised by container when custom tag is encountered. Every Tag handler must implement Tag interface or extend TagSupport class provided by JSP API.

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
import java.util.Date;
public class CurrentTime extends SimpleTagSupport
{
 public void doTag() throws JspException , IOException
 {
  JspWriter out = getJspContext().getOut();
  out.println( new Date().toString());
 }
} // end of class
Tag library descriptor

TLD file is an XML file containing details of tags. TLD file can be placed any where within WEB-INF indirectory.

The TLD file provides details regarding the library such as its version and the version of JSP it needs and tags.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems,
Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>st</short-name>
<tag>
<name>time</name>
<tag-class>st.CurrentTime</tag-class>
<body-content>empty</body-content>
</tag>
<tag>
 <name>formattime</name>
 <tag-class>st.FormatCurrentTime</tag-class>
 <body-content>empty</body-content>
 </tag>
</taglib>
Registtering Tag

Before a custom tag is used, its tag library descriptor (TLD) is to be registered in JSP using taglib directive. taglib directive specifies the name of TLD file and prefix to be used while using the tags in the library.

The following JSP registers st.tld and uses time tag with prefix st.
<%@ taglib uri="/WEB-INF/tlds/st.tld" prefix="st"%>
<st:time/>
Full code of JSP page is as follows:
CustomTag.jsp
<%@ taglib uri="/WEB-INF/taglib.tld" prefix="custom" %>
<html>
<head>
<title>Custom Tag </title>
</head>
 <body bgcolor="fffff">
 <H1>Welocome ! </H1>
  Custom tag work starts here...
 <custom:empty/>
  here Custom tag work ends...
 Body Content of JSP page write here
 </body>
</html>