ASP的应用
ASP的应用
经常上网浏览,留心Microsoft站点的朋友一定会发现:近一年来微软的部分网页文件后缀已由htm变成了asp。请不要看轻这一细微的变更,事实上,这一变化是意味深长的,它蕴涵着相当深刻的技术变革。微软在动态Web技术方面,又向前迈出了一大步,即采用了ASP
Active Server Pages(动态服务器主页)机制。
ASP的特点与功能
从软件的技术层面看,ASP有如下的特点:
1.无须编译。ASP脚本集成于HTML当中,容易生成,无须编译或链接即可直接解释执行。
2.使用常规文本编辑器(如Windows下的记事本),即可进行*.asp页面的设计。若从工作效率来考虑,不妨选用具有可视化编辑能力的Visual
InterDev。
3.独立于浏览器。用户端只要使用可解释常规HTML码的浏览器,即可浏览ASP所设计的主页内容。ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。因此,若不通过从服务器下载来观察*.asp主页,在浏览器端是见不到正确的页面内容的。
4.面向对象。在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能够通过定制 ActiveX Server Component(ActiveX服务器组件)来扩充功能。
5.与任何ActiveX scripting 语言兼容。除了可使用VBScript或JScript语言进行设计外,还可通过Plug-in的方式,使用由第三方所提供的其他scripting
语言。
6.源程序码不会外漏。ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。
从应用的层面看,ASP有如下的功能:
1. 处理由浏览器传送到站点服务器的表单输入。
2. 访问和编辑服务器端的数据库内容。使用浏览器即可输入、更新和删除站点服务器的数据库数据。
3. 读写站点服务器的文件,实现访客计数器、座右铭等功能。
4. 提供广告轮播器、取得浏览器信息、URL表管理等内置功能。
5. 由cookies读写用户端的硬盘文件,以记录用户的数据。
6. 可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。
7. Active Server Pages(动态服务器主页)使用VBScript或JScript等简易的脚本语言,结合HTML码,快速完成站点的应用程序。通过站点服务器执行脚本语言,产生或更改在客户端执行的脚本语言。
8. 扩充功能的能力强,通过使用Visual Basic、Java、Visual C++等多种程序语言制作ActiveX Server Component以满足自己的特殊需要。
ADO的实现方法
ADO(ActiveX Data Objects)是一组优化的访问数据库专用对象集,为ASP提供完整的站点数据库访问解决方案。它可与ASP结合,作用在服务器端,以提供含有数据库信息的主页内容。通过执行SQL命令,让用户在浏览器画面中输入、更新和删除站点服务器的数据库信息。
ADO使用内置的RecordSets对象作为数据的主要接口。ADO可使用VBScript、JScript语言来控制对数据库的访问与查询结果的输出显示画面。
ADO可连接多种支持ODBC的数据库,如SQL Server、Oracle、Informix等。
在使用时,首先需在控制面板的ODBC中建立相应的DSN(数据源名)。要选择系统数据源名,指定所用的驱动程序,如“SQL Server”,在数据来源名称中输入DSN名,并选定服务器和数据库。
使用ADO访问数据库的设计要领是掌握ASP脚本的几个典型语句,它们是:
1. 定义数据库组件。有两种定义方法:
. 使用“Server.CreateObject”建立连接的对象。
Set Conn=Server.CreateObject(“ADODB.Connection”)
. 使用<OBJECT>标记建立连接的对象。
<OBJECT RUNAT=Server ID=Conn CLASSID=“Clsid:00000293-0000-0010-8000-00AA006D2EA4”></OBJECT>
2. 用“Open”打开待访的数据库:Conn.Open “DSN名称”
3. 设定SQL语句,使用“Execute”命令,即可开始执行访问数据库的动作:
Set RS=Conn.Execute(“SQL语句”)
其中RS为结果集对象(RecordSets)。
4. 利用RecordSets对象所提供的属性显示查询结果,如下例将查询结果显示于一个表格中:(其中<%......%>是ASP脚本的专用定界符)
<TABLE BORDER=1>
<TR>
<% For i =0 to RS.Fields.Count -1 %>
<TD><% = RS(i).Name %></TD>
<% Next %>
</TR>
<% Do While Not RS.EOF %>
<TR>
<% For i =0 to RS.Fields -1 %>
<TD><% = RS(i) %></TD>
<% Next %>
</TR>
<% RS.MoveNext
Loop
%>
</TABLE>
5.关闭结果集对象,断开与数据库的连接:
RS.Close
Conn.Close
ASP与组件对象的使用
在利用ASP技术进行动态Web开发的时候,应遵循这样一个原则:即ASP的服务器端脚本必须与微软倡导的组件对象(Component Object
Model )配合使用才能研制出具有实用价值的信息产品。ASP脚本相当于一种粘合剂,把一个个具有特定功能的组件对象粘合在一起,以形成最终的软件产品。这一软件制作的工艺思想颇类似于硬件工厂生产板卡的过程,那一个个的组件对象就相当于集成电路的芯片,而ASP脚本只是焊接芯片的焊接剂,由此可见组件对象起着核心作用。
组件对象模型COM是微软提出的一种基于二进制的Windows软件标准,它是由OLE 技术逐渐发展而来的。在使用不同语言工具写成的组件对象之间,依据COM
的标准可以进行交互。COM是技术概念和标准,其商业概念的称谓则使用ActiveX。
上文提到的ADO就是系统提供的用于访问后台数据库的组件。此外,ASP本身还提供了五个内置的对象。这五个内置对象可被ASP 脚本直接使用,它们是:
1. Request 取得用户信息;
2. Response 传递信息给用户;
3. Server 提供访问服务器的方法和属性;
4. Application 在一个应用程序的多个主页之间保留和使用某些共同的信息;
5. Session 在一个用户的多个主页之间保留和使用某些共同的信息。
其中,使用内置对象1、2可实现Web的交互功能,使用内置对象4、5可解决要求具有协作机制的应用问题。
ASP的一大特色是可以用它来编写具有协作机制的应用程序,在多个用户的多个主页之间共享信息。使用内置的Application和Session对象可实现这些功能。
Application对象保存一个应用程序共同的信息,使用此应用程序的所有用户都可以共同分享。为防止其被多个用户同时更改,提供lock和unlock方法来实现互斥。
Session对象比Application对象的使用外延范围小,它保存仅属于一个用户的一个应用程序的信息。ASP的应用程序可以只有一个首页,也可以有多个主页文件,所有的文件均位于一个虚拟路径下。Session对象可让同一个用户在多个主页之间共享信息。当用户第一次在一个应用程序中申请一个*.asp主页时,ASP将为该用户分配一个SessionID号,它将唯一地标识用户的身份,从而能将同一应用程序的不同用户区分开来。
根据需要还可以自行研制开发具有某些特色的定制组件对象,以完成特殊的任务。用Visual Basic、Visual C++、Delphi和Java等语言都可以编写。自制的组件对象分成两类:
一是由类打包而成的*.dll文件,经注册器注册后,在ASP脚本中可通过Set对象名=类名来引用。对象在这种使用过程中是在服务器的后台运行的,其运行的结果通过系统自动生成的HTML作用到前端浏览器。
二是生成*.ocx文件,一般用作为可视化的对象ActiveX。它可直接将其嵌入*.asp主页中,在页面中插入时需使用HTML语言的<OBJECT>标记加以引用。通常构件制作完成并按下载的要求打包后,生成*.cab文件。对象在这种使用方式下要先从服务器下载,然后在客户的前端浏览器运行。在第一次下载时被展开成相关的*.dll和*.ocx文件进行本地安装及注册。以后再使用时,就可直接从本地获得,免去了下载之苦,这也是ActiveX优于Java
Applet的地方。
从长远来看,ASP和组件对象的应用方法不啻为一种很酷的新技术,更重要的是由此而提出了一种全新的软件设计方法,把硬件的工艺思想恰如其分地融化于软件的面向对象的分析、设计和施工之中,使面向对象的概念和方法从工具语言的层次一下子跃上了系统的应用层,对快速开发多层的客户/服务器分布式应用效果极佳,由此而引起的震撼效应正在慢慢显现出来。
(靳丛洲)