图书馆学论文

利用ASP技术实现图书馆主页的动态发布

2007-8-8 发布人:lwcool 作者:李灿 人气: [打印] [评论]

 
(华南理工大学图书馆 510640)
   摘要     阐述了ASP技术的基本概念、工作原理和主要特点,介绍了ASP的语法、内置对象和服务器组件,并通过实例介绍了图书馆利用ASP技术构建动态的、功能强大的、交互式的Web页面的方法。
   关键词  ASP技术;动态主页;WEB数据库
 
    早期的图书馆主页设计很简单,都是通过网页语言HTML编写的一些静态浏览界面,没有多少技术含量。如今人们已不满足于只有Web服务器浏览和发布静态信息,人们需要通过它发表意见,查询数据,而这些操作都与数据库密切相关。这就迫切需要实现Web与数据库的互连。数据库技术已发展比较成熟,而Web技术拥有较好的信息发布途径,所以将Web技术与数据库技术相结合,开发动态的Web数据库应用,已成为当今Web技术的热点所在。
  随着Internet的发展,静态Web页面的开发与维护变得越来越困难.一方面信息的不断增加和变化,使站点维护人员不得不经常修改他们的网页;另一方面静态网页由于不能与浏览者进行有效的交互,使人们感到越来越乏味,而不愿意再一次进入同一站点.所以开发动态网页或动态内容成了越来越多的站点所追求的目标.所谓动态网页是由每一个用户按照自己的需求发出请求而特殊制作的Web网页,访问该网站的新老用户所看到的页面是不同的.ASP(ActiveServerPages,动态服务器主页)是Microsoft于1996年11月推出的Web应用程序开发技术,支持ActiveX.本文主要介绍利用ASP技术创建动态的、功能强大的Web页面的方法.
1  几种常用方式的比较
   支持动态Web应用的主要方式有:CGI方式、API方式、IDC方式和ASP方式。
  (1)CGI方式:通过CGI程序实现Web服务器与数据库服务器之间的数据交换,当用户在浏览器端以HTML中的FORM格式输入请求后,便激活一个CGI程序,该CGI程序又可以调用其他程序完成用户的查询任务,之后把查询结果以HTML形式送回浏览器端。CGI方式有两个明显的不足:一是执行效率低,二是开发难度大。
  (2)API方式:Web服务器软件开发商开发出了各自的API,API作为驻留在Web服务器中的程序代码,其扩展Web服务器的功能与CGI相同,各种API与其相应的Web服务器一致,其目标就是将Web服务器的性能进一步发掘、提高。目前主要的API有Microsoft的ISAPI、Netscape的NSAPI等,更为常用的是ISAPI。ISAPI方式下程序执行效率比较高,但如果是手工开发API应用程序比开发CGI应用程序更复杂,需要一些专门的编程知识,如多线程、进程同步、直接协议编程及错误处理等。
  (3)IDC方式:IDC是IIS(InternetInformationServer,Internet信息服务器)中提供的Internet数据库连接器,IDC需要32位的ODBC驱动程序,当浏览器端发出数据库访问请求后,IDC通过ODBC与数据库相连接,再将数据库的内容转换成HTML格式的文档返回浏览器端。IDC方式设计简单、使用方便,而且支持数据库的多重查询,但功能有限,不适宜完成复杂的应用开发。
  (4)ASP方式:ASP(ActiveServerPage,动态服务器网页)是IIS3.0以上版本的附加组件,综合了传统的HTML文件、ActiveX脚本程序语言(script)及ActiveX组件技术,利用ADO(ActiveXDataObjects)组件与数据库对话,用户还可以自己定义组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是CGI等方式所不能比的,ASP因此成为目前进行动态Web应用开发的理想选择。
