荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Lg (创造人生的传奇), 信区: Homepage
标  题: [转寄] [转载] [范文]利用ASP开发Web应用        wooce
发信站: BBS 荔园晨风站 (Sat Jan 15 18:34:08 2000), 站内信件

【 以下文字转载自 Lg 的信箱 】
【 原文由 liugang.bbs@melon.gznet.edu.cn 所发表 】
发信人: italina (欣儿 — 忙于论文), 信区: CGI
标  题: [转载] [范文]利用ASP开发Web应用
发信站: 华南网木棉站 (Mon Nov 16 22:50:36 1998), 站内信件

利用ASP开发Web应用

                               华中理工大学图像识别与人工智能研究所 龚建勇

     通常情况下,用户通过浏览器看到的网页大多是静态的,而随着Web应用的发展,用户
希望能够看到根据要求而动态生成的主页,例如响应用户查询数据库的要求、生成报表等。

     根据用户请求生成动态主页的传统方法有CGI、ISAPI等。CGI是根据浏览器端的http请
求激活响应进程,每一个请求对应一个进程。当同时有很多请求时,程序挤占系统资源,造
成效率低下;ISAPI针对这一缺点进行改进,利用dll(动态链接库)技术,以线程代替进程
,提高了性能和速度,但要考虑线程的同步问题,而且开发步骤烦琐。这两种技术和另一普
遍使用的开发动态网页的技术Java都还存在着另外一个问题,那就是开发困难,程序的开发
和HTML写作是两个完全不同的过程,需要专门的程序员开发。而较简单的开发技术如JavaSc
ript和IDC(Internet Database Connector)等功能有限,不敷使用。

     ASP即ActiveX Server
Page,是微软公司的新一代开发动态网页的技术,具有开发简单
、功能强大等优点,可以非常直观简易地实现复杂的Web应用。本文将介绍ASP的基本概念、
特点、开发要素,并通过两个典型的例子介绍利用ASP开发Web应用的具体实现。

                            ASP概念和工作流程

     ASP是一个Web服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能

Web服务应用程序。

     ASP属于ActiveX技术中的Server端技术。与常见的在Client端实现动态主页的技术如
Ja
va applet、ActiveX Control、VB Script、JavaScript等不同,ASP中的命令和Script语句
都是由服务器来解释执行的,执行结果产生动态生成的Web页面并送到浏览器;而Client端
技术的Script命令则是由浏览器来解释执行。由于ASP是在服务器端解释执行,开发者可以
不必考虑浏览器是否支持ASP;同时由于它在服务器端执行,开发者也不必担心别人下载程
序从而窃取编程逻辑。

     ASP通过后缀名为.asp的ASP文件来实现,一个ASP文件相当于一个可执行文件,因此必
须放在Web服务器上有可执行权限的目录下。

     当浏览器向Web Server请求调用ASP文件时,就启动了ASP。Web
Server开始调用ASP,
将被请求的.asp文件从头读到底,执行每一个命令,然后动态生成一个HTML页面并送到浏览
器。ASP文件的制作和HTML类似,且和HTML开发集成,可以在同一个过程完成。通过ASP内置
的对象、服务器组件(Server
Component)可以完成非常复杂的任务,而且用户还可以自己
开发或利用别人开发的服务器组件完成专门的任务。

     ASP具有以下特征:

     完全和HTML集成;

     易于生成,无需手工编译和连接;

     面向对象,可扩展ActiveX Server组件。

     目前ASP只适用于下列Web Server:

     IIS 3.0 on Windows NT;

     Microsoft Peer Web Server v3.0 on NT Workstation;

     Microsoft Personal Web Server on Win95。

                                 ASP文件

     1.ASP文件制作

     ASP文件即后缀名为.asp的文件,是一个文本文件,可以包括下列元素的任意组合:

      文本(text)

      HTML标志(tags)

      Script命令

     制作ASP文件非常简单,可以用任何无格式的文本编辑工具(笔者一直使用Notepad),
也可用专门的主页开发工具和ASP开发工具如Visual InetDev等。请看下面的例子:

     现在时间:<%= Now %>将其存成一后缀为.asp的文件,放在一个Web
Server指定的有
执行权的目录下,链接上后,它就能把服务器的当前时间输出。要注意:asp文件不能通过
打开的方式来执行,而必须是链接,例如,假定asp是Web
Server(主机名host)上有执行权
限的一个虚拟目录,要执行该目录下的hello.asp,调用方式应该是:

     http://host/asp/hello.asp

     2.ASP语法

     ASP并不是一种语言,它只是提供一个环境来运行ASP文件中的Script。为了顺利使用
