<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Java Server Page</title>
<meta name="Description"
content="A Simplfied Guide to JavaServer Pages Technology">
<meta name="Page" content="04">
<link rel="stylesheet" type="text/css"
href="resource/assignment02.css" title="local_formal">
</head>
<body background="images/cloudbg.gif"
topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<div class="head" style="text-align:right">
<a href="http://java.sun.com/products/jsp/">
<img border="0" src="images/javalogo52x88.gif" width="52" height="88"
vspace="0" hspace="10" align="right" alt="JSP Home"></a><br>
<big>J</big>AVA<big>S</big>ERVER <big>P</big>AGES<SUP><small>TM</small></SUP>
<BR>A Simplified Guide
</div>
<!-- main page content -->
<table cellspacing="0" cellpadding="0" border="0" height="19">
<tr>
<td bgcolor="#8CAAE7" valign="top">
<img src="images/crvRt_8CAAE7.gif" width="10" height="19" border="0"></td>
<td bgcolor="#8CAAE7" nowrap width="100%">
<img src="images/ts.gif" width="1" height="1" alt="" border="0">
<b class="heading">6. JSP Deliverables</b></td>
<td width="175" height="19" background="images/gradient_8CAAE7.gif">
<img src="images/ts.gif" width="175" height="19" alt="" border="0"></td>
</tr>
</table>
<P>Sun's standard practice for a Java API is to provide the API specification with
documentation and a reference implementation, so developers and companies can refer
to a code implementation as they develop their own. Sun provides the following
deliverables for JSP technology:
<!-- use the DIV tags with style attribute, change the font color of text
and backgound color -->
<div style="{color:#CC6600; font-family:verdana,arial; font-size:12px; text-align:justify}">
<UL>
<div style="float:right text-align:right">
<a href="http://jakarta.apache.org/tomcat/">
<img border="0" src="images/tomcat2.gif" width="85" height="102" vspace="0"
hspace="10" align="right" alt="Tomcat Home"></a></div>
<LI>The JSP Specification - This document defines the application programming
interface. The specification is a useful source document for JSP syntax.</LI>
<LI>The JSP Reference Implementation - Sun licensed the JSP and Servlet Reference
Implementation to the Apache Software Foundation. This project, called
<a href="http://jakarta.apache.org/tomcat/"><BIG><strong style="color:#0000ff">
Tomcat@Jakarta</strong></BIG></a>, is freely distributable and licensed directly
from Apache. Tomcat is already pre-integrated with the Apache Web Server, a
popular Web server. For those not using the Apache Web Server, most other Web
servers are well on their way to shipping support for JSP technology
(see java.sun.com/products/jsp/ for more information).</LI>
</UL>
</div>
</P>
<P><B>Competitive Landscape</B></P>
<P>To understand how JSP technology fits in the progression of products supporting
dynamic content, it is worth describing a few of the alternatives.
<div style="{color:#CC6600; font-family:verdana,arial; font-size:12px; text-align:justify}">
<UL>
<LI>CGI (Common Gateway Interface) - CGI programs were an early solution for
simplifying dynamic content. CGI programs are typically written in C or
in Perl, a freely-distributed programming language. Still prevalent in
Web-based applications, they can experience severe performance problems
when scaling to support high-volume access.</LI>
<LI>Mod_perl is a plug-in for the Apache Web Server that integrates the Perl
programming language with the Web server, so programmers can write Web
server extensions in Perl. As a replacement for the CGI interface,
mod_perl addresses some of the limitations of CGI. This is a powerful
solution, but it still has the programmers developing the pages
themselves, and is tied closely to the Apache Web Server.</LI>
<LI>Microsoft Active Server Pages (ASP) technology is closer in spirit to JSP
technology than the others because its goal is to simplify the page
development process. ASP is essentially limited to the Microsoft IIS
Web Server information, see java.sun.com/products/jsp/.) ASP relies
heavily on Basic-based scripting languages, which tend to be less
scalable and more difficult to maintain over time than a
component-based approach.</LI>
</UL>
</div>
</P>
<P><B>Portability Across Platforms and Servers</B></P>
<P>JSP technology, as part of the Java family, is designed to adhere to the
Write Once, Run Anywhere credo. Pages created with JSP technology can run on
any server, on any platform. Components (such as JavaBeans or tag libraries)
developed on one platform can run easily on another.</P>
<P>JSP is unique in this capacity - none of the other solutions have this
degree of platform-independence and cross-platform portability. This frees
businesses from depending on a single vendor for product solutions or
development directions.</P>
<P><B>Scalability</B></P>
<P>Scalable performance is critical for Web pages that handle a significant volume
of users. CGI pages have a significant weakness when scaling to handle many concurrent
users. A CGI application creates a new process for each access, creating significant
performance problems in high-volume sites.</P>
<P>JSP pages are compiled once when first invoked and remain in memory; this provides
better scalability for high-volume sites than the CGI approach.</P>
<P><B>Ease of Development, Deployment, and Maintenance</B></P>
<P>Creating CGI programs and mod_perl scripts are tasks belonging to programmers familiar
with the programming languages. The same can be said of writing beans or custom tag
libraries - it requires familiarity with the Java language. But writing and maintaining
JSP pages that call these custom components is a task that can be delegated to page
authors familiar with HTML or XML. In other words, only the JSP technology really enables
a tiered development methodology leveraging each person's skills (described above) in
addition to a tiered architecture.</P>
<P>Some of the other differences are summarized in the table below. For a more direct
comparison of the technologies, please see java.sun.com/products/jsp/.</p>
<!-- use the DIV tags with style attribute, change the backgound color -->
<div style="{background:#FFFFCC; padding:0.2em}">
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="3">
<TR>
<TD></TD>
<TD><B>CGI/Perl </B></TD>
<TD><B>Mod_Perl</B></TD>
<TD><B>ASP</B></TD>
<TD><B>JSP</B></TD>
</TR>
<TR>
<TD><B>Web server</B></TD>
<TD>Any Web server</TD>
<TD>Apache Web Server</TD>
<TD>Microsoft IIS or Personal Web Server</TD>
<TD>Any Web server, including Apache, Netscape, IIS today</TD>
</TR>
<TR>
<TD><B>Portable across platforms/servers</B></TD>
<TD>No</TD>
<TD>No</TD>
<TD>No</TD>
<TD>Yes</TD>
</TR>
<TR>
<TD><B>Reusable, modular code</B></TD>
<TD>No</TD>
<TD>No</TD>
<TD>No</TD>
<TD>Yes</TD>
</TR>
<TR>
<TD><B>Scripting language</B></TD>
<TD>C, Perl</TD>
<TD>Perl</TD>
<TD>VBScript, JScript</TD>
<TD>Java</TD>
</TR>
<TR>
<TD><B>Memory leak protection</B></TD>
<TD>Yes</TD>
<TD>No</TD>
<TD>No</TD>
<TD>Yes</TD>
</TR>
<TR>
<TD><B>Supports concurrent access without separate processes</B></TD>
<TD>No</TD>
<TD>Yes</TD>
<TD>Yes</TD>
<TD>Yes</TD>
</TR>
</TABLE>
</div>
<BR>
<!-- end page content -->
<div style="float:right; text-align:right">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a class="textbody" href="assignment03-03.htm">
<img src="images/arrow_back.gif" border="0" align="right" alt="Previous Page"></a></td>
<td class="textbody"><b>04</b> OF <b>04</b></td>
</tr>
</table>
</div>
<a href="#top"><img src="images/top_v1.gif" border="0" alt="Back To Top"></a>
<!-- footer -->
<hr>
<center><pre class="textbody">
Web Page Designed By : <i><a href="mailto:chengchien@linkline.com">Cheng-chien Yu</a></i>
Attaendant Class : Santa Monica College - CIS 36H
Due Date : September 29, 2001.
</pre></center>
<hr>
</body>
</html>