分享
 
 
 

ASP的技术特点与使用方法

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

几年以前,业界在动态主页发布方面唯一的渠道是CGI(Common Ga teway Interface) 模式。随后出现的 ISAPI、NSAPI和JDBC等技术方案虽较CGI进步,但从企业网(Intranet )的技术现实来衡量,这些方案仍不适用于进行快速开发、及时维护和大面积的技术普及。ASP技术的出现,使动态交互式Web主页设计成为一件轻松愉快的工作。只要几行脚本语句,就能将后台的数据库信息发布到Internet/Intranet上, 在编程和网页脚本的可读性方面大大优于传统的技术方案。

ASP是 Active Server Pages(动态服务器主页)的缩写,它是一个服务器端的脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态、交互式、高效率的站点服务器应用程序。ASP可以胜任基于微软Web服务器的各种动态数据发布。

ASP方法与传统静态主页的区别

把信息系统纳入Internet/Intranet 的框架之后,首先要解决的问题是通过网页访问后台数据库信息。所有应用程序都被分割为页面的形式,用户的交互操作是以提交表单等方式来实现的,这就要求Web 站点具有很强的动态数据发布能力。然而,目前Web的服务,仍以提供" 静态"主页内容为主。所谓"静态",指的就是站点的主页内容是"固定不变"的,无法根据用户的需求和实际情况作出相应的变化。当浏览器通过Internet的HTTP协议向站点的Web服务器申请主页时,站点服务器就会将已设计好的静态的HTML文件传送给浏览器。若要更新主页的内容, 只能用非在线的手动方式更新HTML的文件数据。

ASP所设计出的是动态主页,可接收用户提交的信息并作出反应, 其中的数据可随实际情况而改变,无须人工对网页文件进行更新即可满足应用需要。例如:当在浏览器上填好表单并提交HTTP请求时,可以要求在站点服务器上执行一个表单所设定的应用程序,而不只是一个简单的HTML文件。该应用程序分析表单的输入数据,根据不同的数据内容将相应的执行结果(通常是数据库查寻的结果集)以HTML的格式传送给浏览器。数据库的数据可以随时变化,而服务器上执行的应用程序却不必更改,客户端得到的网页信息会始终保持新鲜的魅力。

ASP的工作原理和配置

如图所示,当用户申请一个*.asp主页时,Web服务器响应该HTTP请求,调用ASP引擎,解释被申请文件。当遇到任何与ActiveX Scripting 兼容的脚本(如VBScript和JScript)时,ASP引擎会调用相应的脚本引擎进行处理。若脚本指令中含有访问数据库的请求,就通过ODBC与后台数据库相连,由数据库访问组件执行访库操作。ASP 脚本是在服务器端解释执行的,它依据访库的结果集自动生成符合HTML语言的主页, 去响应用户的请求。所有相关的发布工作由Web服务器负责。图1 Active Server Pages工作原理图

有必要注意访库的具体运作细节。当遇到访库的脚本命令时,ASP 通过ActiveX组件ADO(ActiveX Data Objects)与数据库对话(ADO是建立在微软新的数据库API,即OLE DB之上的,目前的OLE DB通过ODBC引擎与现存的ODBC数据库交互,进一步的OLE DB版本将直接与数据库打交道,不再通过ODBC引擎),并将执行结果动态生成一个HTML 页面来返回服务器端,以响应浏览器的请求。在用户端浏览器所见到的是纯HTM L表现的画面,例如用表格来表现的后台数据库表中的字段内容。由于 ASP结合了脚本语言,可以通过编程访问Acti veX组件,并且具有现场自动生成HTML的能力,所以它成为建立动态Web站点的有效工具。

在结构关系上,ASP是通过ODBC与数据库打交道。因此,向上层可兼容各类数据库系统。而对于下层,ASP 产生的HTML 对客户端的浏览器又有广泛的适应性。但ASP对Web 服务器本身有所挑剔,这看起来似乎是一种缺陷,而实际上也许是一种商业策略——它只支持微软各种操作系统下的Web 服务器,它们的最低版本是:

·Windows NT Server 4.0:MicrosoftⅡS(Internet Informatio n Server)3.0;

·Windows NT Workstation 4.0:Microsoft Peer Web Services 3.0;

·Windows 95:Microsoft PWS(Personal Web Server)1.0 ,中文 Win95应配中文的PWS。

ASP的安装分为Windows NT和Windows 95两种情况。对于NT ,IIS 及ActiveX Server Pages都包含在Service Pack 3中;对于Win95,可使用Visual Studio 服务器构件下的ActiveX Server Pages安装选项。安装成功之后,在程序管理器中会找到一个ActiveX Se rver Pages Roadmap主页,引导你学习和使用ASP。

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. 使用VBScript或JScript等简易的脚本语言,结合HTML码,快速完成站点的应用程序。通过站点服务器执行脚本语言,产生或更改在客户端执行的脚本语言。

8. 扩充功能的能力强,可通过使用Visual Basic、Java、Visual C ++ 等多种程序语言制作ActiveX Server Component以满足自己的特殊需要。

ADO访库的技术实现方法