2 ASP与传统静态主页的区别
    把信息系统纳入Internet Intranet的框架之后,首先要解决的问题是通过网页访问后台数据库信息.所有应用程序都被分割为页面的形式,用户的交互操作是以提交表单等方式来实现的,这就要求Web站点具有很强的动态数据发布能力.然而,目前Web的服务,仍然以提供“静态”主页内容为主.所谓“静态”,指的是站点的主页内容是固定不变的,无法根据用户的需求和实际情况作出相应的变化.当浏览器通过Internet的HTTP协议向站点的Web服务器申请主页时,站点服务器就会将自己设计好的静态的HTML文件传送给浏览器.若要更新主页的内容,只能用非在线的手动方式更新HTML的文件数据.ASP技术所设计的是动态主页,可接收用户提交的信息并作出反应,其中的数据可随实际情况改。
3 ASP的工作原理及其特点
  用户浏览器从Web服务器上访问 .asp文件时,Web服务器响应该HTTP请求,调用ASP引擎,解释被申请文件。当遇到任何与ActiveXScripting兼容的脚本(如VBScript和Jscript)时,ASP引擎会调用相应的脚本引擎进行处理.若脚本指令中含有访问数据库的请求,就通过ODBC与后台数据库相连,由数据库访问组件执行访库操作.ASP是在服务器端解释执行的,它依据访库的结果集自动生成符合HTML语言的主页,并将ASP执行的结果---常规HTML码(Web页面)传送给用户浏览器。
    ASP技术的主要特点如下:
    (1)使用VBScript、Javascript等简单易懂的脚本语言,结合HTML代码,可快速地完成完成网站的应用程序。
    (2)使用普通的文本编辑器,如Windows的记事本,即可编辑设计。
    (3)无须compile编译,容易编写,可在服务器端直接执行。
    (4)与浏览器无关,用户端只要使用可执行HTML代码的浏览器,即可浏览ASP所设计的网页内容。
    (5)ASP能与任何ActivX Scripting语言相容。
    (6)ASP的源程序不会被传到到客户浏览器,因而可以避免所写的源程序被他人剽窃。
    (7)可使用服务器端的脚本来产生客户端的脚本。
    (8)ActiveX Server Components(ActiveX服务器元件)具有无限可扩充性。
4   ASP语法
    ASP并不是一种语言,它只是提供一个环境来运行ASP文件中的Script。为了顺利使用ASP,必须遵守ASP的语法规则。ASP的语法由下面几个元素组成。
    (1)定界符 定界符是用来界定一个标志单元的符号,如HTML里的〈和〉。同样,ASPScript的命令和输出表达也有定界符,同text和HTML都不同,它的命令定界符是〈%%〉。例如下面是一条赋值语句:〈%name=“Timeout”%〉。ASP使用〈%=和%〉来向浏览器输出表达式,例如:〈%=name%〉将在浏览器上输出“Timeout”
(2)Script标志,ASP可以使用任何Script语言,只要提供相应的脚本驱动,ASP自身提供了VBScript和Jscript的驱动。它缺省的Script语言是VBScript,当然开发者也可以改变这一缺省设置,例如要改为Jscript,只需在文件开头注明〈%@Language=JScript%〉就可。〈SCRIPT〉和〈/SCRIPT〉中的部分就是描述语言程序,和HTML类似,不同的是在HTML中这一部分由浏览器解释执行,在ASP里却是由Webserver解释执行。你可以在一个.asp文件里使用好几个不同的Script语言,只需把每段用〈SCRIPTLANGUAGE=
LanguangeName〉和〈/SCRIPT〉括起来即可,也可以包含在浏览器端执行的Script,将描述语句注释起来,该段程序就由浏览器来解释执行。
    (3)HTML标记,在ASP文件中同样可以包含HTML语言的各种表达。