AS
P,必须遵守ASP的语法规则。ASP的语法由下面几个元素组成:

     定界符

     定界符是用来界定一个标志单元的符号,如HTML里的“<”和“>”。

     同样,ASP
Script的命令和输出表达也有定界符,同text和HTML都不同,它的命令定界
符是“<%”和“%>”。例如下面是一条赋值语句:

     <% name=“Timeout” %>

     ASP使用“<%”=和“%>”来向浏览器输出表达式,例如:

     <%= name %> 将在浏览器上输出“Timeout”。

     Script标志

     ASP可以使用任何Script语言,只要提供相应的脚本驱动(engine)即可,ASP自身提

了VBScript和JScript的驱动。它缺省的Script语言是VBScript,当然开发者也可以改变这
一缺省设置,例如要改为Jscript,只需在文件开头注明<%@Language=JScript%>即可。
<S
CRIPT>和</SCRIPT>中的部分就是描述语言程序,和HTML类似。不同的是在HTML中这一部

由浏览器解释执行,在ASP里却是由Web Server解释执行。

     可以在一个.asp文件里使用几个不同的Script语言,只需把每段用<
SCRIPTLANGUAGE=La
nguageName>和</SCRIPT>括起来即可。也可以包含在浏览器端执行的Script,将描述语
句注
释起来,该段程序就由浏览器来解释执行。

     HTML标记:

     在ASP文件中可以包含HTML语言的各种表达。

                               ASP内建对象

     ASP提供了五个内建对象来提供更高一级的Web功能,它们是:

      Request:从使用者获取信息;

      Response:将信息送给使用者;

      Server:提供Web Server工具;

      Session:存储在一个Session内使用者的信息;

      Application:在一个ASP应用内让不同使用者共享信息。

     用的最多的是前三个对象。Request和Response是用来实现Web
Server与浏览器交互。R
equest的一个重要方法是Form(),其作用是提取浏览器的用户输入信息。例如主页中有一个
文本编辑框,已指定它的变量名为“name”,form的action为某asp文件。下面的语句就可
以取得用户填在里面的内容:

     Request.Form(“name”)

     显然,这避免了CGI等方法中所需要的复杂编程。

     输出要用到Response的一个重要方法Write:

     Response.Write “your message”

     该语句向用户浏览器输出了一条消息。

     Server对象有两个重要方法:MapPath和CreateObject。MapPath用来将Web
Server的虚
拟路径还原成实际路径;CreateObject可能是最重要的一个方法,用来产生服务器组件的对
象实例,详细介绍见下文。

                               服务器组件

     通过服务器端的Script和HTML,可以很容易地生成动态网页,但功能有限,例如不能

接服务器数据库、使用网络功能或访问服务器文件系统等。为了解决这一问题,就要用到CO
M技术,即Component Object
Model。几乎所有的ActiveX技术都是以此为基础,通过COM,
可以轻易地使用其它COM组件,这种对于Web可共享的COM组件,就是服务器组件。一个服务
器组件就相当一个对象,提供属性和方法来使用服务器资源。服务器组件可以由支持Active
X的任何第三方开发,ASP本身也自带了五个服务器组件,可以直接使用,并能完成大部分服
务器端的工作。

     要调用服务器组件,必须先利用Server对象中的方法CreateObject产生服务器组件对

实例,如下所示:

     Server.CreateObject(ProgID)

     这里,ProgID指定了构件标识,构件可以是各种形式的可执行程序(DLL、EXE等),

不必考虑它的位置,只要在Windows
NT(或95)中登记注册这些程序,COM就会在系统资料
库(Registry)里维护这些资料,同时以ProgID方式让程序员调用。登记用regsvr32程序,可
以用RegEdit程序来看ProgID。构件产生后,就可以使用它的方法和属性进行工作。

     一般使用Server构件的程序片段如下:

     '产生构件

     Setobj = Server.CreateObject(“ProgID”)

     '使用它的方法

     obj.Method

     ASP提供了5个服务器组件,其中最重要的两个是数据库访问构件ADODB和文件访问构件
F
ileSystemObject,本文的例子将说明它们的使用。

     对于一些特殊的需求,开发者还可以自己开发服务器构件,利用VB或VC可以很方便地

