发信人: woohyuk()
整理人: ipaq(2001-05-24 21:23:00), 站内信件
|
一、前言
Internet/Intranet和WEB技术的出现和发展,为信息的交换和共享提供了
快捷有效的方法,但Internet/Intranet上提供的信息多以静态网页为主,对
于一个WEB应用开发者来说,最关心的莫过于如何增强网页的动态性和交互性
了。Active ServerPages是微软开发的基于Windows NT Server和IIS的服务
器端脚本运行环境,脚本在Web服务器中运行,而浏览器并不处理脚本,它所面
对的仅仅是一个完全符合HTML格式的网页,这为更多的、不同类型的浏览器访
问WEB服务器提供可能。
二、ASP的体系结构
通用网关接口CGI和Microsoft Information Server应用程序接口ISAPI
是开发交互式的WEB应用常用的两种接口方式,CGI是基于WEB服务器与数据库
之间的联系的服务器端进程,它可以完成对数据库的底层操作,客户通过GET/PO
ST向WEB服务器提出服务请求,服务器端的守护进程通过标准输入Stdin和环境
变量将参数传送给指定的CGI程序,执行结果将以HTML格式返回给客户。对于大
多数Internet应用程序,CGI为开发应用提供了一个很好的平台,但CGI在性能
方面却有两个我们不可回避的缺陷:
(1)一个CGI程序不能为多个客户共享,对于新的请求必须启动新的 进程
,见图.1 随着客户请求的增加,并行的进程也将越多,这对系统资源来说是一
种极大的浪费,同时也加重了服务器的负担,降低了性能。
(2 )不提供永久性的上下文信息。比如:用户需要查询一个大型数据库,
结果可能是上千行的数据,如果用户想每次只显示10行的数据,但CGI在输出
10行数据后就停止执行,要再显示下10行的数据必须再执行一次CGI程序,这种
方式显然效率不高。
ISAPI有比CGI更好的性能,因为ISAPI应用以动态链接库形式存在,在其启
动时被加入内存、并且和WEB服务器进程处于同一个系统空间,占用系统资源较
少。效率虽然提高了,但也带来了更大的风险,ISAPI进程和服务器进程处于同
一系统进程空间,因此,一个违规操作就有可能导致WEB服务器的崩溃。另外无
论是CGI程序还是ISAPI程序基本上是独立于HTML之外的,完全用另一种语言开
发,工作量大,与HTML结合得不够紧密。
ASP是基于Microsoft Windows NT 4.0和Microsoft Internet Informat
ion Server3.0 (IIS3.0)的开放式脚本开发环境,它很好地把HTML和脚本开
发融合在一起,提高了编程的灵活性,降低了开发难度。ASP中的脚本在WEB服
务器端运行,而不是传统的在客户浏览器中运行,这一措施使客户的浏览器无
须担心服务器端的网页使用何种脚本,ASP都会生成一个符合HTML标准的网页
送回客户端,ASP在性能方面的优势体现在以下几点:
(1) 完全与HTML融合在一起;
(2) 创建简单,不需要编译和链接,脚本可以在ASP环境下直接运行;
(3) 面向对象,功能可以由Activex服务器构件扩展;
(4) 由于脚本在服务器端执行,因此它几乎可以支持任何一种浏览器。
ASP在性能和效率方面优于CGI、ISAPI,这主要源于它先进的体系结构,
ASP直接建立于WEB服务器中,并且是作为WEB服务器的一个服务运行,支持多
用户,多线程。HTTP协议是一个无状态的协议,WEB服务器不能记忆客户浏览
器过去曾发送过的请求信息,客户的每次请求都是独立的,彼此之间没有联系,
因而服务器的许多时间都花费在处理请求上,服务效率受到了影响。ASP拥有
强有力的会话管理机制,它可以实现各请求之间的信息共享,提高了效率。ASP
在安全性方面也作了细心的考虑,包括:设定虚拟目录访问权限、用户身份检
测、隐含脚本等措施。ASP支持多种脚本,比较常用的有VbScript和JScript。
三、开发ASP应用
(1)系统要求:
在安装ASP之前,系统必须符合以下三个要求之一:
· Windows NT Server 4.0 +Service Pack 3 +IIS 3.0
· Windows NT WorkStation 4.0 +Peer WEB Server 3.0
· Windows 95 Personal WEB Server 1.0 a
(2)ASP应用程序的组成
一个ASP文件以 .asp作为其扩展名,代替先前的.HTML或.HTM,.asp文件
中包括:文本、HTML标签和脚本命令。但一个ASP应用程序不仅仅只有一个.
asp文件,它还包括Global.asa文件、.inc文件以及其他一些资源文件。
VbScript是ASP缺省的脚本语言,VbScript中除了消息框(MsgBox)和输入
框(InputBox)不可在ASP中使用外其他脚本都可以在ASP环境下直接运行,
另外,ASP还提供了五个内建对象,为客户访问各种资源提供了极大的方便。
这五个对象是:
ASP功能的扩展主要依赖于构件(Component)的支持,构件可以用VB,
JAVA,和MFC等工具开发。ASP已经为客户提供了五个构件,通过建立这些构
件的实例,用户可利用构件的特殊功能。这五个构件是:
· 数据库访问构件(Data Access Component)
· 广告翻转构件(Ad Rotator Component)
· 内容连接构件(Content Linking Component)
· 文件访问构件(File Access Component)
· 浏览器性能构件(Brower CapabilityComponent)
(3)应用实例
下面以电信局为客户提供电话纪录查询为例,介绍ASP访问ODBC数据库的
一个WEB应用。完成这一WEB应用只要包括以下两个部分:(1)建立WEB服务
器端的.asp脚本,实现客户查询网页。(2)建立WEB服务器端的.asp脚本,
返回查询结果。数据库采用Access数据库 ,DSN=phone,Table=phone_record
,phone_record表中包括七项内容:主叫号码、呼叫时间、被叫号码、被叫地
点、通话时长、费率和话费。
查询网页源代码:
<HTML>
<HEAD><TITLE>用户信息查询</TITLE></HEAD>
<BODY BGCOLOR=#FFFFFF>
<CENTER><H3>计费系统用户信息查询</H3></CENTER>
<HR>
<FORM METHOD=POST ACTION="query.asp">
<P>请选择查询的项目:
<SELECT NAME="section">
<OPTION SELECTED>主叫号码
<OPTION>被叫号码
<OPTION>被叫地点
</SELECT>
<P>等于
<INPUT TYPE=TEXT NAME=content><BR>
<P><INPUT TYPE=SUBMIT VALUE="Submit Form "><INPUT TYPE=RESET
VALUE="Reset Form">
</FORM>
<BR>
</BODY>
</HTML>
查询结果网页源代码:
<HTML>
<HEAD><TITLE>用户信息查询</TITLE></HEAD>
<BODY BGCOLOR=#FFFFFF>
<CENTER><HI>用户信息查询</H1><CENTER><BR>
<%section1=request.form("section") '取查询参数
content1=request.form("content")
%>
<%set Conn=Server.CreateObject("ADODB.Connection") '建立数据库
访问对象
Conn.Open "phone" '打开数据库
SQl="select * from phone_record where " & section1 &"='"&
content1 &"'"
Set RS=Conn.Execute(SQL) '执行查询
%>
<p>查询时间:<%=now%>
<TABLE BORDER=2>
<FONT COLOR=#213554><TR>
<%FOR i=0 TO RS.Fields.Count-1%>
<TD><B><%=RS(i).Name%></B></TD> '填写表头
<%NEXT%>
</TR></FONT>
<%Do While Not Rs.Eof%>
<TR>
<%FOR i=0 TO RS.Fields.Count-1%>
<TD VALIGN=TOP><%=RS(i)%></TD> '填写数据
<%NEXT%>
</TR>
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE>
<BR>
<BR>
</TR>
</BODY>
</HTML>
四、 结束语
WEB技术的出现和发展给当今世界信息产业的发展注入了强大的活力,但
目前,WEB的发展还受到各种主客观因素的影响,使WEB的发展并不象我们想象
得那么顺利。如:网络通讯效率不高,网络安全性问题,网上信息的泛滥等。
在客观物理条件有限的情况下,要提高信息在WEB中传递的效率,就得从提高
WEB服务器的效率上想办法。本文介绍的ASP技术正是适应了这一要求,同时它
也代表了这一领域的发展趋势。
-- We are the future!!!!!!H.O.T
Woohyuk是最好的,Do or die.
※ 来源:.月光程序代码网 http://www.moon-soft.com.[FROM: 61.135.253.61]
|
|