5  ASP的内置对象
    ASP包括六种全球通用的标准对象,说明如下:
   (1)Request:通过HTTP请求从用户得到信息;用于设计与用户的交互界面。
   (2)Response:向用户传送信息。
   (3)Server:用来控制InternetInformationServer;它支持一种属性:ScriptTimeout,允许设置ScriptProcessing终止联接的时刻;Server可以存储有关现在用户的Web-ServerSession的信息。
   (4)Session:用来存储有关用户现在Web-ServerSession的信息,控制application生存周期的设置;通常,这是Web服务器运行的整个时间。这使它成为存储多个用户信息的地方。该对象不是对每个用户都重新创建。
   (5)Application:用来共享application-level的信息,控制application的生存周期的设置。
   (6)ObjectContent对象:供程序设计人员在WEB页面中直接配合MTS(Microft Transaction Servers)使用。
6 服务器组件
    通过服务器端的Script和HTML,可以很容易生成动态网页,但功能有限,例如不能连接服务器据库、使用网络功能或访问服务器文件系统等。了解决这一问题,就要用到COM(ComponentObjeModel)技术,通过COM,可以轻易地使用其它CO组件,这种对于Web可共享的COM组件,就是服器组件。一个服务器组件就相当一个对象,提供属性和方法来使用服务器资源。服务器组件可以由持ActiveX的任何第三方开发,ASP本身提供了五个服务器组件,其中最重要的两个是数据库访问件ADODB和文件访问构件FileSystemObject。要调用服务器组件,必须先利用Server对象的方法CreateObject产生服务器组件对象实例,如所示:Server.CreateObject(ProgID)。这里,ProgID指了构件标识,构件可以是各种形式的可执行程(DLL、EXE等),也不必考虑它的位置,只要在WindowsNT(或95)中登记注册这些程序;COM就会在统资料库(Registry)里维护这些资料,同时以ProgI方式让程序员调用。登记用regsvr32程序,可以RegEdit程序来看ProgID。构件产生后,就可以使它的方法和属性进行工作。
    一般使用Server构件的程序片段如下:
    Setobj=Server.CreateObject(ProgID) ′产生构件
    Obj.Method ′使用它的方法
7  利用ASP实现数据库的访问
    ASP与ADO(ActiveDataObject)可实现数据库的查询服务,首先利用HTML的FORM标签建立查询信息入口,输入用户的请求,服务器从HTTP得到用户的请求,在服务器端执行SQL语言完成相应的数据库操作,ADO可以完成连接支持ODBC的多种数据库,如:Oracle、Foxpro、SQLServer、Informix等,以实现对数据库的访问要求,然后将访问的结果以HTML文本的形式返回用户浏览器端。
    ADO在访问数据库之前,必须先建立数据源,设置DNS,连接并打开相应的数据库,然后使用SQL命令完成相应的任务,再用ASP语句返回结果。
    ASP对网络数据库的访问非常方便快捷,首先要设好ODBC参数,不同格式数据库的ODBC参数设置如下:
    Access:   drive={Microsoft Access Driver (*.mdb)}
              dbq=路径\*.mdb
    dBase:    drive={Microsoft dBase Driver (*.dbf)}
              dbq=路径\*.dbf
    文本文件: drive={Microsoft Text Driver (*.txt;*.csv)}
              dbq=路径\*.txt
    Excel:    drive={Microsoft Excel Driver (*.xls)}
              dbq=路径\*.xls
    让用户通过浏览器查询服务器的后端数据库是许多Web服务提供者必需的服务。ASP通过内置的ADODB组件实现,ADO即ActiveDataObject,同DAO和RDO一样,属于数据库应用的COM构件,不同的是,ADO是专门针对Internet和Web开发的,并对此进行了优化。利用ADO查询数据库的步骤是:
    1)设置DSN ADODB通过ODBC工作,因此要在你的ODBC中设置DSN(数据源名);
    2)生成ADODB组件实例  SetConnect=Server.CreateObject(“ADODB.Connection”);
    3)连接数据库 利用ADODB的成员函数Open和先前设定的DSN可以和数据库连接Connect.Open(“DSN=dsnname;UID=userID;PWD=password”);
    4)执行查询 指定SQL查询语句:SQL=”select*fromtablename”,执行查询SetRS=Connect.Execute(SQL);
    5)使用Recordset对象的命令,显示查询的结果;
    6)在显示后用close命令关闭数据库连接。 
    完整的程序片段:
