ASP音乐网站.docx
《ASP音乐网站.docx》由会员分享,可在线阅读,更多相关《ASP音乐网站.docx(29页珍藏版)》请在冰豆网上搜索。
ASP音乐网站
音乐网站
§1章开发概述
1.1课题简介
课题:
开发一个以音乐娱乐新闻购物为一体的动态音乐网站。
随着每年以千万的速度走近了internet,为了满足不同人们对网络需求,各种特色,各种主题的网站也在不断增加。
为了满足音乐爱好者,明星崇拜者,各种专辑痴迷着的需求,一批以音乐为主题的网站也应运而生。
由于以往的静态网页存在单调,维护任务大,缺乏和用户的交互,随着计算机软件知识的推广,动态网页正在走向普通的网页设计师的生活。
本站设计目标就是设计一个以音乐新闻购物为一体的动态交互网站,用户可以在浏览过程中,实现和本站信息的交互。
目前开发动态网站的语言和技术常用的有ASP,PHP,JSP,CGI技术等。
我们这里准备选择简单易学而功能强大的ASP。
1.2开发环境及需求
●开发目的
随着计算机技术的发展,网络技术对我们生活和工作显得越来越重要,特别是现在信息高度发达的今天,人们对最新信息的需求和发布迫切的需要及时性。
而动态交互式网页刚好提供了这些功能,本系统就是一个能够在网上实现新闻的网上多用户发布,多栏目管理,实时的进行行为统计和记录的网上交互系统。
●项目背景
HTML作为一种样式语言,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任的情况之下,在ASP编程语言高度发展的形式下,我们开始了对动态网站系统的开发。
●开发环境
1.硬件条件
服务器两台,一台为数据库服务器,一台为Web服务器;客户端计算机若干;网络通讯设备,主要包括交换机、网卡、集线器、MODEM等。
2.系统平台
采用Browser/Server体系结构,服务器端采用MicrosoftWindowsNT4.0作为网络操作系统,Web服务器软件采用IIS6.0(InternetInformationServer)。
客户端软件,包括单机操作系统和浏览器软件,分别选用Windowsxp和InternetExplorer,数据库系统采用MicrosoftAccess有利于方便操作。
3.开发工具
基于Web的系统开发工具应使开发者使用各种各样的技术来创建动态的Web应用程序,并且应是一个可视化的工具。
我们采用了DreamweaverMX进行开发,它是用来快速创建数据驱动Web应用程序的基于团队的开发环境,支持ASP,以ODBC连接数据库,脚本语言为简单易学的JavaScript或VBScript。
4.运行需求
正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据完好无损,对数据的精确度、时间特性、适应性等都有一定要求,要求系统运行时能够保证正确性、可靠性、高效性、完整性、易使用性、可维护性、可测试性、复用性、安全保密性、可移植性、互联性。
1.3ASP及相关技术介绍
近年来随着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作为开发工具最重要的原因之一。
1.3.1IIS简介
Wsb服务器是Web应用程序的心脏。
IIS(InternetInformationServer)是微软推出的WindowsNTOptionPack的主要成员,作为Win2000server的扩展,自推出以来已经有了很大发展,其体系结构是当今市场上最受关注的Web服务器之一。
新推出的IIS6.0版本增强了系统安全性,具有服务器端脚本开发调试,内容管理和站点分析,崩溃防护,内置JAVA虚拟机及全面支持ASP等强大功能。
1.3.2IIS与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.3ASP内部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大对象及其功能
合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。
我们可以用以下的语法直接使用这些对象:
对象/属性/方法/数据集合
1.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=“SELECT*FROMshop_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
/关闭创建的链接对象
1.4ASP与CGI的比较
CGI(CommonGatewayInterface,通用网关接口)也是Internet上一种功能强大的Web页面技术,其工作方式有别于ASP。
我们现对二者进行比较。
ActiveServerPages开发Web应用程序的特点:
1.完全嵌入HTML,与HTML、Script语言完美结合。
2.无须手动编译和链接程序。
3.面向对象,并可扩展ActiveXServer组件功能。
4.使用脚本语言(JavaScript、VBScript或PERL)编写。
5.存取数据库轻松容易(使用ADO组件)。
6.可使用任何语言编写自己的ActiveXServer组件。
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-4数据流程图的符号
管理员
浏览着
后台管理
浏览新闻
F1新闻表
7
试听音乐
F2音乐表
F3邮购表
查看邮购
在线投票
F4在线调查表
论坛登录
F5用户表
论坛发贴
F6留言表
图2-5设计流程图
主要的数据源有最新资讯,歌曲相关信息,邮购物品相关信息,帖子相关信息,在线调查相关信息。
它们在系统中流动和处理详细见下面的数据流程图。
从数据流图上容易看出该网站信息流程如下:
浏览着登录网站后可以浏览本站发布的相关咨讯信息,欣赏本站所有歌曲,查看本站提供的所有的邮购物品信息,提交本站的在线调查,浏览本站的所有的论坛帖子内容。
用户注册登录后可以发布自己的主题,或者对已有的主题帖子进行回复。
管理员可以通过登录后台管理数据库中的最新咨讯信息,歌曲信息,邮购物品信息,所有的论坛帖子信息。
对本站的数据库表进行管理包括对所有表的记录的添加,修改,删除,浏览等。
对顶层数据流程图每个功能模块进一步分解,还可以将每个功能模块进一步细化,这样就可以得到数据的第一层数据流程图,以上面的后台管理模块为例,可以对后台管理功能进一步细化为信息的后台浏览,信息的添加,信息的修改,信息的删除等子功能。
这样就得到系统的第一层数据流程图,以后台管理为例下面给出后台管理的第一层数据流程图。
7.4
删除
7.3
修改
7.2
添加
7.1
浏览
管理员
F1~6所有数据库表
图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音乐星空网第一层图
在第一层的基础上,根据第一层数据流图,对系统进行进一步的功能分解,得到第二层,以后台管理为例。
(如图3-2所示)
后台管理
信息
删除
信息
修改
信息
添加
信息浏览
用户
登录
图3-1音乐星空网第二层图
在第二层图的基础上还可以继续对系统功能进行分解,从而得到第三层图。
以信息删除子模块为例,还可以继续分解为最新咨讯信息的删除,歌曲信息删除,购物信息删除,论坛帖子信息删除等之模块。
第三层就不再画出。
3.2数据库设计
3.2.1数据库的概念结构设计
新系统逻辑方案中的数据流程图和数据字典对新系统描述已经很清晰,经过前面可行性论证后,下面就可以在此基础上进行系统的数据库结构设计。
根据前面的数据字典的描述,新系统的数据项和数据结构如下:
●咨讯信息:
信息编号,主题,内容,日期,点击次数,价格。
●歌曲信息:
歌曲编号,歌曲名称,演唱者,存放地址,时间,点击次数。
●邮购信息:
邮购编号,专辑名称,专辑人,内容,市场价格,邮购价格,推出时间,点击次数。
●留言信息:
留言主题,内容,留言时间,回帖编号,发言人,发言心情图片,阅读次数,IP地址,QTT图片。
●论坛用户表:
用户名,密码,电子邮件,性别,QQ,来自地区,发贴数量,注册时间,最后一次登录时间,主页地址,头像。
实体和实体之间的关系的E-R图如下:
注册
发贴
注册用户
贴子信息
试听
歌曲
一般来访者
浏览
邮购
专辑
最新咨讯
图3-1音乐星空网E-R图
3.2.2数据库的逻辑结构设计
根据分析阶段得出的实体一联系图(E-R图),结合本网站系统对有关数据的存储的需要,更加方便实现该动态网页系统的所有功能,现将本网站设计成7个数据库表,下面逐一说明:
1.表user_table:
论坛注册用户信息表:
该表用来存放个人资料信息。
2.表news:
最新咨讯信息表:
用来存放音乐明星最新咨讯。
3.表kq:
歌曲表:
用来存放本站提供的所有的音乐相关信息。
4.表ly:
留言表:
用来存放本站注册用户所有的帖子信息。
5.表yougou:
邮购表:
用来存放本站所有音乐专辑邮购信息。
6.表research:
在线调查表:
用来存放本站在线调查的投票结果。
7.表admin:
管理员表:
用来存放本站后台管理的登录信息。
以上是本系统的库表结构的简要说明。
对这些表的详细结构如下。
1.表名:
user_table说明:
论坛用户信息表
字段名
字段类型
字段长度
说明
Id
自动编号
长整型
编号
Username
文本型
50
注册姓名
Passwd
文本型
50
登录密码
Email
文本型
50
电子邮箱
Sex
文本型
8
性别
Qq
文本型
50
Qq号
Come_from
文本型
50
来自地方
Fb_num