|
关于网页的交互是网页设计中最吸引部分,ASP是易于CGI的技术,逐渐引起人们的兴趣
但国内还未有有关书籍,下面是我收集的一些文章与程序,与大家一起学习
也希望得到高手的指导,谢谢.
通常情况下,用户通过测览器看到的网页大多是静态的,而随着 Web 应用的发展,用户希望能够看到根据要求而动态生成的主页,例如响应用
户查询数据库的要求、生成报表等。 根据用户请求生成动态主面的传 统方法有 CGI、ISAH等。 CGI是根据测览器端的http请求激活响应
进程,每一个请求对应一个进程。当同时有很多请求时,程序挤占系统
资源,造成效率低下; ISAH针对这一缺点进行改进,利用 dll(动态链 接库)技术、以线程代替进程,提高了性能和速度,但要考虑线程的同步
问题,而且开发步骤烦琐。这两种技术和另一普遍使用的开发动态网页的 技术 Java都还存在着另外一个问题,那就是开发困难,程序的开发和 HTML写作是两个完全不同的过程,需要专门的程序员开发。而较简单的开发技术
如 JavaScript 和 IDC(Internet Database Connector)等功能有限,不敷使用。 ASP即 ACtiveX
Server Page,是微软公司的新一代开发动态网页的技术,具 有开发简单、功能强大等优点,可以非常直观简易地实现复杂的 Web应用。
本文将介绍 ASP的基本概念、特点、开发要素,并通过两个典型的例子介绍利用 ASP开发 Web应用的具体实现。
ASP是一个 Web服务器端的开发环境,利用它可以产生和运行动态的、交互 的、高性能的Web服务应用程序。
ASP属于 ActlveX技术中的 Server端技术。与常见的在 CIient端实现动态主页 的技术如 Java applet、ActiveX
ConroI、VB ScriPt、JavaScxipt等不同,ASP中的命令和 Scdpt语句都是由服务器束解释执行的,执行结果产生动态生成的
Web页面并送到 浏览器;而 CIient端技术的 Script命令则是由浏览器来解释执行。由于 ASP是在服务 器端解释执行,开发者可以不必考虑测览器是否支持ASP同时由于它在服务器端
执行,开发者也不必担心别人下载程序从而窃取编程逻辑。 ASP通过后缀名为.asp的 ASP文件来实现,一个ASP文件相当于一个可执行
文件,因此必须放在 Web服务器上有可执行权限的目录下。
当浏览器向 Web Server请求调用 ASP文件时,就启动了 ASP。 Web Server开始调 用 ASP,将被请求的.asp文件从头读到底,执行每一个命令,然后动态生成一个
HTML页面并送到测览器。 AsP文件的制作和 HTML类似,且和 HTML开发集成,可 以在同一个过程完成。通过 ASP内置的对象、服务器组件(Server
ComPonent)可以完 成非常复杂的任务,而且用户还可以自己开发或利用别人开发的服务器组件完成专门的任务。
ASP具有以下特征:
. 完全和HTMIJ集成; 一
.易于生成,无需手工编译和连接;
.面向对象,可扩展 ActiveX Server组件。
目前 ASP只适用于下列 Web Server:
. HS3.0 on Windows NT;
. MiCrosoft Peer qre b Server v3.0 on NT WorkstatiOn;
. MiCmsoft PersonaI Weh Server on Win95。
ASP文件
1. ASP文件制作
ASP文件即后缀名为.朗p的文件,是一个文本文件,
可以包括下列元素的任意组合:
.文本(text) ’
.HIML标志(tags)
. Script命令
制作 ASP文件非常简单,可以用任何无格式的文本
编辑工具(笔者一直使用 Notepad),也可用专门的主页开
发工具和 ASP开发工具如 Visual InetDev等。请看下面的例子:
现在时间: <%=Now%>将其存成一后缀为.asp的文
件,放在一个 Web Server指定的有执行权的目录下,链接
上后,它就能把服务器的当前时间输出。要注意:asp文件
不能通过打开的方式来执行,而必须是链接,例如,假定
asP是 Web Server(主机名 host)上有执行权限的一个虚拟
目录,要执行该目录下的heHo.asP,调用方式应该是:
httP://host/asp/hello. a8p
2. ASP语法
ASP并不是一种语言,它只是提供一个环境来运行
ASP文件中的 Script。为了顺利使用 ASP,必须遵守 ASP
的语法规则。 ASP的语法由下面几个元素组成:
.定界符
定界符是用来界定一个标志单元的符号,如HTML
里的“<”和“>”。
同样, ASP Scxipt的命令和输出表达也有定界符,同
text和HTML都不同,它的命令定界符是“<%”和
“%>”。例如下面是一条赋值语句:
<% name=“Timeout”%>
ASP使用“<%”:和“%>”来向浏览器输出表达
式,例如:
<%: name%>
将在浏测览器上输出“Timeout”。
. Script标志
ASP可以使用任何 Script语言,只要提供相应的 脚本驱动(engine)即可, ASP自身提供了 VBScript和 JScript的驱动。它缺省的
Script语言是 VBScript,当然 开发者也可以改变这一缺省设置,例如要改为 JScript,只需在文件开头注明<%@ Language=
JScript%>即可。<SCRIPT>和</scRIPT>中的部分就是 描述语言程序,和HTML类似。不同的是在HTML中 这一部分由浏测览器解释执行,在
ASP里却是由 Web Server解释执行。 可以在一个.aSP文件里使用几个不同的 Scrit语 言,只需把每段用 <SCRIPTLANGUAGE=language—
Name>和</SCRIPT>括起来即可。也可以包含在浏览
器端执行的 Script,将描述语句注释起来,该段程序就由 浏览器来解释执行。
.HIML标记:
在 ASP文件中可以包含HTML语言的各种表达。
ASP内建对象
ASP提供了五个内建对象来提供更高一级的 Web功
能,它们是:
. Request:从使用者获取信息 ;
, Response:将信息送给使用者;
. Server:提供Web Server工具;
. Sesson: 存储在一个 Session内使用的信息;
. AppliCatlOn:在一个ASP应用內让不同使用者共享信息。 用的最多的是前三个对象。 Request和 ResPonse是用
来实现 Web Server与浏览器交互。 Request的一个重要方 法是 FoM(),其作用是提取浏览器的用户输入信息。例如
主页中有一个文本编辑框,已指定它的变量名为“name”’ form的 action为某 asp文件。下面的语句就可以取得用户
填在里面的内容: Request.Form(“name”)
显然,这避免了 CGI等方法中所需要的复杂编程。 输出要用到 Response的一个重要方法 Write:
RespOnse.Write “your message”
该语句向用户浏览器输出了一条消息。
Senrer对象有两个重要方法: MapPath和 CreateOb—
ject。 MapPath用来将 Web Server的虚拟路径还原成实际 路径 ; CreateObJect可能是最重要的一个方法,用来产生服
务器组件的对象实例,详细介绍见下文。
服务器组件
通过服务器端的 SCriPt和HTML,可以很容易地生成 动态网页,但功能有限,例如不能连接服务器数据库、使 用网络功能或访问服务器文件系统等。为了解决这一问
题,就要用到 COM技术,即 Component ObJect ModeI。几乎 所有的 ActiveX技术都是以此为基础,通过 COM,可以轻
易地使用其它 COM组件,这种对于 Web可共享的 COM 组件,就是服务器组件。一个服务器组件就相当一个对 象,提供属性和方法柬使用服务器资源。服务器组件可以
由支持 ActiveX的任何第三方开发, ASP本身也自带了五个服务器组件,可以直接使用,并能完成大部分服务器端 的工作。
要调用服务器组件,必须先利用 Server对象中的方法 CreateObJect产生服务器组件对象实例,如下所示: Server.
CreateObJect(P:rnbgID) 这里,ProgID指定了构件标识,构件可以是各种形式 的可执行程序(DLL、EXE等),也不必考虑它的位置,只要
在 Windows NT(或95)中登记注册这些程序;COM就会在 系统资料库(Registry)里维护这些资料,同时以 ProgID方
式让程序员调用。登记用 regsvr32程序,可以用 RegEdit 程序来看ProgID。构件产生后,就可以使用它的方法和属性进行工作。
一般使用 Server构件的程序片段如下:
’产生构件
Setobj =Server.CreateObJect(”ProgID”) ’
’使用它的方法
obJ. Method ASP提供了5个服务器组件,其中最重要的两个是 数据库访问构件 ADODB和文件访问构件 FileSystemOb-
ject,本文的例子将说明它们的使用。 对于一些特殊的需求,开发者还可以自己开发服务 器构件,利用 VB或 VC可以很方便地开发出一些构件,
然后登记这些构件,就可以用 Serverr CreateObJect来调 用。另外还有许多站点上有开发好的构件供下载,只要在 自己的机器上将它们登记就可以使用。
ASP应用实例
1.利用文件访问组件制作主页访问计数器 现在许多主页上都有一个计数器来记录该主页被访 问的次数,通常计数器通过 CGK实现,开发过程比较复
杂,一些非专业的程序员难以实现。而通过 ASP的文件访 问 组 件 File Access Component
(Scripting. FiIeSystemObJect),可以很方便地产生一个计数 器。下面是一个例子,其原理是:根据page hits生成计数
文件,读出计数文件中的数字,再根据它动态地调出代表 l、2、3等数字的图像。其基本过程和 CGI差不多,但在送
出图像时不同, CGI是通过程序来动态生成一整幅图像, 而我们的方法是将已存在于机器中的图像一张一张地调 出,这样就可以制作非常精美的数字图像。其程序片段
为:
<html>
<%
CountFile=Server.MapPath(“/gjy”+“/count.txt”)
’计数文件
Set FileObJ: Server. CreateObJect
(“ScEipting. yileSyStemObJect”)’产生文件访问构件
Set Out = FileObj. OpenTextFile(CountFile, l, FALSE,
FAISE) ’打开文件
visitors = Out. Readline ’读出访问记录
viSitors = visitors十 l ’加——?
Length = Len(visitors) ’该调出的图像数目
strURL = “” ’图像的 URL
Do While Length>=1
StrUBL =“ IMG SRC=/img /”十 Mid(visitors,
Length, l) +“. gif>”1. strURL
Length=Length— l
Loop ’生成图像 URI
Set Out: FileObJect. Create71extFile(CountFIIe, TRUE,
TRUE)
Out.W1riteLine(visiton) ’记录数写回
%>
<%: strURL%> ’输出图像
</htnd>
注:读者可以根据自己服务器的情况设置图像文件
f路径。
2. 利 用 Data ACCess Component (ADOOB
.Connection)访问服务器数据库
让用户通过浏测览器查询服务器的后端数据库是许多 Web服务提供者必需有的服务, ASP通过内置的 ADODB 组件来实现这一功能。ADO
即 Active Dab O 和 RDO一样,属于数据库应用的 COM构件,不同的是, ADO是专门针对 Internet和 Web开发的,并对此进行了
优化。利用 AOO查询数据库的步骤是: .设置 DSN
ADODB通过 ODBC工作,因此要在ODBC中设置
DSN(数据源名)。 ’
.生成 ADODB组件实例
Set Connect:Servec CreateOb;ect(“ADODB. Connection”)
.连接数据库
利用 ADODB的成员函数 Open和先前设定的 DSN
与数据库连接:
CoHnect. Open(“DSN: dsnname; UID; useHD;
PWD, paSsword”)
.执行查询
指定 SQL查询语句:
SQL = Select * from tablename
执行查询:
Set RS= Connect. Execute(SQL)
.显示结果
完整的程序片段:
<%
Set Connect:Servec CreateObject(“ADODB. Connec-
tion”) ’产生组件实例
Connect. Orle n(“DSN=dsnnanle ; UID=userID;
PWD=password”) ’连接数据库
SQI= Select * from tablenaJne /
Set RS= Connect. Execute(SQL) ’执行查询
%>
<% Do While Not RS. EOF%‘’显示结果
<%= RS(fleldname)%>
<%
RS. MOVeNext
Loop
%>
ASP的开发简单而直观,开发过程可以方便地和 HTML集成 ;利用 coM技术,还可以实现更强大更复杂的 功能。
(摘自计算机报.)
|