发出一些构件,然后登记这些构件,就可以用Server.CreateObject来调用。另外还有许多
站点上有开发好的构件供下载,只要在自己的机器上将它们登记就可以使用。

                               ASP应用实例

     1. 利用文件访问组件制作主页访问计数器

     现在许多主页上都有一个计数器来记录该主页被访问的次数,通常计数器通过CGI实现
,开发过程比较复杂,一些非专业的程序员难以实现。而通过ASP的文件访问组件File
Acce ss Component
(Scripting.FileSystemObject),可以很方便地产生一个计数器。下面是一
个例子,其原理是:根据page
hits生成计数文件,读出计数文件中的数字,再根据它动态
地调出代表1、2、3等数字的图像。其基本过程和CGI差不多,但在送出图像时不同,CGI是
通过程序来动态生成一整幅图像,而我们的方法是将已存在于机器中的图像一张一张地调出
,这样就可以制作非常精美的数字图像。其程序片段为:

     <html>

     <%

     CountFile = Server.MapPath(“/gjy”+“/count.txt”)

     ’计数文件

     Set FileObj = Server.CreateObject(“Scripting.FileSystemObject”) ’产生文
件访问构件

     Set Out=FileObj.OpenTextFile(CountFile,1,FALSE,FALSE) ’ 打开文件

     visitors = Out.ReadLine ’读出访问记录

     visitors = visitors+1 ’加一

     Length = Len(visitors) ’该调出的图像数目

     strURL=“” ’图像的URL

     Do While Length>=1

     strURL=“<IMG SRC=/img/”+Mid(visitors,Length,1)+“.gif>”+strURL

     Length=Length-1

     Loop ’生成图像URL

     Set Out=FileObject.CreateTextFile(CountFile,TRUE,TRUE)

     Out.WriteLine(visitors) ’记录数写回

     %>

     <%=strURL%> ’输出图像

     </html>

     注:读者可以根据自己服务器的情况设置图像文件路径。

     2. 利用Data Access Component (ADODB .Connection) 访问服务器数据库

     让用户通过浏览器查询服务器的后端数据库是许多Web服务提供者必需有的服务,ASP

过内置的ADODB组件来实现这一功能。ADO即Active Data
Object,同DAO和RDO一样,属于数
据库应用的COM构件,不同的是,ADO是专门针对Internet和Web开发的,并对此进行了优化
。利用ADO查询数据库的步骤是:

      设置DSN

     ADODB通过ODBC工作,因此要在ODBC中设置DSN(数据源名)。

      生成ADODB组件实例

     Set Connect=Server.CreateObject(“ADODB.Connection”)

      连接数据库

     利用ADODB的成员函数Open和先前设定的DSN与数据库连接:

     Connect.Open(“DSN=dsnname;UID=userID; PWD=password”)

      执行查询

     指定SQL查询语句:

     SQL= select * from tablename

     执行查询:

     Set RS=Connect.Execute(SQL)

      显示结果

     完整的程序片段:

     <%

     Set Connect=Server.CreateObject(“ADODB. Connection”) ’产生组件实例

     Connect.Open(“DSN=dsnname;UID=userID; PWD=password”) ’连接数据库

     SQL= select * from tablename

     Set RS=Connect.Execute(SQL) ’执行查询

     %>

     <% Do While Not RS.EOF %>’显示结果

     <%=RS(fieldname)%>

     <%

     Rs.MoveNext

     Loop

     %>

                                   结论

     ASP的开发简单而直观,开发过程可以方便地和HTML集成;利用COM技术,还可以实现

强大更复杂的功能。


--
           @@@@@@       @@@  @@@     @@@  @@@  信言不美,美言不信。善者不辩,辩
  @@@@@@@ @@!  @@@ @@@  @@!  @@@ @@@ @@!@!@@@  者不善。知者不博,博者不知。圣人
 !@@      @!@!@!@! @@!  @!@  !@! @@! @!@@!!@!  不积,既以为人己愈有,既以与人己
 !@!      !!:  !!! @!!   !: .:!  !!@ !!:  !!!  愈多。天之道,利而不害;圣人之
 :!!       :   : : !!:     ::    !!: ::    :   道,为而不争。
  :: :: :           :::.::        : ICQ:5704502     Email:calvin@nease.net

※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.38.212.86]
--
※ 转载:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.38.214.40]
--
※ 转寄:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 210.39.3.50]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 210.39.3.68]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店