ADO(ActiveX Data Objects)是一组优化的访问数据库专用对象集,为ASP提供了完整的站点数据库访问解决方案。它可作用于服务器端,以提供含有数据库信息的主页内容。通过执行SQL命令,让用户在浏览器画面中输入、更新和删除站点服务器的数据库信息。

ADO使用内置的RecordSets对象作为数据的主要接口。ADO可使用 VBScript、JScrip t语言来控制对数据库的访问,以及查询结果的输出显示。

ADO可连接多种支持ODBC的数据库,如SQL Server、Oracle、Info rmix等。

在使用时,首先需在控制面板的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-000 0-0010-8000-00AA 006D2EA4"></OBJECT>

2. 用"Open"打开待访的数据库:

Conn.Open "DSN名称"

3. 设定SQL语句,使用"Execute"命令,即可开始执行访问数据库的动作:

SetRS=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访问后台数据库运作机制如图2所示。图2 ASP访问后台数据库运作机制

一个发布后台MS SQL Server样本库pubs中 authors表的完整代码如下(其中<%和%> 是ASP脚本的专用定界符):<html><head>< title>Authors Listing</title></h ead><body><p>Authors Listing</font><% Set Connection=Server.CreateObje ct("ADOD B.Connection")

Connection.Open "authors"

Set RS=Connection.Execute("SELECT * FROM authors")

%>

</p>

<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.Count-1 %>

<TD><% =RS(i) %></TD>

<% Next %>

</TR>

<% RS.MoveNext

Loop

RS.Close

Connection.Close

%>

</table>

</body>

</html>

ASP与组件对象的使用

在利用ASP技术进行动态Web开发的时候,应遵循这样一个原则:即 ASP的服务器端脚本必须与微软倡导的组件对象( Component Object Model )配合使用才能开发出具有实用价值的信息产品。ASP脚本相当于一种粘合剂,把一个个具有特定功能的组件对象粘合在一起,以形成最终的软件产品。这一软件制作的工艺思想类似于硬件工厂生产板卡的过程,那一个个的组件对象就相当于集成电路的芯片,而ASP脚本只是焊接芯片的焊接剂,由此可见组件对象起着核心作用。

组件对象模型COM是微软提出的一种基于二进制的Windows软件标准,它是由OLE 技术逐渐发展而来的。在使用不同语言工具写成的组件对象之间,依据COM 的标准可以进行交互。COM是技术概念和标准, 其商业概念的称谓则使用ActiveX。

上文提到的ADO就是系统提供的用于访问后台数据库的组件。此外,ASP本身还提供了五个内置的对象。这五个内置对象可被ASP 脚本直接使用,它们是:

1Request取得用户信息

2Response 传递信息给用户

3Server 提供访问服务器的方法和属性

4Application在一个应用程序的多个主页之间保留和使用某些共同的信息

5Session在一个用户的多个主页之间保留和使用某些共同的信息

其中,使用内置对象1、2可实现Web的交互功能,使用内置对象4、 5可解决具有协作机制的应用问题。

ASP的一大特色,是可以用来编写具有协作机制的应用程序,在多个用户的多个主页之间共享信息。使用内置的Application和Session 对象可实现这些功能。

Application对象保存一个应用程序共同的信息,使用此应用程序的所有用户都可以共同分享。为防止其被多个用户同时更改,提供loc k和unlock方法来实现互斥,例如:

Application.lock 禁止其他用户更改Application的信息;

Application.unlock 允许其他用户更改Application的信息。

Session对象比Application对象的使用外延范围小,它保存仅属于一个用户的一个应用程序的信息。ASP的应用程序可以只有一个首页,也可以有多个主页文件,所有的文件均位于一个虚拟路径下。Sess ion对象可让同一个用户在多个主页之间共享信息。当用户第一次在一个应用程序中申请一个*.asp主页时,ASP将为该用户分配一个Sessi onID号,它将唯一地标识用户的身份,从而能将同一应用程序的不同用户区分开来。

根据需要还可以自行定制具有某些特色的组件对象,以完成特殊的任务。用VisualB asic、Visual C++、Delphi和 Java等语言都可以编写。自制的组件对象分成两类:

一是由类打包而成的*.dll文件,经注册器注册后,在ASP脚本中可通过"Set 对象名 = 类名"来引用。对象在这种使用过程中是在服务器的后台运行的,其运行的结果通过系统自动生成的HTML作用到前端浏览器。

二是生成*.ocx文件,一般用作可视化的对象ActiveX,可直接将其嵌入*.asp主页中,在页面中插入时需使用HTML语言的<OBJECT>标记加以引用。通常构件制作完成并按下载的要求打包后生成*.cab文件。对象在这种使用方式下要先从服务器下载,然后在客户的前端浏览器运行。在第一次下载时被展开成相关的*.dll和*.ocx文件进行本地安装及注册。以后再使用时,就可直接从本地获得,免去了下载之苦,这也是ActiveX优于Java App let的地方。

从长远来看,ASP和组件对象的配合使用无疑是一种引人入胜的新技术,更重要的是由此而提出了一种全新的软件设计方法,把硬件的工艺思想恰如其分地融合于软件的面向对象的分析、设计和施工之中, 使面向对象的概念和方法从工具语言的层次一下子跃上了系统的应用层,在快速开发多层的客户/服务器分布式应用系统中将会产生极好的效果。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有