JSP What Is Javaserver Pages?: Cgi Means "Common Gateway Interface"
JSP What Is Javaserver Pages?: Cgi Means "Common Gateway Interface"
JavaServer Pages (JSP) is a server-side programming technology that enables the creation of
dynamic, platform-independent method for building Web-based applications.
JSP have access to the entire family of Java APIs, including the JDBC API to access enterprise
databases.
JavaServer Pages (JSP) is a technology for developing web pages that support dynamic content
which helps developers insert java code in HTML pages by making use of special JSP tags, most
of which start with <% and end with %>.
Using JSP, you can collect input from users through web page forms, present records from a
database or another source, and create web pages dynamically.
JSP tags can be used for a variety of purposes, such as retrieving information from a database or
registering user preferences, accessing JavaBeans components, passing control between pages
and sharing information between requests, pages etc.
JavaServer Pages often serve the same purpose as programs implemented using the Common
Gateway Interface (CGI). But JSP offer several advantages in comparison with the CGI.
Finally, JSP is an integral part of J2EE, a complete platform for enterprise class applications.
This means that JSP can play a part in the simplest applications to the most complex and
demanding.
Advantages of JSP:
Following is the list of other advantages of using JSP over other technologies:
• vs. Active Server Pages (ASP): The advantages of JSP are twofold. First, the dynamic
part is written in Java, not Visual Basic or other MS specific language, so it is more
powerful and easier to use. Second, it is portable to other operating systems and non-
Microsoft Web servers.
• vs. Pure Servlets: It is more convenient to write (and to modify!) regular HTML than to
have plenty of println statements that generate the HTML.
• vs. Server-Side Includes (SSI): SSI is really only intended for simple inclusions, not for
"real" programs that use form data, make database connections, and the like.
• vs. JavaScript: JavaScript can generate HTML dynamically on the client but can hardly
interact with the web server to perform complex tasks like database access and image
processing etc.
• vs. Static HTML: Regular HTML, of course, cannot contain dynamic information.
JSP - Architecture
The web server needs a JSP engine i.e. Container to process JSP pages. The JSP container is
responsible for intercepting requests for JSP pages. A JSP container works with the Web server
to provide the runtime environment and other services a JSP needs. It knows how to understand
the special elements that are part of JSPs.
Following diagram shows the position of JSP container and JSP files in a Web Application.
JSP Processing:
The following steps explain how the web server creates the web page using JSP:
• As with a normal page, your browser sends an HTTP request to the web server.
• The web server recognizes that the HTTP request is for a JSP page and forwards it to a
JSP engine. This is done by using the URL or JSP page which ends with .jsp instead of
.html.
• The JSP engine loads the JSP page from disk and converts it into a servlet content. This
conversion is very simple in which all template text is converted to println( ) statements
and all JSP elements are converted to Java code that implements the corresponding
dynamic behavior of the page.
• The JSP engine compiles the servlet into an executable class and forwards the original
request to a servlet engine.
• A part of the web server called the servlet engine loads the Servlet class and executes it.
During execution, the servlet produces an output in HTML format, which the servlet
engine passes to the web server inside an HTTP response.
• The web server forwards the HTTP response to your browser in terms of static HTML
content.
• Finally web browser handles the dynamically generated HTML page inside the HTTP
response exactly as if it were a static page.
All the above mentioned steps can be shown below in the following diagram:
Typically, the JSP engine checks to see whether a servlet for a JSP file already exists and
whether the modification date on the JSP is older than the servlet. If the JSP is older than its
generated servlet, the JSP container assumes that the JSP hasn't changed and that the generated
servlet still matches the JSP's contents. This makes the process more efficient than with other
scripting languages (such as PHP) and therefore faster.
So in a way, a JSP page is really just another way to write a servlet without having to be a Java
programming wiz. Except for the translation phase, a JSP page is handled exactly like a regular
servlet
The key to understanding the low-level functionality of JSP is to understand the simple life cycle
they follow.
A JSP life cycle can be defined as the entire process from its creation till the destruction which is
similar to a servlet life cycle with an additional step which is required to compile a JSP into
servlet.
• Compilation
• Initialization
• Execution
• Cleanup
The three major phases of JSP life cycle are very similar to Servlet Life Cycle and they are as
follows:
When a browser asks for a JSP, the JSP engine first checks to see whether it needs to compile the
page. If the page has never been compiled, or if the JSP has been modified since it was last
compiled, the JSP engine compiles the page.
Typically initialization is performed only once and as with the servlet init method, you generally
initialize database connections, open files, and create lookup tables in the jspInit method.
This phase of the JSP life cycle represents all interactions with requests until the JSP is
destroyed.
Whenever a browser requests a JSP and the page has been loaded and initialized, the JSP engine
invokes the _jspService() method in the JSP.
The _jspService() method of a JSP is invoked once per a request and is responsible for
generating the response for that request and this method is also responsible for generating
responses to all seven of the HTTP methods ie. GET, POST, DELETE etc.
The destruction phase of the JSP life cycle represents when a JSP is being removed from use by
a container.
The jspDestroy() method is the JSP equivalent of the destroy method for servlets. Override
jspDestroy when you need to perform any cleanup, such as releasing database connections or
closing open files.
The Scriptlet:
A scriptlet can contain any number of JAVA language statements, variable or method
declarations, or expressions that are valid in the page scripting language.
<jsp:scriptlet>
code fragment
</jsp:scriptlet>
1. Directives
In the directives we can import packages, define error handling pages or the session
information of the JSP page.
2. Declarations
This tag is used for defining the functions and variables to be used in the JSP.
3. Scriplets
In this tag we can insert any amount of valid java code and these codes are placed in
_jspService method by the JSP engine.
4. Expressions
We can use this tag to output any data on the generated page. These data are
automatically converted to string and printed on the output stream.
There are four types of JSP tags, which are important and often required.
1. Directives
1. Code: JSP
2. Code: JSP
3. Code: JSP
4. Code: JSP
5. Code: JSP
2. Declarations
JSP declarations starts with '<%!' and ends with '%>'. In this you can make
declarions such as int i = 1, double pi = 3.1415 etc. If needed, you can also write
Java code inside declarations.
Example 1
<%!
int radius = 7;
double pi = 3.1415;
%>
3. Scriptlets
JSP Scriptlets starts with '<%' and ends with '%>'. This is where the important Java
code for JSP page is written.
Example
Code: JSP
<%
String id, name, dob, email, address;
id = request.getParameter("id");
name = request.getParameter("name");
dob = request.getParameter("dob");
email = request.getParameter("email");
address = request.getParameter("address");
sessionEJB.addClient(id, name, dob, email, address);
%>
request, response, session and out are the variables available in scriptlets.
4. Expressions
JSP expressions starts with '<%=' and ends with '%>'. If you want to show some
value, you need to put it in between these tags.
Example:
Code: JSP
<%!
double radius = 7;
double pi = 22/7;
double area()
{
return pi*radius*radius;
}
%>
<html>
<body>
Area of circle is <%= area() %>
</body>
</html>
Area of circle is 147.0
JSP is used mainly for presentation only. A JSP can only be HttpServlet that means
the only supported protocol in JSP is HTTP. But a servlet can support any protocol
like HTTP, FTP, SMTP etc.
Servlets-
(1)Bits of HTML embedded in java code.(2) Suitable for coding business layer of enterprise
application.(3)Created and maintained by Java programmers
JSP-
(1) Bits of java code embedded in HTML.
(2)Suitable for coding presentation layer of enterprise application
(3)Created and maintained by Web designers.
Servlets are pure java codes,here we can't used HTML. But in JSP we can use
HTML,so we can modify and also updated the data.