摘 要
计算机和计算机网络的飞速发展,人们对计算机网络的依赖是越来越大。人们在网上聊天交友,在网上请教问题,查阅资料,还在网上玩游戏。除此之外,人们还会在网上进行商务交易、下载信息,有着众多的使用者。尤其是电子商务大大的减少了人们对周围环境的依赖,无论是哪里的网友,都可以浏览到世界各地的各类信息,非常的方便,由于以上的优势,各类网站如雨后春笋般的出现,这也就是我的毕业设计的实际意义。
本文首先介绍了当今网络开发语言发展现状,接着介绍了ASP相关知识,然后以《音乐星空网》为例,按照软件工程开发思路,逐一介绍了建站的系统分析、系统设计和系统实现。在系统分析中以数据字典和数据流图的形式确定了系统的基本框架,接着在此基础上设计出网站模块功能结构图,然后用E-R图说明了系统的库表结构,最后论文从网页上的风格、色彩、链接、功能、算法等属性分析了系统中典型的ASP网页文件。在附录中则给出本系统库表结构的详细说明和本网站运行时的主要页面。
本网站主要实现了对Web数据库的数据录入,修改,删除,查询,相关数据的分析统计等功能。
关键字:ASP 音乐 Web数据库 网络
引 言
伴随着网络的出现,网页逐渐融入人们的生活。快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,于是世界上又出现了第三媒体——Internet。它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。制作网页是企业和个人的宣传自己的重要手段,同时也是学习者获取学习信息的重要手段。尤其是在教育领域,在素质教育与终身教育成为必然的今天,人们对信息的需求有了更新,更高的要求,而网页由于本身所具有的信息量大,传递快速,没有时空限制等特点恰好满足这种要求。所以网页也逐渐成为一种新兴的教育资源。也正是由于网络实现网站的数据信息能够进行实时交互,保证网站数据的实时性。
随着Internet的进一步发展,静态Web站点的开发与维护变得越来越困难,一方面信息的不断增加和变化,使站点维护人员不得不经常修改他们的网页,特别是基于数据库驱动的Web站点更是如此,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任。另一方面静态网页由于不能与浏览者进行有效交互,使人们感到越来越乏味,而不愿意再一次地进入同一站点。所以开发动态网页或动态内容成了越来越多的站点所追求目标。所谓动态内容是由每一个用户按照自己的需求发出请求而特殊制作的Web网页。
网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。站在网络时代的前夜,我们清晰地听到了网络时代的宣言:谁掌握了网络,谁就掌握了未来。
目 录
摘 要 ………………………………………………………………………………Ⅰ
引 言 ………………………………………………………………………………Ⅱ
§1章 开发概述 …………………………………………………………………1
1.1 课题简介 ……………………………………………………………………1
1.2 开发环境及需求 ……………………………………………………………1
1.3 ASP及相关技术介绍 …………………………………………………………2
1.3.1 IIS简介 ………………………………………………………………3
1.3.2 IIS与ASP的结合 …………………………………………………3
1.3 .3 ASP内部六大对象 …………………………………………………4
1.3.4 利用ADO访问数据库 ………………………………………………4
1.4 ASP与CGI的比较 ……………………………………………………………6
§2章 需求分析 ………………………………………………………………8
2.1 系统调查 ……………………………………………………………………8
2.1.1 本站需求调查 ………………………………………………………8
2.1.2 功能需求分析 ………………………………………………………9
2.2 新系统的逻辑方案 ………………………………………………………9
2.2.1 数据流程图……………………………………………………………9
2.2.2数据字典………………………………………………………………11
2.3 可行性论证 ………………………………………………………………13
§3章 网站的总体结构设计 ……………………………………………………14
3.1 网站功能模块结构的设计 …………………………………………………14
3.2 数据库设计 …………………………………………………………………15
3.2.1数据库的概念结构设计 ……………………………………………15
3.2.1 数据库的逻辑结构设计 ……………………………………………16
3.3 网页设计 …………………………………………………………………19
3.4 页面连接导航设计…………………………………………………………19
§4章 音乐星空网的实现………………………………………………21
4.1建立ASP的运行环境 ………………………………………………………21
4.2 主页default.asp页面的实现 ……………………………………22
4.2.1 包含文件dbconn.inc的实现和调用…………………………23
4.2.2 包含文件news.asp的实现和调用…………………………………23
4.2.3 在线调查research.asp的实现和调用……………………………25
4. 3 音乐试听页面kqst.asp的实现:…………………………………………26
4. 3.1总量排行home_sort.asp的实现和调用:…………………………26
4.3.2歌曲试听调用文件mfplayrm.asp…………………………………28
4.4 后台管理的实现………………………………………………………………29
4.4.1 后台管理登陆login.asp的实现…………………………………29
4.4.2后台管理首页mnews.asp的实现……………………………………29
4.4.3后台添加咨讯addnews.asp的实现…………………………………30
4.4.4后台修改咨讯xgnews.asp的实现…………………………………31
4.5 论坛首页index.asp的实现…………………………………………………31
4.6 用户注册页面的设计 ………………………………………………………34
4.7用户登陆页面的设计…………………………………………………………35
4.8 用户发贴页面的设计…………………………………………………………36
§5章 系统的测试和展望…………………………………………………………37
结论 ………………………………………………………………………………38
致谢 ………………………………………………………………………………39
主要参考文献 …………………………………………………………………………40
附录 ………………………………………………………………………………41
§1章 开发概述
1.1课题简介
课题:开发一个以音乐娱乐新闻购物为一体的动态音乐网站。
随着每年以千万的速度走近了internet,为了满足不同人们对网络需求,各种特色,各种主题的网站也在不断增加。
为了满足音乐爱好者,明星崇拜者,各种专辑痴迷着的需求,一批以音乐为主题的网站也应运而生。
由于以往的静态网页存在单调,维护任务大,缺乏和用户的交互,随着计算机软件知识的推广,动态网页正在走向普通的网页设计师的生活。
本站设计目标就是设计一个以音乐新闻购物为一体的动态交互网站,用户可以在浏览过程中,实现和本站信息的交互。
目前开发动态网站的语言和技术常用的有ASP,PHP,JSP,CGI技术等。我们这里准备选择简单易学而功能强大的ASP。
1.2 开发环境及需求
● 开发目的
随着计算机技术的发展,网络技术对我们生活和工作显得越来越重要,特别是现在信息高度发达的今天,人们对最新信息的需求和发布迫切的需要及时性。而动态交互式网页刚好提供了这些功能,本系统就是一个能够在网上实现新闻的网上多用户发布,多栏目管理,实时的进行行为统计和记录的网上交互系统。
● 项目背景
HTML作为一种样式语言,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任的情况之下,在ASP编程语言高度发展的形式下,我们开始了对动态网站系统的开发。
● 开发环境
1.硬件条件
服务器两台,一台为数据库服务器,一台为Web服务器;客户端计算机若干;网络通讯设备,主要包括交换机、网卡、集线器、MODEM 等。
2.系统平台
采用Browser/Server体系结构,服务器端采用Microsoft Windows NT4.0作为网络操作系统,Web服务器软件采用IIS6.0(Internet Information Server)。客户端软件,包括单机操作系统和浏览器软件,分别选用Windows xp和Internet Explorer,数据库系统采用Microsoft Access有利于方便操作。
3.开发工具
基于Web的系统开发工具应使开发者使用各种各样的技术来创建动态的Web应用程序,并且应是一个可视化的工具。我们采用了DreamweaverMX进行开发,它是用来快速创建数据驱动Web应用程序的基于团队的开发环境,支持ASP,以ODBC连接数据库,脚本语言为简单易学的JavaScript或VBScript。
4.运行需求
正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据完好无损,对数据的精确度、时间特性、适应性等都有一定要求,要求系统运行时能够保证正确性、可靠性、高效性、完整性、易使用性、可维护性、可测试性、复用性、安全保密性、可移植性、互联性。
1.3 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,微软的一种新的数据访问模型)方便快捷地访问数据库,从而使得开发基于WWW的应用系统成为可能,这也是本文选择ASP作为开发工具最重要的原因之一。
1.3.1 IIS简介
Wsb服务器是Web应用程序的心脏。IIS(Internet Information Server)是微软推出的Windows NT Option Pack的主要成员,作为Win2000server的扩展,自推出以来已经有了很大发展,其体系结构是当今市场上最受关注的Web服务器之一。新推出的IIS6.0版本增强了系统安全性,具有服务器端脚本开发调试,内容管理和站点分析,崩溃防护,内置JAVA虚拟机及全面支持ASP等强大功能。
1.3.2 IIS与ASP的结合
在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法作出集成性的设计。现在我们利用IIS+ASP构成三层式Web结构(如图2.1所示)的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大。
利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面:
图2.1 利用IIS+ASP构成三层式Web结构的中间一层
1.减少构建和维护成本
2.加快联机过程
3.应用软件集中在服务器端开发管理
4.前端可使用任何浏览器(IE、Netscape…..)
5.后端可存取任何数据库 (SQL、Access…..)
6.可使用任何脚本语言开发 (VBScript、JavaScript、PERL…..)
1.3.3 ASP内部6大对象
ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。这6个对象及其功能描述如表2.1所示。
对象名称 | 功能描述 |
Request | 从客户端取得信息 |
Response | 将信息送给客户端 |
Server | 提供一些Web服务器工具 |
Session | 储存在一个Session内的用户信息,该信息仅可被该用户访问 |
Application | 在一个ASP-Application中让不同的客户端共享信息 |
ObjectContext | 配合Microsoft Transaction服务器进行分布式事务处理 |
表2.1 ASP 内部6大对象及其功能
合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。
我们可以用以下的语法直接使用这些对象:对象/属性/方法/数据集合
1.3.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
/关闭创建的链接对象
1.4 ASP与CGI的比较
CGI(Common Gateway Interface,通用网关接口)也是Internet上一种功能强大的Web页面技术,其工作方式有别于ASP。我们现对二者进行比较。
Active Server 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作为个性化页面生成器的开发工具。
§2章需求分析
需求分析是软件生命周期的一个重要阶段,它根本的任务是确定为了满足用户的需要必须做什么。具体地说,应该确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景,必须仔细分析系统中的数据,既要分析系统中的数据流。又要分析长期使用的数据存储,通过分析应该得出新系统逻辑方案数据流图、数据字典等,为系统的设计奠定基础。
2.1 系统调查
我按照软件工程的开发思路,首先对本站功能需求做详细的调研,然后在调研的基础设计新系统的逻辑方案。再经过可行性论证最后就可以开始设计和实施。
2.1.1 本站需求调查
随着人们物资文化生活水平的不断提高,人们对精神文化生活的要求也越来越高,这样越来越多的歌曲,明星就走进了平常人的生活,这些人们只能选择周末或者节假日抽一些时间通过各种媒体来了解。但是由于各种媒体中比如电视新闻一般都有时效性,过去的新闻在电视中很难再看到,收音机或者广播和电视类似,而一份报纸不可能的内容毕竟有限,特别是报纸的类别性很强,比如体育类的报纸上很难找到歌曲和明星的影子,反过来也一样。
唯有新兴的第四媒体的网络可以吸取众多媒体之所长,弥补众多媒体之所短。于是人们正在以每年成百上千万的人加入到网络这个世界中来。
为了满足越来越多的喜欢歌曲和音乐的对网络的需求。本人决定设计一个以歌曲,专辑邮购为主题的音乐网站。
我为了设计好这个网站,利用一个多月的时间,专门对不同学历,不同职业的爱好音乐的人进行了调查。通过调查,90%以上的人显示出超常的热情,他们对该网站表示出极大的关注,综合他们对网站的需求和建议后,整理出他们对本站建设的栏目需求如下:
1 通过浏览本站可以及时获得明星们最新相关咨讯。
2 通过浏览本站可以欣赏最新流行,好听的歌曲。
3 通过浏览本站可以获得本站提供的最新的明星最新专辑信息并可以通过本站邮购。
2.1.2 功能需求分析
通过上面的用户调查,本站初步规划已经比较清晰,但是,用户调查中用户没有提到开办一个爱好者交流的平台,没有提到用户对一些热门问题的在线调查等栏目,所有,在功能需求分析阶段,我们综合需求调查的结果和我们建站的经验,所以,本站功能需求经过以上分析最后整理如下:
1 浏览者可以随时上网获得一些相关音乐的最新咨讯。
2 浏览者可以随着上网试听本站提供所有的音乐。
3 浏览者可以随时上网查看并且邮购本站提供的音乐专辑。
4 浏览者可以随时上网查看浏览本站推荐的明星和专辑介绍。
5 浏览者可以随时上网对本站的在线调查进行投票和查看投票结果。
6 浏览者可以随时上网查看浏览本站论坛,发贴和回贴,可以提供用户注册,用户登录,登录时并提供cookie有效期,方便经常登录用户,注册用户登录后可以随时发贴和回帖。
7 管理员可以后台管理本站的新闻、歌曲、邮购,论坛、在线调查的数据。管理的内容可以是添加,修改,删除等操作。
2.2 新系统的逻辑方案
2.2.1 数据流程图
数据流图描绘系统的逻辑模型图,其中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点。《音乐星空网》主要是对音乐爱好者提供一个及时获得音乐的相关咨讯,欣赏音乐,提供专辑的邮购和提供在线调查和在论坛发布帖子的一个平台。
数据流程图的符号说明如图2-4所示。
图2-5 设计流程图
主要的数据源有最新资讯,歌曲相关信息,邮购物品相关信息,帖子相关信息,在线调查相关信息。它们在系统中流动和处理详细见下面的数据流程图。
从数据流图上容易看出该网站信息流程如下:
浏览着登录网站后可以浏览本站发布的相关咨讯信息,欣赏本站所有歌曲,查看本站提供的所有的邮购物品信息,提交本站的在线调查,浏览本站的所有的论坛帖子内容。用户注册登录后可以发布自己的主题,或者对已有的主题帖子进行回复。
管理员可以通过登录后台管理数据库中的最新咨讯信息,歌曲信息,邮购物品信息,所有的论坛帖子信息。对本站的数据库表进行管理包括对所有表的记录的添加,修改,删除,浏览等。
对顶层数据流程图每个功能模块进一步分解,还可以将每个功能模块进一步细化,这样就可以得到数据的第一层数据流程图,以上面的后台管理模块为例,可以对后台管理功能进一步细化为信息的后台浏览,信息的添加,信息的修改,信息的删除等子功能。这样就得到系统的第一层数据流程图,以后台管理为例下面给出后台管理的第一层数据流程图。
图2-6 数据流程图
2.2.2 数据字典
上文中的数据流图只能给出系统逻辑功能的一个总框架而缺乏详细、具体的内容。数据词典的作用是给数据流图上的每一个成分以定义和说明。除此之外,数据词典还要对系统分析中其它需要说明的问题进行定义和说明。
本文的数据词典描述的主要内容有:数据元素、数据结构、数据流、数据存储、处理逻辑和外部项。在系统分析的过程中,产生了大量的数据词典。限于篇幅,我采用仅就这几项条目各举一例来说明。
下面为音乐网站流程图中的每一部分编制数据字典。
(1)数据元素:论坛中每个注册用户都有用户帐号这个信息,其描述内容如下:
数据元素名称:用户帐号
类型:字符型
长度:20位
相关的数据结构:{用户帐号+密码+电子邮箱+性别+qq+来自地方+发贴数量+注册日期+最后一次登录时间+个人主页+头像}
(2)数据流。数据流“注册信息”条目如下:
数据流名称:注册信息
说明:用户注册时提交的信息
数据流来源:注册用户
数据流去向:后台数据库
数据流组成:{用户名+密码+邮箱地址+……}
数据流的流通量:大约2000流量/天
(3)数据存储:数据存储“用户信息”条目如下:
数据存储名称:用户信息
简述:存放的是每个用户相关信息情况
输入数据:注册的用户信息
数据存储组成:{用户帐号+密码+电子邮箱+性别+qq+来自地方+发贴数量+注册日期+最后一次登录时间+个人主页+头像}
存储方式:按注册的先后顺序排列
(4)数据处理。数据处理“分页跳转”条目如下:
数据处理名称:分页跳转
数据处理编号:7.1
简要描述:根据提交的跳转的页号转向该页。
输入数据流:页号
输出数据流:分页显示中的该页的所有记录。
处理逻辑:根据用户输入页号在分页显示浏览页面时跳转到该页。
(5)外部实体。外部实体“管理员”的条目如下:
外部实体名称:管理员
输入数据流:用户名和密码
输出数据流:获得相应的session变量的同时系统返回相应的管理页面的信息。
数目:2人
2.3可行性论证
通过对该音乐网设计的逻辑方案的确定后,现对该音乐网开发和实施可行性进行分析。
技术上可行:目前,国内有众多的优秀的空间出租商和域名代理商,他们可以提供完善的,稳定的,优质的服务,所以该网站建成后,不需要担心服务器的技术上的维护等,另外,软件设计方面,asp技术是一种目前比较成熟的动态网页开发技术,技术上都比较成熟。因此在技术上是可行的。
经济上可行:由于网站投入运行是租用空间,不用自己投资购买服务器,硬件防火墙等,每年只需支付几百元的空间和域名的费用,开发经费没有问题。
管理上可行:由于本站设计的有强大的后台管理功能,即使是不懂计算机的人,也可以轻松的对本站进行管理。
综上所述,开发该音乐网站在技术上、经济上、管理上都是可行的。
§3章 网站的总体结构设计
3.1网站功能模块结构的设计
数据流图能够很好的反映系统和模块的逻辑功能,但不涉及具体模块的物理构成和实现途径,不能有效地体现整个系统的层次关系。从系统的整体出发,明确系统的层次之间的关系和模块之间的关系。
按照结构化的系统设计方案,由系统顶层数据流图得到第一层流程图。(如图3-1所示)
图3-1音乐星空网第一层图
图4-1首页
图4-5排行页面
图4-9后台管理页面
图4-12首页布局示意图
图4-1提交页布局示意图
图4-14布局示意图