ASP在线贴吧系统的设计与实现Word下载.docx
《ASP在线贴吧系统的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《ASP在线贴吧系统的设计与实现Word下载.docx(54页珍藏版)》请在冰豆网上搜索。
![ASP在线贴吧系统的设计与实现Word下载.docx](https://file1.bdocx.com/fileroot1/2022-11/23/8b978b69-a7f0-4f0a-b95c-ed180e1f694a/8b978b69-a7f0-4f0a-b95c-ed180e1f694a1.gif)
第一章、引
言
Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。
作为Internet上一种先进的,易于被人们所接受的信息检索手段,World
Wide
Web(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。
据估计,目前Internet上已有上百万个Web站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。
近年来,随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在Internet中的广泛应用,Web站点向用户提供的服务将越来越丰富,越来越人性化。
我们发现这样一个事实,一个用户在访问一个网站时一般来讲只对该网站的部分内容感性趣,而且这种兴趣会持续一段时间。
这点启发了我们,如果能根据用户的喜好为不同的用户显示其个性化的页面,即着重显示该用户感兴趣的内容,将为用户节约大量的检索时间,而且这样的网页显然是更具有吸引力的。
一些站点已经在这方面作出了一定的尝试,通常采用的方法是,在用户登陆时为其提供一系列的选项,使用户能够对站点进行一些自主的设置。
这样做能够使站点呈现一定程度的个性化,但是对用户来讲,还是比较烦琐,而且在用户了解一个站点前让其对站点进行设置,其结果未免有些粗糙。
于是我们构想了这样一种方案,对用户登陆后的动作进行跟踪,分析,发掘用户点击的规律,即用户先后点击的关联规则,这样,在用户点击一个主题(链接)之后,系统能够自动生成一页面,其中包含了该主题下用户经常关注的内容(若干链接),这样便在无须用户作出任何额外工作的情况下实现了为用户量身订做的个性化页面。
要实现这样的功能,离不开后台数据库的支持。
用户验证信息,收集到的用户点击信息,主题层次信息,分析得出的关联规则表等大量的数据都由数据库管理系统管理。
本文中数据库服务器端采用了Microsoft
Access数据库作为ODBC(Open
DataBase
Connectivity
)数据源,并以先进的ADO(ActiveX
Data
Objects)技术进行数据库存取等操作,使Web与数据库紧密联系起来。
整个个性化页面生成系统主要由使用Dreamweaver_MX开发的关联规则采掘系统和利用IIS+ASP技术实现的个性化Web页面生成器两部分组成。
关联规则采掘系统对数据库中的历史记录进行分析,产生用户关联规则表;
页面生成器则负责记录用户行为和根据关联规则表动态生成用户个性化Web页面。
二者通过数据库服务器和Web服务器连接。
本文作者主要完成Web服务器端的用户管理、帖子管理、版面管理、数据库管理、浏览和查找、短消息功能等设计、实现与完善以及整个实验网站的组织建立和测试工作。
第二章、ASP技术综述
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
Object,微软的一种新的数据访问模型)方便快捷地访问数据库,从而使得开发基于WWW的应用系统成为可能,这也是本文选择ASP作为开发工具最重要的原因之一。
2.2
ASP与IIS
2.2.1
IIS简介
Web服务器是Web应用程序的心脏。
IIS(Internet
Information
Server)是微软推出的Windows
NT
Option
Pack的主要成员,作为Win2000server的扩展,自推出以来已经有了很大发展,其体系结构是当今市场上最受关注的Web服务器之一。
新推出的IIS4.0版本增强了系统安全性,具有服务器端脚本开发调试,内容管理和站点分析,崩溃防护,内置JAVA虚拟机及全面支持ASP等强大功能。
2.2.2
IIS与ASP的结合
在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法作出集成性的设计。
现在我们利用IIS+ASP构成三层式Web结构(如图2.1所示)的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大。
利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面:
1.减少构建和维护成本
2.加快联机过程
3.应用软件集中在服务器端开发管理
4.前端可使用任何
5.后端可存取任何数据库
(SQL、Access…..)
6.可使用任何脚本语开发
(VBScript、JavaScript、PERL…..)浏览器(IE、Netscape…..)
2.3
ASP的内部特点
2.3.1
ASP内部6大对象
ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。
这6个对象及其功能描述如表2.1所示。
表2.1
ASP
内部6大对象及其功能
对象名称
功能描述
Request
从客户端取得信息
Response
将信息送给客户端
Server
提供一些Web服务器工具
Session
储存在一个Session内的用户信息,该信息仅可被该用户访问
Application
在一个ASP-Application中让不同的客户端共享信息
ObjectContext
配合Microsoft
Transaction服务器进行分布式事务处理
合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。
我们可以用以下的语法直接使用这些对象:
对象/属性/方法/数据集合
2.3.2
Global
文件
每一个以Active
Pages为基础的应用程序都拥有一个Global.asa文件(ASA后缀名其实是Active
Application的缩写),它位于每一个应用程序的基点目录之下。
当Active
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文件中写入以下内容:
1.Application或Session的开始事件(Start-event)。
2.Application或Session的结束事件
(End-event)。
这样,在一个Application或Session对象被创建或结束时,系统会自动完成Global.asa文件中写入的相应事件。
值得注意的是,如果一个Application与一个Session同时开始,Active
Pages会先处理Application的开始事件,而如果一个Application与一个Session同时结束,Active
Pages则会先处理Session的结束事件。
2.4
利用ADO访问数据库
ADO(ActiveX
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(“ADODB.CONNECTION”)
这条语句创建了链接对象Conn,接下来:
Connstr="
Driver={MicrosoftAccessDriver(*.mdb)};
dbq="
&
Server.MapPath(db)
conn.Open
connstr
这条语句打开链接,用到了DSN,本例为“connstr”。
以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。
三、创建数据对象(Record
Set)
ADO中的数据对象通常保存的是查询结果。
Record
Set是ADO中最复杂的对象,有许多属性和方法。
Set保存的是一行行的记录,并标有一个当前记录。
以下是创建方法:
Set
Set=Conn.Execute(sqtStr)
这条语句创建并打开了对象Record
Set,其中Conn是先前创建的链接对象,sqtStr是一个字串,代表一条标准的SQL语句。
例如:
sqtStr=“SELECT
*
FROM
shop_books” Set
这条语句执行后,对象Record
Set中就保存了表tab1中的所有记录。
四、操作数据库
我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除、修改等操作。
sqtStr=“INSERT
INTO
tab1
VALUES(1,2)”
Conn.Execute(sqtStr)
/执行插入操作
sqtStr=“Delete
from
tab1where
a=b”
/执行删除操作
sqtStr=“update
tabset
a=b,c=d”
/执行修改操作
五、关闭数据对象和链接对象
在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。
通过调用方法close实现关闭,然后再释放它。
Set.close
Set=Nothing
/关闭创建的数据对象
Conn.close
Conn=Nothing
/关闭创建的链接对象
2.5
ASP与CGI的比较
CGI(Common
Interface,通用网关接口)也是Internet上一种功能强大的Web页面技术,其工作方式有别于ASP。
我们现对二者进行比较。
Active
Pages开发Web应用程序的特点:
1.完全嵌入HTML,与HTML、Script语言完美结合。
2.无须手动编译和链接程序。
3.面向对象,并可扩展ActiveX
Server组件功能。
4.使用脚本语言(JavaScript、VBScript或PERL)编写。
5.存取数据库轻松容易(使用ADO组件)。
6.可使用任何语言编写自己的ActiveX
Server组件。
7.无浏览器兼容问题。
8.程序代码隐藏,客户端仅能看到ASP输出的HTML文件。
9.缩短Web开发时间。
相比之下,使用CGI开发Web应用程序具有以下缺点:
1.不易与HTML文件集成。
2.须使用其他较复杂的语言来开发CGI程序。
3.程序开发时间较长。
4.存取数据库不容易。
5.每个CGI程序被不同用户执行时都得重新执行一次,并占去Server的一个端口(Port),降低Server效率。
可见,ASP在数据库访问、与HTML的集成、提高服务器的效率等诸多方面都优于CGI,更适应Web应用程序开发的需要,因此本文选择了ASP作为个性化页面生成器的开发工具。
第三章、网上贴吧系统分析及实现
3.1网上贴吧系统说明
在开始制作之前,要明确贴吧能做些什么事情,,也就是所谓的需求。
所以必须把需求做清楚,然后才能进行设计。
其实在贴吧里大家最熟悉的就是用户浏览贴吧已有的内容,针对别人的主题展开讨论,也可以发表自己的观点供大家品评。
同时为了防止用户发布一些不健康不合法的内容需要有管理人员来对这些内容进行删除修改,在扩展一点,若用户想在贴吧发布信息,不允许他再来发布非法内容。
这样需要管理员对用户和贴吧的内容都要进行管理。
我们要做一个多版面的贴吧。
在这里用户可以注册,浏览贴吧版面和帖子,发布自己的帖子,也可以相互联系。
管理人员可以设置贴吧的系统参数,管理注册用户和版面。
当用户来到贴吧可以看到版面列表。
通过版面可以看到相关的帖子。
如果需要进一步的功能,就需要用户注册。
用户注册以后,可以发表自己的帖子或者回复别人的主题,也可以修改自己的帖子,如果发帖数量很多,会给用户一定的积分。
用户也可以升级为版主,可以删除别人的帖子,将帖子置顶,设为精华等。
用户还可以修改自己的信息,查看其他用户公开的注册信息。
管理人员可以管理版面、帖子、用户、设置系统参数。
3.1.1分析需求,确定思路
首先来做名词分析。
大家可能觉得奇怪,这不是阅读理解,为什么要做这个?
分析需求就是要理解需求,得出重点。
首先要做的就是找出这个贴吧要针对哪些进行操作,对需求中的名词进行一次筛选,得出一个简洁的列表。
下边这个表是表示各个对象间关联的,关联是单向的,是指左侧对象对上方对象的活动。
没有关联我们就用X,如果两者只有单向关联,那么另一个对象反关联时我们用对号表示。
根据需求,得出各个对象间的关联表。
如表3.1所示
表3.1个对象间的关联表
用户
版面
帖子
管理人员
系统参数
注册】
修改
浏览
联系
发布
删除
特殊操作
√
X
授权
添加
设置
3.1.2设计功能
有了表3.1就可以进行十实质性的工作了。
现在就来设计功能。
首先从用户开始,在表3.1中用户关联的对象是自身,版面,帖子,分别根据用户与这些对象的联系给出一个明确的菜单,见表3.2
表3.2用户功能列表
序号
功能名称
说明
1
用户注册
用户在贴吧填写必要的信息后就可以注册成为注册用户,用户登录网站可以修改自己的用户信息
2
用户登录
用户在贴吧注册后,可以使用用户名密码在贴吧登录
3
浏览其他用户信息
用户注册后可以查看其他用户信息
4
浏览版面
用户可以看到以列表形class.asp式展现的版面信息
5
浏览帖子
用户可以以列表形式浏览帖子主题及帖子的全部内容
6
发布删除修改帖子
用户在登录后可以发布帖子,修改自己的帖子。
如果被赋予版主权限还可以修改其他用户的帖子
7
与其他用户联系
在用户注册时要求用户填写电子邮件地址,那么其他用户可以利用电子邮件与其联系
8
对帖子特殊操作
接下来的版面,帖子都没有和其他对象的关联,他们在贴吧属于被动的对象,是被其他对象所操作的。
因此针对他们的功能主要是由其他对象产生,例如浏览版面就属于用户的功能。
管理人员是贴吧的一个特殊群体,他们的主要工作的是保证贴吧的正常运转,他们可以和所有对象产生联系,因此他们的功能也很丰富。
表3.3列出了管理人员的功能。
表3.3管理人员功能列表