<!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="02">
<meta name="Author" content="Cheng-chien Yu">
<meta name="Source" content="from Sun Microsystem">
<link rel="stylesheet" type="text/css"
href="resource/assignment02.css" title="formal">
</head>
<body bgcolor="#ffffff">
<!-- a link to navigate from the top to bottom -->
<a href="#bottom"><img src="images/go_bottom.gif" border="0" alt="Go Bottom"></a>
<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" alt="" border="0">
</td>
<td bgcolor="#8CAAE7" nowrap width="100%">
<img src="images/ts.gif" width="1" height="1" alt="" border="0">
<b class="heading">3. 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:
<div class="list">
<UL>
<a href="http://jakarta.apache.org/tomcat/">
<img border="0" src="images/tomcat2.gif" hspace="10" align="right"></a>
<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 class="list">
<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
<a href="http://java.sun.com/products/jsp/">java.sun.com/products/jsp/</a>
.) 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>
<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>
<div style="float:right; text-align:right">
<a class="textbody" href="assign03_01.htm">PREVIOUS PAGE</a></div>
<!-- a link to navigate from the bottom to top -->
<a href="#top"><img src="images/go_top.gif" border="0" alt="Go Top"></a>
<!-- end of content -->
<hr>
<div class="textbody" align="center">
<!-- a mail-to link -->
Web Page Made By : <i><a href="mailto:chengchien@linkline.com">Cheng-chien Yu</a></i><br>
Attaendant Class : Santa Monica College - CIS 36H<br>
<!-- Update the last modified date by JavaScript -->
<script language="JavaScript" type="text/javascript">
<!--
document.write("Last Modified: " + document.lastModified);
// -->
</script><br><br>
<!-- A text navigation line in the footer, which contain a link for each of pages,
a link to the class home page, and a link to the SMC homw page -->
<a href="assign03_01.htm">page one</a> |
<a href="assign03_02.htm">page two</a> |
<a href="http://www.ais.ucla.edu/class/class.htm">Class home</a> |
<a href="http://www.smc.edu/">SMC home</a>
</div>
<!-- define the position of bottom -->
<a name="bottom"></a>
</body>
</html>