配色: 字号:
网上书店的实现
2012-09-19 | 阅:  转:  |  分享 
  
网上书店的实现



【摘要】

20世纪末,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今Web应用的潮流。本文研究了一种基于数据关联规则网上书店系统,此方案与现今网上已采用的一些方案相比,具有用户使用更简单、界面更直观等优点。网上书店在我国刚起步,但发展很快。随着我国互联网的更加普及和网上书店的更趋成熟,会有越来越大的消费群体,市场潜力会得到充分发挥。对网上书店不合时宜的苛求,不仅无助于问题的解决,而且会耽误商机,使自己处于被动地位。临渊慕鱼,不如退而结网。

本文中所做的主要工作如下:

(1)介绍了个性化页面的背景及Win2000server+IIS+ASP系统的一般原理;

(2)阐述整个个性化页面生成系统的系统结构及工作原理;分析了系统实现中的特殊性、难点和重点。

(3)设计实现用户管理、图书目录管理、图书信息录入管理、书店定单管理、图书的浏览和查找、书店购物结帐功能等ASP页面。

(4)分析并解决实现中的若干技术问题。

(5)建立完整的网上书店,进行测试并分析结果。



【关键字】网上书店ASP连接数据库





























目录

1.背景 2

2.特殊技术困难 4

3ASP技术综述 6

3.1ASP的产生 6

3.2ASP与IIS 6

3.3ASP的内部特点 7

3.4利用ADO访问数据库 8

3.5ASP与CGI的比较 9

4网上书店系统分析 10

5网上书店的管理 11

5.1前台的管理 11

5.2后台的管理 15

6网上书店的建立及测试 17

6.1网上书店的建立 17

6.2用户使用 18

7结束语 18

致谢 19

参考文献: 19

































