
|
导读用ASP开发基于Windows NT Server和IIS的Web应用 国防科工委指挥技术学院 韩正清 钱明 摘要: 本文比较了CGI ISAPI与ASP在结构和性能方面的差异,并介绍了用AS... 用ASP开发基于Windows NT Server和IIS的Web应用 国防科工委指挥技术学院 韩正清 钱明 摘要: 本文比较了CGI ISAPI与ASP在结构和性能方面的差异,并介绍了用ASP开发 WEB 应用的一般过程。 关键词: ASP CGI ISAPI IIS 一、前言 Internet/Intranet和WEB技术的出现和发展,为信息的交换和共享提供了快捷有效 的方法,但Internet/Intranet上提供的信息多以静态网页为主,对于一个WEB应用 开发者来说,最关心的莫过于如何增强网页的动态性和交互性了。Active Server Pages是微软开发的基于Windows NT Server和IIS的服务器端脚本运行环境,脚本 在Web服务器中运行,而浏览器并不处理脚本,它所面对的仅仅是一个完全符合HTML 格式的网页,这为更多的、不同类型的浏览器访问WEB服务器提供可能。 二、ASP的体系结构 通用网关接口CGI和Microsoft Information Server应用程序接口ISAPI是开发交互 式的WEB应用常用的两种接口方式,CGI是基于WEB服务器与数据库之间的联系的服务 器端进程,它可以完成对数据库的底层操作,客户通过GET/POST向WEB服务器提出服 务请求,服务器端的守护进程通过标准输入Stdin和环境变量将参数传送给指定的 CGI程序,执行结果将以HTML格式返回给客户。对于大多数Internet应用程序,CGI 为开发应用提供了一个很好的平台,但CGI在性能方面却有两个我们不可回避的缺 陷: (1)一个CGI程序不能为多个客户共享,对于新的请求必须启动新的 进程,见 图.1 随着客户请求的增加,并行的进程也将越多,这对系统资源来说是一种极大的 浪费,同时也加重了服务器的负担,降低了性能。 (2 )不提供永久性的上下文信息。比如:用户需要查询一个大型数据库, 结果可 能是上千行的数据,如果用户想每次只显示10行的数据,但CGI在输出10行数据后就 停止执行,要再显示下10行的数据必须再执行一次CGI程序,这种方式显然效率不 高。 ISAPI有比CGI更好的性能,因为ISAPI应用以动态链接库形式存在,在其启动时被加 入内存、并且和WEB服务器进程处于同一个系统空间,见图.2,占用系统资源较少。 效率虽然提高了,但也带来了更大的风险,ISAPI进程和服务器进程处于同一系统进 程空间,因此,一个违规操作就有可能导致WEB服务器的崩溃。另外无论是CGI程序 还是ISAPI程序基本上是独立于HTML之外的,完全用另一种语言开发,工作量大,与 HTML结合得不够紧密。 ASP是基于Microsoft Windows NT 4.0和Microsoft Internet Information Server 3.0 (IIS3.0)的开放式脚本开发环境,它很好地把HTML和脚本开发融合在一起, 提高了编程的灵活性,降低了开发难度。ASP中的脚本在WEB服务器端运行,而不是 传统的在客户浏览器中运行,这一措施使客户的浏览器无须担心服务器端的网页使 用何种脚本,ASP都会生成一个符合HTML标准的网页送回客户端,ASP在性能方面的 优势体现在以下几点: (1) 完全与HTML融合在一起; (2) 创建简单,不需要编译和链接,脚本可以在ASP环境下直接运行; (3) 面向对象,功能可以由Activex服务器构件扩展; (4) 由于脚本在服务器端执行,因此它几乎可以支持任何一种浏览器。 ASP在性能和效率方面优于CGI、ISAPI,这主要源于它先进的体系结构,见图.3 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技术正是适应了这一要求,同时它也代表了这一领域的发展趋 势。 参考文献 1. Brian Farrar 《Special Editor Using Activex》Que Cop. 1997,7 2.Microsoft Active Server Pages Release Note Microsoft .. 1997,1 |
温馨提示:喜欢本站的话,请收藏一下本站!