您现在正在浏览:首页 > 职教文章 > 职教论文 > 使用ASP开发网上答疑系统Web数据库应用

使用ASP开发网上答疑系统Web数据库应用

日期: 2010/7/5 浏览: 110 来源: 学海网收集整理 作者: 哈尔滨工业大学机电学院 王 瑜

使用ASP开发网上答疑系统Web数据库应用

王 瑜

(哈尔滨工业大学机电学院)

摘要:开发出适合于网络教学应用的Web数据库。在了解Web数据库的工作原理及实现技术的基础上,对Web数据库的具体应用进行了研究与开发。运用RDS、ADO技术,实现了通过Internet的Web页面访问服务器端数据库。

关键词:数据库,ASP,网络教学

中图分类号:TP393

网上答疑系统是一个基于数据库和网络的在线答疑系统,采用B/S三层结构作为系统的总体结构,由Web服务器、数据库服务器和浏览器组成,并综合运用HTML、动态HTML、ASP(Active Server Pages)和ActiveX组件等技术,由Web服务器统一进行管理和发送,用户通过浏览器以HTTP协议向服务器发出请求,并接受和显示服务器提供的Web信息。因此实现网上答疑系统主要涉及到数据库技术和网络技术,其中网络技术又包括Web服务器技术和ASP技术。

1 ASP语言特点

ASP是Active Server Pager(活动服务器页面)的缩写。它是一种服务器端脚本环境。在ASP环境下,开发者可以通过创建服务器端脚本来实现动态交互式Web页面和强大的Web应用程序,而且ASP脚本还可以和HTML语言(包括相关的客户端脚本)、Java小程序等混合在一起书写,这就大大丰富和扩充了ASP应用程序的功能、使用ASP可以实现以下基本功能[1][2]。

访问服务器端的文件系统;

连接数据库并开发基于数据库的应用;

在应用中嵌入ActiveX、COM组件和Java Applet。图1为ASP的工作原理图。

ASP既能够像CGI和ISAPI一样提供强大的操作系统级访问,又能够同IDC一样易于编程和访问数据库,同时兼具ISAPI快捷的运行速度。它与微软的ActiveX Server Component技术紧密结合,使数据库操纵能力大大加强。它内嵌的Application Session对象实现了Web页运行的状态机制,完全具备开发复杂应用的语言环境,可以说ASP技术是Web技术的一次飞跃。ASP的技术核心就是将静态HTML页面与可执行的Script语句有机地结合在一起形成ASP页面文件[3]。

概括起来,ASP同以往的几种Web开发工具相比具有以下独特的优点:(1)灵活易用;(2)强大的可扩充性;(3)无需编译;(4)独立于浏览器。

2 使用ASP开发Web数据库应用

2. 1 ADO程序模型

ADO(ActiveX Data Object)是一个ASP内置的ActiveX服务器组件。ADO对象模式包含以下四个对象:Connection、Command、RecordSet、Field。其关系如图2所示[4][5][6]。

2.2 Web数据库的实施

使用ASP语言建立与Web数据库的连接通常有两种方法:使用ASP组件Data Access和使用ADO技术。Data Access组件是ASP语言中运用ADO技术开发出来用于访问数据库的组件,其核心技术是ADO。ADO是数据库访问的基础技术,它支持OLE DB各种提供者对在数据库服务器中的数据进行访问和操作的应用程序。ASP作为上层开发语言,支持ADO。对于我们的数据库访问,我们采用基础的ADO,这样能够方便的运用数据库的操作指令开发灵活度较高的Web应用程序。

2.2.1 建立数据库的连接

使用ADO的Connection对象建立数据库的连接。我们采用了简单的Access数据库,以方便维护和二次开发。其专用的接口名称为“Microsoft.Jet.OLE DB.4.0”。

以建立与教学论坛的数据库连接为例说明:

<%Set Conn=Server.CreateObject("ADODB.Connection")

Connstr="DBQ="+server.mappath("bbspp1.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};

DriverId=25;FIL=MS Access;MaxBufferSize=512;

MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;

Conn.Open connstr%>

2.2.2 数据预处理及向数据库添加记录

在添加数据库之前应对数据进行预处理,以提高数据库的使用效率,同时可以很好的防止用户的误操作而造成数据库资源的浪费。如在数据库的图片存入阶段,使用JavaScript语言编写以下代码以保证图片存储格式的正确。并防止传送空文件。

function mysubmit(theform)

{

if(theform.big.value=="")

{ alert("请点击浏览按钮,选择您要上传的jpg或gif文件!")

theform.big.focus; return (false); }

else{str=theform.big.value;

strs=str.toLowerCase();lens=strs.length;

extname=strs.substring(lens-4,lens);

if(extname!=".jpg"&&extname!=".gif"&&

extname!=".bmp"&&extname!=".tif"&&

extname!=".png")

{ alert("请选择jpg或gif、bmp、tif、png文件!");

return (false);}}

return (true);

}

2.2.3 页面间参数的传递及数据库调用

网络应用程序的关键之一就是网页之间的参数传递,上一个页面输入的数据参数可能需要传送到下一个页面进行处理或者调用。同时这些参数往往是查询数据库时所用的字段。ASP中在页面间参数的传递使用Request.QueryString集合和Request.Form集合。它们的区别是Request.QueryString集合要接收的参数会出现在URL中,这样数据的保密性就不好了,用户若是猜到要传递的参数位数和形式的话,通过在地址栏中直接输入URL就会跳过本页面而直接调转到下一个页面。这样就会躲过一些必须输入参数的页面。要用到此种方法时解决的办法是对数据进行“处理”。如在登陆页面对于每个第一次登陆的用户给出一个“随机数”,作为该用户的代码ID,并以此代码作为以后所有操作的主要参数。包括其言论信息的发布,图片的插入、调用等。

(1)随机数的产生:

LogTime=Now()

Num=Cstr(Hour(LogTime)) &

Cstr(Minute(LogTime)) &

Cstr(Second(LogTime))& Cstr(Int(Rnd*10000))

(2)随机数的使用:

sql="SELECT * FROM 发言表 WHERE Num='" & Request("Num") & "'"

Set Rs=conn.Execute(sql)

set name1=rs("用户名")

set name2=rs("发言标题")

set name3=rs("发表的内容")

set name4=rs("电子信箱")

set Num=rs("Num")

3 使用RDS访问Web数据库

RDS(Microsoft Remote Data Service)是在IIS 4.0中提出的一种新概念,是由ASP中原来的Advanced Data Connector(ADC)发展而来的,RDS能够将对数据的操纵(如检索数据、高效的客户端缓存、对数据敏感的ActiveX控件的支持)同功能强大的编程模型相结合,从而使得设计功能完整的Web数据库应用成为可能。RDS最重要的特性就是能够提供对远程数据库的访问功能。ADO虽然功能十分强大,但是它并不能方便地提供远程数据库操作,ADO通常只能向客户端返回静态的HTML结果,用户无法对这些静态的结果进行直接的修改,在数据库和客户端之间并不存在直接的连接,客户端只能通过构造对数据库进行操纵的SQL语句才能完成对数据库的修改。而RDS则不同,它允许客户端修改他们在浏览器中看到的数据,通过使用内嵌的ActiveX控件,开发人员只要使用简单的代码就可以在Web应用中插入表格、列表、复选框等工具来构造复杂的用户,用户使用这样的界面可以直接查看和修改数据,所有对数据库的操作都将在本地缓存,然后通过一个提交命令,就可以将其所做的修改写入到远程数据库中。这样,用户的感觉就好像就是在使用本地数据库。综上所述,RDS实现了将传统的客户端服务器技术同Web相结合,客户端不再像过去那样是只读的、静态的。通过使用本地数据缓存,终端用户如今无需与服务器进行复杂的交互就可以完成对大量数据的操纵。

RDS的底层是通过对ADO调用来完成的,所以其具备许多同ADO相似的特性,唯一的区别在于RDS需要通过数据绑定的ActiveX控件相结合来完成对数据库的操纵。

3.1 RDS三层体系结构模型

远程数据服务应用程序的三层客户端/服务器模型将客户端/服务器系统的不同组件分成三“层”,如图3所示[7]。

客户端层:Web浏览器在其上显示Web页面的本地计算机。Web页面可以显示并处理来自远程数据源的数据,在不基于Web的应用程序中,是单独编译的前端应用程序。

中间层:其组件封装了组织业务规划的Microsoft Windows 2000 Server 主机。中间层组件可以是在Internet Information Server上执行的Active Server Pages脚本,或者是在不基于Web的应用程序中编译的可执行文件。

数据源层:宿主数据库管理系统(DBMS)。在两层应用程序中,中间层与数据源层结合在一起。

3.2 RDS应用程序的工作方式

在创建远程数据服务应用程序时,可以将应用程序分为两个或三个逻辑层。基于Web的远程数据服务应用程序处理用户请求和显示数据库信息的过程。客户端组建一般情况下包含在Internet Explore浏览器中,并使用HTTP协议与服务器组件进行通讯。

用户输入请求时,客户端远程数据服务组件发送查询给中间层的Web服务器,Web服务器处理请求并将请求发送给DBMS。DBMS响应请求,发回数据。Web服务器将数据转换为ADO.Recordset对象,通过网络将其发送到客户端计算机,并显示在数据识别控件中。同时,结果数据将缓存在客户端计算机上,从而减少了到Web的连接次数并且使用户处理数据更方便。如图4所示[8][9]。

4.结束语

本文运用ASP中ADO、RDS技术开发了Web数据库的应用,并阐明了由于与ASP技术相结合使得对于Web数据库访问功能大大加强,实施的手段得以简化的特点。在应用ASP开发网络应用程序时,由于有网络数据库的支持(ADO、RDS),故而使得可以开发功能强大的网络应用程序。

参考文献

宋颜浩,费文华. ASP与相关数据库技术高级指南.中国水利水电出版社,2000:637~673,97~100

Dino Esposito. Professional ASP Data Access. Wrox Press., 2000:57~101

聂瑞华.远程教育软件中Web数据库技术研究与实现. 计算机工程与应用.2001,4:83~84,98

Mark Source.Active data objects & ASP Betz.Dr. Dobb's Journal of Software Tools for Professional Programmer. 1998 ,5:88

Greg Buczek. Instant ASP Componet. The McGraw-Hill Companies,Inc.,2000:3~28

Scott Mitchell. Designing Active Server Pages. O’Reilly & Associates,Inc.,2000:29~49,279~324

刘军. 基于ASP的Web数据库交互访问技术.武汉工业大学学报.2000,22(4):46~48

William Robert Stanek. Microsoft Windows 2000 and IIS 5.0 Administrator's Pocket Consultant. Microsoft Press.,2001:108~232

Richard Anderson,Dan Denault,Brian Francis. ASP 3.0 Programmer's Reference. Wrox Press Inc., 1999:13~30


使用ASP开发网上答疑系统Web数据库应用.doc

返回顶部