第一章背景

Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,易于被人们所接受的信息检索手段,WorldWideWeb(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。据估计,目前Internet上已有上百万个Web站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。近年来,随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在Internet中的广泛应用,Web站点向用户提供的服务将越来越丰富,越来越人性化。

我们发现这样一个事实,一个用户在访问一个网站时一般来讲只对该网站的部分内容感性趣,而且这种兴趣会持续一段时间。这点启发了我们,如果能根据用户的喜好为不同的用户显示其个性化的页面,即着重显示该用户感兴趣的内容,将为用户节约大量的检索时间,而且这样的网页显然是更具有吸引力的。一些站点已经在这方面作出了一定的尝试,通常采用的方法是,在用户登陆时为其提供一系列的选项,使用户能够对站点进行一些自主的设置。这样做能够使站点呈现一定程度的个性化,但是对用户来讲,还是比较烦琐,而且在用户了解一个站点前让其对站点进行设置,其结果未免有些粗糙。于是我们构想了这样一种方案,对用户登陆后的动作进行跟踪,分析,发掘用户点击的规律,即用户先后点击的关联规则,这样,在用户点击一个主题(链接)之后,系统能够自动生成一页面,其中包含了该主题下用户经常关注的内容(若干链接),这样便在无须用户作出任何额外工作的情况下实现了为用户量身订做的个性化页面。

要实现这样的功能,离不开后台数据库的支持。用户验证信息,收集到的用户点击信息,主题层次信息,分析得出的关联规则表等大量的数据都由数据库管理系统管理。本文中数据库服务器端采用了MicrosoftAccess数据库作为ODBC(OpenDataBaseConnectivity)数据源,并以先进的ADO(ActiveXDataObjects)技术进行数据库存取等操作,使Web与数据库紧密联系起来。

整个个性化页面生成系统主要由使用Dreamweaver_MX开发的关联规则采掘系统和利用IIS+ASP技术实现的个性化Web页面生成器两部分组成。关联规则采掘系统对数据库中的历史记录进行分析,产生用户关联规则表;页面生成器则负责记录用户行为和根据关联规则表动态生成用户个性化Web页面。二者通过数据库服务器和Web服务器连接。

本文作者主要完成Web服务器端的用户管理、图书目录管理、图书信息录入管理、书店定单管理、图书的浏览和查找、书店购物结帐功能模块的设计、实现与完善以及整个实验网站的组织建立和测试工作。



第二章.特殊技术困难

用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中关于如何上传文件到服务器恐怕是遇见最多的问题了,尤其是上传图片,比如你想要在功能,就要上传照片的功能。上传图片文件到服务器可以使用各种免费的文件上传组件,使用起来功能虽然很强大,但是由于很多情况下,我们只能使用免费的支持ASP的空间或者租用别人的虚拟空间,对于第一种情况,我们根本就没有可能来使用文件上传组件;至于第二种情况,我们也要付出不少的“银子”才可以。除非你拥有自己的虚拟主机,你就可以随便的在服务器上面安装自己所需要的组件,这种情况对于大多数人来说是可望而不可及的。使用纯ASP代码来实现图片的上传功能。dimupload,file,formName,formPath,iCount,sname

setupload=newupload_5xSoft''''建立上传对象

response.writeupload.Version&""''''显示上传类的版本

ifupload.form("filepath")=""then''''得到上传目录

HtmEnd"请输入要上传至的目录!"

setupload=nothing

response.end

else

formPath=upload.form("filepath")&year(now)&month(now)&"/"

''''在目录后加(/)

ifright(formPath,1)<>"/"thenformPath=formPath&"/"&year(now)&month(now)&"/"

endif

iCount=0

foreachformNameinupload.file''''列出所有上传了的文件

setfile=upload.file(formName)''''生成一个文件对象

iffile.FileSize>0then''''如果FileSize>0说明有文件数据

file.SaveAsServer.mappath(formPath&file.FileName)''''保存文件

response.write"
上传成功,请复制下边剪切板中内容而后粘贴到图书图片剪切板内!

"

dimthename,fsobj,spp,paths

''文件更名

thename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&right(file.filename,4)

''response.writethename

spp=file.filename

file.filename=thename

file.SaveAsServer.mappath(formPath&file.FileName)

paths=server.mappath("../")&"\bookpic\"&year(now)&month(now)&"\"&spp

setfsobj=server.CreateObject("scripting.filesystemobject")

iffsobj.fileExists(""&paths&"")then

fsobj.deletefile(""&paths&"")

endif

setfsobj=nothing

response.write"
复制

关闭窗口
"

iCount=iCount+1

endif

setfile=nothing

next

setupload=nothing''''删除此对象

response.write""

''HtmendiCount&"个文件上传成功!"

subHtmEnd(Msg)

setupload=nothing

response.write"
"&Msg&"[关闭窗口]"

response.end

endsub

FunctionGetPP

dims

s=Request.ServerVariables("path_translated")

GetPP=left(s,instrrev(s,"\",len(s)))

Endfunction



虽然这样上传图片比较麻烦,不过这样就不用连到数据库,要连数据库就更麻烦了。

由于在对大多数技术困难的解决中频繁用到了ASP技术的许多独特的性质和处理方法,这里有必要对ASP及相关技术的一些重要部分进行介绍,以便于对全文的理解。





第三章ASP技术综述

3.1ASP的产生

近年来随着Internet技术的飞速发展及用户需求的不断升级,Web页面技术也不断的推陈出新,使得Web站点的功能越来越强大,能够提供的服务种类越来越繁多。从HTML、ClientScript到CGI,从JAVA的诞生到ActiveX,Web页面设计人员不断受到冲击,微软公司在总结了以往技术,重新思考Web页面设计的真正需要后,推出了ActiveServerPages(ASP),一种用以取代CGI(CommonGatewayInterface,通用网关接口)的技术。

简单讲,ASP是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式的动态网页,包括使用HTML表单收集和处理信息,上传与下载等等。更重要的是,ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的Web编写工具所远远不及的地方。使用ASP还有个好处,就在于ASP可利用ADO(ActiveDataObject,微软的一种新的数据访问模型)方便快捷地访问数据库,从而使得开发基于WWW的应用系统成为可能,这也是本文选择ASP作为开发工具最重要的原因之一。

3.2ASP与IIS

3.2.1IIS简介

Wsb服务器是Web应用程序的心脏。IIS(InternetInformationServer)是微软推出的WindowsNTOptionPack的主要成员,作为Win2000server的扩展,自推出以来已经有了很大发展,其体系结构是当今市场上最受关注的Web服务器之一。新推出的IIS4.0版本增强了系统安全性,具有服务器端脚本开发调试,内容管理和站点分析,崩溃防护,内置JAVA虚拟机及全面支持ASP等强大功能。

3.2.2IIS与ASP的结合

在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法作出集成性的设计。现在我们利用IIS+ASP构成三层式Web结构(如图2.1所示)的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大。

利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面:

减少构建和维护成本

加快联机过程

应用软件集中在服务器端开发管理

前端可使用任何浏览器(IE、Netscape…..)

后端可存取任何数据库(SQL、Access…..)

可使用任何脚本语言开发(VBScript、JavaScript、PERL…..)

































图2.1





3.3ASP的内部特点

3.3.1ASP内部6大对象

ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。这6个对象及其功能描述如表2.1所示。



对象名称 功能描述 Request 从客户端取得信息 Response 将信息送给客户端 Server 提供一些Web服务器工具 Session 储存在一个Session内的用户信息,该信息仅可被该用户访问 Application 在一个ASP-Application中让不同的客户端共享信息 ObjectContext 配合MicrosoftTransaction服务器进行分布式事务处理

表2.1ASP内部6大对象及其功能

合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。

我们可以用以下的语法直接使用这些对象:对象/属性/方法/数据集合

3.3.2Global文件

每一个以ActiveServerPages为基础的应用程序都拥有一个Global.asa文件(ASA后缀名其实是ActiveServerApplication的缩写),它位于每一个应用程序的基点目录之下。当ActiveServerPages做下面两个动作时,Server便会去读Global.asa文件:

1.WebServer启动之后,一个应用程序目录中任一个ASP文件被提出第一个HTTP请求(Request)时。

2.不具有任何Session的客户端向Server请求一个ASP文件时。

前面已经提到Application和Session这两个ASP的内部对象。Application对象内的信息供所有正在执行该应用程序的用户分享,它创建于WebServer启动后一个应用程序中任一ASP文件被提出第一个HTTP请求时,结束于Server端停止运行。而Session对象仅属于一位用户,维持一个用户端的信息,其他用户无法访问,它创建于一个不具有Session的用户向Server请求一个ASP文件时,结束于该Session到期(即用户端超过某时间段没有向Server提出要求或刷新Web页面)或Abandon语句的调用。可见,Global.asa文件的调用与Application与Session这两个对象密切相关。事实上我们通常在Global。asa文件中写入以下内容:

Application或Session的开始事件(Start-event)。

Application或Session的结束事件(End-event)。

这样,在一个Application或Session对象被创建或结束时,系统会自动完成Global.asa文件中写入的相应事件。值得注意的是,如果一个Application与一个Session同时开始,ActiveServerPages会先处理Application的开始事件,而如果一个Application与一个Session同时结束,ActiveServerPages则会先处理Session的结束事件。

3.4利用ADO访问数据库

ADO(ActiveXDataObjects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(ServerComponent),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ADO技术。具体的操作步骤可以归纳为以下几步:

1.创建数据库源名(DSN)

2.创建数据库链接(Connection)

3.创建数据对象

4.操作数据库

5.关闭数据对象和链接

每一步的作法如下:

一、创建数据源名

DSN(DateSourceName)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有Access的ODBC驱动程序,那么即使我们没有Access软件,也可以在我们的程序中对一个Access的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQLServer的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁。

二、创建数据库链接(Connection)

链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:

setConn=Server.createObject(“ADOBD.CONNECTION”)

这条语句创建了链接对象Conn,接下来:

connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data.Source="&Server.MapPath(""&db&"")

conn.Openconnstr

这条语句打开链接,用到了DSN,本例为“connstr”。

以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。

三、创建数据对象(RecordSet)

ADO中的数据对象通常保存的是查询结果。RecordSet是ADO中最复杂的对象,有许多属性和方法。RecordSet保存的是一行行的记录,并标有一个当前记录。以下是创建方法:

SetRecordSet=Conn.Execute(sqtStr)

这条语句创建并打开了对象RecordSet,其中Con是先前创建的链接对象,rs是一个字串,代表一条标准的SQL语句。例如:

rs=“SELECTFROMshop_books”

SetRecordSet=mConn.Execute(rs)

这条语句执行后,对象RecordSet中就保存了表tab1中的所有记录。

四、操作数据库

我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:

rs=“INSERTINTOtab1VALUES(1,2)”

mConn.Execute(rs)

/执行插入操作

五、关闭数据对象和链接对象

在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。

RecordSet.close

SetRecordSet=Nothing

/关闭创建的数据对象

mConn.close

SetmConn=Nothing

/关闭创建的链接对象

3.5ASP与CGI的比较

CGI(CommonGatewayInterface,通用网关接口)也是Internet上一种功能强大的Web页面技术,其工作方式有别于ASP。我们现对二者进行比较。

ActiveServerPages开发Web应用程序的特点:

完全嵌入HTML,与HTML、Script语言完美结合。

无须手动编译和链接程序。

面向对象,并可扩展ActiveXServer组件功能。

使用脚本语言(JavaScript、VBScript或PERL)编写。

存取数据库轻松容易(使用ADO组件)。

可使用任何语言编写自己的ActiveXServer组件。

无浏览器兼容问题。

程序代码隐藏,客户端仅能看到ASP输出的HTML文件。

缩短Web开发时间。

相比之下,使用CGI开发Web应用程序具有以下缺点:

不易与HTML文件集成。

须使用其他较复杂的语言来开发CGI程序。

程序开发时间较长。

存取数据库不容易。

每个CGI程序被不同用户执行时都得重新执行一次,并占去Server的一个端口(Port),降低Server效率。

可见,ASP在数据库访问、与HTML的集成、提高服务器的效率等诸多方面都优于CGI,更适应Web应用程序开发的需要,因此本文选择了ASP作为个性化页面生成器的开发工具。





第四章网上书店系统分析

一.网上书店售书系统说明

此网上书店售书系统可以实现商家在线发布商品信息、消费者在线购买等功能。具体来

程序和计算逻辑



前端浏览器



ActiveXServer元件



ActiveXServer元件



后端数据库



数据库服务器



MicrosoftIIS+ASP



浏览器







献花(0)
+1
(本文系无为有法521...首藏)