<%
Set Connect=Server.CreateObject(“ADODB.Connection”) ‘产生组件实例
Connect.Open(”DSN=dsnname;UID=userID;PWD=password”) ‘连接数据库      
SQL=select * from tablename;SetRS=Connect.Execute(SQL)‘执行查询
%>
<%DoWhileNotRS.EOF%>‘显示结果
<%=RS(fieldname)%>
<%
Rs.MoveNext
Loop
Rset.Close         '关闭RecordSet
Connect.Close      '关闭Connection
%>
8  利用ASP技术设计WEB页面的应用实例
    ASP技术的目的是让页面与用户交互,那么,为了得到用户的信息,仍然要使用表单(Form).通过嵌在WWW页面中的表单让用户输入信息,然后,表单把数据传给服务器,服务器再把数据传给ASP引擎或其他程序.下面用一个简单的实例来说明利用ASP技术设计交互式Web页面的方法。
    (1)建立一个表单,它的HTML代码如下:   
    <html>
    <head>
    <title>留言簿</title>
    </head>
    <body language="VBS" >
    <p><font >留言簿</font><br><hr>
    <form action="liuyan.asp" method="post" name="liuyan">
    姓名:<input name="nickname" ><br>     
    E_mail:<input type="text" name="e_mail" size="40"><br>         
    内容:<br>                
   <textarea name="neirou" rows="6" cols="62">
    </textarea><br><p>
    <input type="hidden" name="FirstRec" value="-1">
    <input type="button" value="留言" onclick="return CheckLogin(this.form)">
    <input type="reset" value="重来"><hr>
    </form>  
    </body>
    </html>
    这个表单要求用户输入姓名、E_mail和内容,然后用POST方法将数据提交,再由iuyan.asp文件处理表单提交的内容。
   (2)建立liuyan.asp文件,代码如下:
    <% @ Language=VBScript%>
    <html>
    <head>
    <title>初级留言板</title>
    </head>
    <%  dim nickname,neirou,mail
    Dim exec,bhcheck
    exec=" "
    firstcheck=" "
    bhcheck=" "
    nickname=Trim(Request("nickname"))
    neirou=Trim(Request("neirou"))
  
    mail=Trim(Request("e_mail"))
    exec="insert into liuyan(nickname,neirou,e_mail) values  ('"+nickname+"','"+neirou+"','"+mail+"')"  %> 
    <p alIgN="center"><strong><big>恭喜!你的留言已经成功上载。</p>   
    <% Set Conn=Server.CreateObject("ADODB.Connection")  ‘产生组件实例
    connstr="DBQ="+server.mappath("留言簿.mdb")+";DefaultDir=;DRIVER={Microsoft     Access Driver (*.mdb)};"                                 ‘连接数据库      
    Conn.open connstr    
    Conn.Execute  exec                                   ‘执行查询
    Conn.close %>                                         '关闭Connection
    </html>
9 结束语
   利用ASP技术可以使用户通过浏览器按定制格式输入条件就可对数据库进行检索、插入、删除、修改等各种操作。图书馆可以制作访客留言板、在线轮坛系统、在线投票系统、学位论文提交表单等通过WEB方式动态发布主页。
 
 
[参考文献]
[1]丁贵广等.ASP动态网站建站实例与技巧
[2]陆.利用ASP技术实现WEB数据库的访问.电子科技大学学报,2002年(1)
[3]汪广洪.动态交互网页开发技术ASP.电子技术应用,1999年8期


<1>

上一篇文章: 浅谈数字图书馆建设
下一篇文章:试论虚拟参考服务与读者信息素质教育