摘 要
21世纪,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今Web应用的潮流。本文研究了一种基于数据关联规则网上书店系统,此方案与现今网上已采用的一些方案相比,具有用户使用更简单、界面更直观等优点。网上书店在我国刚起步,但发展很快。随着我国互联网的更加普及和网上书店的日趋成熟,会有越来越大的消费群体,市场潜力会得到充分发挥。对网上书店不合时宜的苛求,不仅无助于问题的解决,而且会耽误商机,使自己处于被动地位。临渊慕鱼,不如退而结网。
本文中所做的主要工作如下:
(1)介绍了个性化页面的背景及服务器+IIS+ASP系统的原理;
(2)阐述整个个性化页面生成系统的系统结构及工作原理;分析了系统实现中的特殊性、难点和重点。
(3)设计实现用户管理、图书目录管理、图书信息录入管理、书店定单处理、图书的浏览、书店购物结账功能等ASP页面 。
(4)分析并解决实现若干技术问题。
(5)建立完整的网上书店,进行测试并分析结果。
【关键字】 Html ASP VBscript Access
第一章 前言
Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,易于被人们所接受的信息检索手段,World Wide Web(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。据估计,目前Internet上已有上百万个Web站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。近年来,随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在Internet中的广泛应用,Web站点向用户提供的服务将越来越丰富,越来越人性化。
我们发现这样一个事实,一个用户在访问一个网站时一般来讲只对该网站的部分内容感性趣,而且这种兴趣会持续一段时间。这点启发了我们,如果能根据用户的喜好为不同的用户显示其个性化的页面,即着重显示该用户感兴趣的内容,将为用户节约大量的检索时间,而且这样的网页显然是更具有吸引力的。一些站点已经在这方面作出了一定的尝试,通常采用的方法是,在用户登陆时为其提供一系列的选项,使用户能够对站点进行一些自主的设置。这样做能够使站点呈现一定程度的个性化,但是对用户来讲,还是比较烦琐,而且在用户了解一个站点前让其对站点进行设置,其结果未免有些粗糙。于是我们构想了这样一种方案,对用户登陆后的动作进行跟踪,分析,发掘用户点击的规律,即用户先后点击的关联规则,这样,在用户点击一个主题(链接)之后,系统能够自动生成一页面,其中包含了该主题下用户经常关注的内容(若干链接),这样便在无须用户作出任何额外工作的情况下实现了为用户量身订做的个性化页面。
要实现这样的功能,离不开后台数据库的支持。用户验证信息,收集到的用户点击信息,主题层次信息,分析得出的关联规则表等大量的数据都由数据库管理系统管理。本文中数据库服务器端采用了Microsoft Access数据库作为ODBC(Open DataBase Connectivity )数据源,并以先进的ADO(ActiveX Data Objects)技术进行数据库存取等操作,使Web与数据库紧密联系起来。
整个个性化页面生成系统主要由使用Dreamweaver_MX2004开发的,关联规则采掘系统和利用IIS+ASP技术实现的个性化Web页面生成器两部分组成。关联规则采掘系统对数据库中的历史记录进行分析,产生用户关联规则表;页面生成器则负责记录用户行为和根据关联规则表动态生成用户个性化Web页面。二者通过数据库服务器和Web服务器连接。
本文作者主要完成Web服务器端的用户管理、图书目录管理、图书信息录入管理、书店定单管理、图书的浏览、书店购物结帐功能模块的设计、实现与完善以及整个实验网站的组织建立和测试工作。
第二章 编程环境基础知识
2.1 ASP的产生
近年来随着Internet技术的飞速发展及用户需求的不断升级,Web页面技术也不断的推陈出新,使得Web站点的功能越来越强大,能够提供的服务种类越来越繁多。从HTML、Client Script 到CGI,从JAVA的诞生到ActiveX, Web页面设计人员不断受到冲击,微软公司在总结了以往技术,重新思考Web页面设计的真正需要后,推出了Active Server Pages (ASP),一种用以取代CGI(Common Gateway Interface,通用网关接口)的技术。
简单讲,ASP是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,包括使用 HTML 表单收集和处理信息,上传与下载等等。更重要的是,ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的Web编写工具所远远不及的地方。使用ASP还有个好处,就在于ASP可利用ADO(Active Data Object,微软的一种新的数据访问模型)方便快捷地访问数据库,从而使得开发基于万维网的应用系统成为可能,这也是本文选择ASP作为开发工具最重要的原因之一。
2.2 ASP与IIS
2.2.1 IIS简介
Wsb服务器是Web应用程序的心脏。IIS(Internet Information Server)是微软推出的Windows NT的主要成员,作为Win2000server的扩展,自推出以来已经有了很大发展,其体系结构是当今市场上最受关注的Web服务器之一。新推出的IIS4.0版本增强了系统安全性,具有服务器端脚本开发调试,内容管理和站点分析,崩溃防护,内置全面支持ASP等强大功能。
2.2.2 IIS与ASP的结合
在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法作出集成性的设计。现在我们利用IIS+ASP构成三层式Web结构的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大。
利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面:
- 减少构建和维护成本
- 加快联机过程
- 应用软件集中在服务器端开发管理
- 前端可使用任何浏览器(IE、Netscape…..)
- 后端可存取任何数据库 (SQL、Access…..)
- 可使用任何脚本语言开发 (VBScript、JavaScript、PERL…..)
2.3 ASP的特点
2.3.1 ASP内部6大对象
ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。这6个对象及其功能描述如表2.3.1所示。
对象名称 |
功能描述 |
Request |
从客户端取得信息 |
Response |
将信息送给客户端 |
Server |
提供一些Web服务器工具 |
Session |
储存在一个Session内的用户信息,该信息仅可被该用户访问 |
Application |
在一个ASP-Application中让不同的客户端共享信息 |
ObjectContext |
配合Microsoft Transaction服务器进行分布式事务处理 |
表2.3.1 ASP 内部6大对象及其功能
合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。
我们可以用以下的语法直接使用这些对象:对象/属性/方法/数据集合
2.3.2 Global 文件
每一个以Active Server Pages为基础的应用程序都拥有一个Global.asa文件(ASA后缀名其实是Active Server Application的缩写),它位于每一个应用程序的基点目录之下。当Active Server Pages做下面两个动作时,Server便会去读Global.asa文件:
1.Web Server启动之后,一个应用程序目录中任一个ASP文件被提出第一个HTTP请求(Request)时。
2.不具有任何Session的客户端向Server请求一个ASP文件时。
前面已经提到Application和Session这两个ASP的内部对象。Application对象内的信息供所有正在执行该应用程序的用户分享,它创建于Web Server启动后一个应用程序中任一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同时开始,Active Server Pages会先处理Application的开始事件,而如果一个Application与一个Session同时结束,Active Server Pages则会先处理Session的结束事件。
2.4 利用ADO访问数据库
ADO(ActiveX Data Objects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(Server Component),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ADO技术。具体的操作步骤可以归纳为以下几步:
1.创建数据库源名(DSN)
2.创建数据库链接(Connection)
3.创建数据对象
4.操作数据库
5.关闭数据对象和链接
每一步的作法如下:
一、创建数据源名
DSN(Date Source Name)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有Access的ODBC驱动程序,那么即使我们没有Access软件,也可以在我们的程序中对一个Access的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQL Server的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁。
二、创建数据库链接(Connection)
链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。
ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:
set Conn=Server.createObject(“ADOBD.CONNECTION”)
这条语句创建了链接对象Conn,接下来:
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data.Source="&Server.MapPath(""&db&"")
conn.Open connstr
这条语句打开链接,用到了DSN,本例为“connstr”。
以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。
三、创建数据对象(Record Set)
ADO中的数据对象通常保存的是查询结果。Record Set是ADO中最复杂的对象,有许多属性和方法。Record Set保存的是一行行的记录,并标有一个当前记录。以下是创建方法:
Set Record Set=Conn.Execute(sqtStr)
这条语句创建并打开了对象Record Set,其中Con是先前创建的链接对象,rs是一个字串,代表一条标准的SQL语句。例如:
rs=“SELECT * FROM shop_books”
Set Record Set=mConn.Execute(rs)
这条语句执行后,对象Record Set中就保存了表tab1中的所有记录。
四、操作数据库
我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:
rs=“INSERT INTO tab1 VALUES(1,2)”
mConn.Execute(rs)
/执行插入操作
五、关闭数据对象和链接对象
在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。
Record Set.close
Set Record Set=Nothing
/关闭创建的数据对象
mConn.close
Set mConn=Nothing
/关闭创建的链接对象
2.5 ASP的特点
Active Server Pages开发Web应用程序的特点:
- 完全嵌入HTML,与HTML、Script语言完美结合。
- 无须手动编译和链接程序。
- 面向对象,并可扩展ActiveX Server组件功能。
- 使用脚本语言(JavaScript、VBScript)编写。
- 存取数据库轻松容易(使用ADO组件)。
- 可使用任何语言编写自己的ActiveX Server组件。
- 无浏览器兼容问题。
- 程序代码隐藏,客户端仅能看到ASP输出的HTML文件。
- 缩短Web开发时间。
可见,ASP在数据库访问、与HTML的集成、提高服务器的效率等诸多方面都不错,更适应Web应用程序开发的需要,因此本文选择了ASP作为个性化页面生成器的开发工具。
第三章 网上书店系统需求分析
此网上书店售书系统可以实现商家后台发布商品信息、消费者在线购买等功能。具体来说此购书系统只有注册才能购买,注册后保留了客户的所有信息,在购书过程中不需要烦琐的去添写信息,后台管理中可以添加各种各样的图书,以及对图书信息的修改、删除功能,以及对定单进行处理。
3.1硬件平台:
CPU:P41.0GHz。
内存:128MB以上。
3.2 软件平台:
操作系统:Windows XP专业版/ Windows 2000/ Windows 2003。
编辑脚本:Vbscript
使用的编辑器:dreamweaver
数据库:Access 2000。
浏览器:IE5.0
Web服务器:IIS
分辨率:最佳效果1024×768像素。
第四章 总体设计
4.1系统模块结构设计
前台结构图
后台结构图
4.2 数据库设计
- Class1表显示图书的大分类
Id |
自动编号 |
编号 |
Class_1_Name |
文本 |
大分类名称 |
Class_1_RegTime |
日期/时间 |
添加日期 |
e-r图
Class1表
- Class2表显示图书的小分类
Id |
自动编号 |
编号 |
Class_2_Name |
文本 |
小分类名称 |
Class_1_Name |
文本 |
大分类名称 |
Class_2_RegTime |
文本 |
添加日期 |
e-r图
Class2表
- Manage_user表显示管理员账户
Id |
自动编号 |
编号 |
UserName |
文本 |
管理员名称 |
UserName |
文本 |
管理员密码 |
e-r图
Manage_user表
- orderlist表显示定单表
Form_Id |
自动编号 |
表单编号 |
User_Id |
文本 |
用户编号 |
Name |
文本 |
用户名 |
Zip |
数字 |
邮政编码 |
Phone |
文本 |
电话 |
|
文本 |
电子邮箱 |
Address |
文本 |
住址 |
Pays |
文本 |
付款方式 |
RegTime |
日期/时间 |
日期 |
Flag |
文本 |
处理结果 |
Remark |
备注 |
用户消息 |
e-r图
orderlist表
- product表显示所有商品信息
Product_No |
自动编号 |
编号 |
Product_Id |
文本 |
图书编号 |
Product_Name |
文本 |
图书信息 |
Class_1 |
文本 |
大分类 |
Class_2 |
文本 |
小分类 |
Product_Intro |
文本 |
图书信息 |
Product_Show |
文本 |
商品信息 |
P_NewPrice |
货币 |
会员价 |
P_OldPrice |
货币 |
普通价 |
P_Pic |
文本 |
小图片 |
P_Full_Pic |
文本 |
大图片 |
RegTime |
日期/时间 |
日期 |
Look_Count |
数字 |
图书数量 |
product表
- reguser表显示注册用户信息
Id |
自动编号 |
编号 |
UserId |
文本 |
用户名 |
PassWD |
文本 |
用户密码 |
WtPass |
文本 |
提示问题 |
DaPass |
文本 |
提示答案 |
Name |
文本 |
用户姓名 |
Sex |
文本 |
姓别 |
|
文本 |
电子邮箱 |
Phone |
文本 |
电话 |
Address |
文本 |
地址 |
Zip |
数字 |
邮编 |
RegTime |
日期/时间 |
日期 |
reguser表
- shoplist表显示定单查询表
Id |
自动编号 |
编号 |
Product_Id |
文本 |
定单号 |
Form_Id |
数字 |
表号 |
Product_Name |
文本 |
图书名 |
Number |
数字 |
数量 |
P_NewPrice |
货币 |
价格 |
RegTime |
日期/时间 |
价格 |
shoplist表