⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0013.htm

📁 JspServlet教程专栏 对javaservlet讲述的非常详细
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
<title>网络新时代,软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
</head>

<body>

<p align="center"><script src="../../1.js"></script> </p>

<p align="center"><big><strong>一、简介</strong></big></p>
<font color="#000066"><b>

<p align="center">作者:林立伟 东海大学资讯科学系</b></font> </p>

<p>  在1996年,大家发现利用Java语言本身具有的优点来开发server端的应用程式是非常有利的。所以有软体厂商开始发展一些技术来帮助Java程式设计,使得server端的程式开发更具效率。例如Netscape的 
&quot;server-side applets&quot;、World Wide Web Consortium的 &quot;resource&quot;、和O'Reilly的 
&quot;servlets&quot;(这里指的是O'Reilly自行开发的技术,也称servlets),但这些技术都必须搭配著特殊的server,或者只专为某些问题所设计。接著在1997年,JavaSoft(Sun 
Microsystems)提出了Java servlet,它结合上述各家的技术成为一个单一、标准、通用的机制。Servlets可以在Java-based或non-Java-based的server上执行,目前Apache、IIS、Java 
web server、Jigsaw web server、Novell NetWare、Personal web server 及 Zeus web server等web 
servers 都已支援servlet。因为servlet并不是专为http protocol所设计,它可以依使用者的 求设计自己的protocol,所以servlet也支援non-web 
servers。</p>

<p>  Servlet可以用来扩充Java-enabled server的基本功能,而今日最常使用的是增加web 
server的互动性,它提供了强而有力且具效率的技术来取代CGI(common 
gateway interface)。传统的web server只提供静态网页的服务,并不能产生动态网页。为了克服此限制,我们通常都会另外撰写程式,而这类为了产生动态网页或是扩充web-server的基本功能的程式便称为web 
applications。它可以简单的只做关键字搜寻,但其动作的复杂度也可以像电子签章般。为了 解servlet的优点我们必须认识一些其它设计web 
application的方法。</p>

<p>  最早用来产生动态网页服务的方法便是CGI。它的作法是透过web 
server将client端的请求送给一个程式,这个程式再将请求的执行结果传回 
client端。图一便是 CGI 的生命周期。</p>

<p align="center"><br>
<img src="images/serv_f1.jpg" width="286" height="185"> <br>
图一、CGI 的的生命周期 </p>

<p>  由图一我们不难发现CGI程式的缺点之一,就是非常耗费系统资源。只要是一个新的请求(request),不管它是否和先前的请求相同,CGI的方法都是产生一个新的process来处理,而processes不管是本身或是processes之间做context-switching时,都会占用很多系统资源。为了解决这个缺点CGI也有新的改进方法,如OpenMarket的FastCGI。它最大的不同是:当有新的相同请求产生时,只会对应到相同的process,不会有新的process产生。也就是同一个FastCGI程式只有一个process在执行。图二便是FastCGI的生命周期。</p>

<p align="center"><br>
<img src="images/serv_f2.jpg" width="257" height="114"> <br>
图二、FastCGI的生命周期 </p>

<p>  虽然这样在提供相同请求的时候确实会减少 process 
的数量,但是面对不同请求的时候还是会产生许多的processes,最根本的问题还是没有解决。不过为了改善CGI的缺点仍有新的方法提出如mod_perl、perlEx等,於此我们不再详加叙述。</p>

<p>  其它的设计方法包括Microsoft提出的ASP ( Active Service Pages),及Netscape所提出的SSJS 
(Server-Side JavaScript) 等。使用ASP可在HTML中插入一小段程式(通常是VBScript或是JavaScript),web 
server会在将网页送出之前读取,执行後将结果一并传回client端。而SSJS和ASP极为类似,不同的是它使用的语言是JavaScript。</p>

<p>  Servlet采用了上述方法的优点,并修正其缺点。在servlet中每一个请求都是由同一个process下的thread所服务,而且相同的请求会由同一个thread所执行。同时servlet是用Java语言来开发的,所以它继承了Java原有的特性,也就是跨平台,而这个优点更是CGI所没有的,图三则是servlet的生命周期。</p>

<p align="center"><br>
<img src="images/serv_f3.jpg" width="257" height="137"> <br>
图三、Servlet的生命周期 </p>

<p>  虽然servlet最常被用来取代CGI,但其功能绝不仅於此。它可以被用来扩充任何种类的server,如FTP 
server。在FTP server中,每个ftp指令都可对应一个独立的servlet,当有新的指令规格产生时,只要加入新的servlet即可。</p>

<p><br>
<br>
                [搜集整理] </p>

<p align="center"><script src="../../2.js"></script> </p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -