ASP技术在WEB数据库中的应用

(整期优先)网络出版时间:2019-07-10
/ 3

摘要: 本文系统地介绍了ASP技术,并对它和与其相关的其他技术如CGI、ISAPI也相应地作了介绍。以使读者有个总体概念。然后用实例说明了ASP技术在登陆WEB数据库系统中实现。

 关键词:ASP WEB数据库 CGI ISAPI ADO(AXTIVE DATA OBJET)

一、引言

ASP(Active Server Pages)是Microsoft 于1996年11月推出的Web应用程序开发技术。微软声称设计出了一个完美的Active平台,在微软的文件中把ASP描述为:"一个服务器的脚本环境,在这里可以生成和运行动态的、交互的、高性能的Web服务器应用程序"。从这段描述我们可以看出,ASP既不是一种语言,也不是一种开发工具,而是一种技术框架,其主要功能是为生成动态的交互式的Web服务器应用程序提供一种功能强大的方法或技术。ASP的主要特性是能够把HTML、脚本、组件等有机地组合在一起,形成一个能够在服务器上运行的应用程序,并把按用户要求专门制作的标准HTML页面送给客户端浏览器。ASP属于ActiveX 技术中的服务器端技术。与我们通常在客户端实现动态主页的技术如Java applet、ActiveX Control、VB Script、JavaScript等所不同的是,ASP中的命令脚本语句都是在服务器中解释执行,执行后的结果产生HTML 页面并送到浏览器。 由于ASP是在服务器端解释执行,开发者可以不必考虑浏览器是否支持ASP。同时,由于只是标准的HTML页面送到浏览器, 在浏览器上看不到ASP程序,因此可以防止程序被窃取,保护了开发者的利益。

二、为什么用ASP

随着Internet的发展,静态Web站点的开发与维护变得越来越困难,一方面信息的不断增加和变化,使站点维护人员不得不经常修改他们的网页,特别是基于数据库驱动的Web站点更是如此;另一方面静态网页由于不能与浏览者进行有效交互,使人们感到越来越乏味,而不愿意再一次地进入同一站点。所以开发动态网页或动态内容成了越来越多的站点所追求目标。所谓动态内容是由每一个用户按照自己的需求发出请求而特殊制作的Web网页,例如访问某一网站的新用户得到的欢迎词与重新返回到该站点的用户得到的欢迎词是不同的。

三、ASP的特点

ASP具有学习快、设计快的特点,不需花许多时间即可学会和快速设计出WEB应用程序。

ASP的源程序码在服务器端执行,代码保密性好。

集成与HTML中,无需编译链接可直接执行;使用文本编辑器如记事本,即可设计。

与浏览器无关,用户端只要使用常规可执行HTML代码的浏览器。

ASP是面向对象的(Object_Oriented)

四、ASP与其它相关技术的比较

随着Internet的发展,静态Web站点的开发与维护变得越来越困难,一方面信息的不断增加和变化使站点维护人员不得不经常修改他们的网页,特别是基于数据库驱动的Web站点更是如此;另一方面静态网页由于不能与浏览者进行有效交互,使人们感到越来越乏味,而不愿意再一次地站点。所以开发动态网页或动态内容成了越来越多的站点所追求目标。

所谓动态内容是由每一个用户按照自己的需求发出请求而特殊制作的Web网页,例如访问某一网站的新用户得到的欢迎词与重新返回到该站点的用户得到的欢迎词是不同的。 有许多技术可以实现动态内容,目前常用的主要有两种:CGI(公共网关接口)和ISAPI 。

CGI是开发较早的技术,它可以很好地实现动态内容,但它有两个主要缺点。一是对每一个请求(请求一个页面)CGI都要产生一个新的进程,同一时刻发出的请求越多,服务器产生的进程也就越多。我们知道,产生一个进程是非常耗时的,而且需要用到大量的服务器RAM,所以其响应时间相对较长,特别是当进程多到某一数量后,服务器性能将显著下降。另一方面,CGI的主要编程语言是C语言,对大多数网页开发人员来说,要掌握和精通这些编程语言需要花很长的时间。

ISAPI针对CGI第一个缺点进行了改进,利用DLL(动态链接库)技术,以线程代替进程, 提高了性能和速度,但要考虑线程的同步问题,而且开发步骤烦琐。

ASP除了提供CGI的所有功能外,还具有许多显著的优点。ASP运行在Web服务器的同一个进程中,可以更快、更有效地处理客户请求;ASP提供更方便、更简单的访问数据库的方法,使开发基于数据库驱动的Web应用程序更加容易;ASP支持几乎所有的脚本语言,如VBS cript、Jscript和Perl,其主要脚本语言VBScript是基于众多编程人员非常熟悉Visual Basic语言,所以ASP更容易被人们所接受。

五、ASP的工作过程

ASP技术直接建立于微软的Web服务器之中,所有微软的Web服务器都支持ASP,如Wind ows NT Internet Information Server(IIS),Windows NT Workstation 以及Windows95 Personal Web Server。你不要担心浏览器是否能执行你的ASP程序,你的WEB服务器会自动把ASP程序码,解释为HTML格式的主页内容,再送到用户端的 浏览器显示出来。如图1所。

六、用ASP实现用户登陆WEB数据库

在ASP中访问数据库,可采用ASP内置ActiveX服务器组件棗数据库访问组件,使用ActiveX Data Object(ActiveX数据对象,简称ADO)的技术。ADO通过在WEB服务器上设定ODBC,来建立与多种数据库的连接,其中包括SQL Server、Oracle、Foxpro等各种大、中、小型数据库。下面我们举例说明用ASP实现用户登陆WEB数据库的过程。

1. 用户在客户机浏览器上输入一个URL地址并回车,请求一个页面。

例如http://yin/User_Login/default.htm。

2. 服务器接受用户请求,调出相应页面(假设该页面含有一个表单)。

例如default.htm,其代码如下:

<html>

<head>

<meta name ="GENERATOR "content ="Microsoft FrontPage 3.0">

<title>系统登录</title>

</head>

<h2 align ="center">系统登录</h2><hr>

<form method ="post" action =”user_login.asp” name =”form”>

<center>

请输入用户名:<input name ="username" type ="text">

请输入口令:<input type ="password" name ="password" size ="14">

<br>

<input type ="submit" value ="登录" name ="submit">

<input type ="reset" value ="复位" name ="reset">

</center></form></body>

</html>

当浏览器端填入要查询的用户名和口令并按下submit按钮时,它将用户名以username,口令以password的变量形式送到user_login.asp中。

3. 服务器把刚调出的含有表单的页面送给客户机浏览器,系统login.htm在IE浏览器中的显示情况如图2所示.。

4. 用户填写完表单,单击"提交"按钮把数据送给服务器,假设表单中Action的URL地址是带有扩展名 .asp的文件。例如action=user_login.asp。服务器运行该ASP文件,取出用户提交的信息。 如果ASP文件需要从数据库得到信息,那么它与数据库连接并从数据库取出数据。这里我们假设有一个Sql server 7.0的用户(USER)表(USERNAME,PASSWORD),我们要求用户在输入正确的用户名和口令后,给出提示信息。正如前所述,我们先在WEB SERVER上配置了ODBC System Datasource(TA),UserID(YIN)。

程序user_login.asp如下:

<%@ Language =VBScript %>

<html>

<head><title>处理用户登录</title></head>

<body >

<%

‘取出表单数据并校验,如果输入不完整则输出错误信息U1

If request.form("username")=""or request.form("password")="" then

response.write "缺少用户名或口令,登录失败"

else

sql=” select USERNAME from USER where USERNAME="

sql= sql&"'"&request.form("username")&"'"

sql=sql&" and PASSWORD="

sql=sql&"'"&request.form("password")&"'"%>

<% ‘和数据库相连,并执行查询

set Conn=server.CreateObject("ADODB.Connection")

Conn.Open("Dsn=TA;uid=yin;pwd=")

set cursor=conn.execute(sql)

%>

<%if cursor.EOF then ‘为空,说明不存在该用户

cursor.close

conn.close

set cursor=nothing

set conn=nothing

response.write "对不起,你还没有注册,不能进入系统"

else

‘从数据库取数据

session("user_name")=cursor(0)‘用户名交给session对象中的变量user_name,直到该用户退出

cursor.close

conn.close

set cursor=nothing

set conn=nothing

response.write "登录成功,欢迎您?

response.write session("user_name")

response.write "—光临我们的站点。"

end if

end if

%>

</body>

</html>

5. 运行ASP文件,按照用户请求生成一个HTML结果页面。例如用户输入的用户名和口令与存储在数据库中的一致,登录成功,服务器把结果页面发送给客户机浏览器。生成HTML页面代码为:

<html>

<head></head>

<body>

登录成功,欢迎您梮xx椆饬傥颐堑恼镜恪?/P>

</body>

</html>

七、ASP的缺点与发展

ASP除了提供访问数据库的服务器组件之外,还有读写服务器文件、访客记数器、广告轮播器、CONTENT LINKING管理URL等服务器组件,您还可以自己制作ACTIVEX服务器组件来扩充ASP的功能。利用这些特点,您可设计出非常精彩的页面。

ASP虽然提供了功能强大的Web应用程序开发环境,但和其它技术一样,它也存在着某些缺点。最主要的是它只能在Windows (NT和95)的Web服务器上运行。但ASP毕竟是软件霸主微软精心设计的一个宠儿,人们不得不慢慢向它靠拢。现在越来越多的Web服务器已开始支持ASP。

ASP从推出至今只有短短的两年时间,由于它具有开发简单、功能强和灵活等优点,现在已被广泛接受,成为开发动态网络站点的主要技术之一。有人声称,ASP已在Web开发领域悄悄地进行着一场革命。今天已有25000个Web站点使用了ASP技术,其中包括许多Inte rnet中最大的站点。有人估计,在过去的24个月中,ASP开发人员已达50万人,预计在2000 年将达到百万之多。ASP正慢慢成为动态Web应用程序开发环境的主流。

参考资料:

ACTIVEX 与VBSCRIPT 实战解析 京京翻译组 机械工业出版社。

在主页中利用ASP技术实现用户口令的验证 张卫丰 微电脑应用 1999年7期

WEB与数据库技术. 罗娟等 计算机工程,1998,24(8)

利用ASP轻松实现WEB的动态交互访问 蔡丹娟等 计算机应用研究 1999年第2期

NT动态站点设计指南 周世雄著 大连理工学院出版社