博客系统设计说明书毕业设计论文.docx
内蒙古财经学院本科毕业论文博客系统设计论文博客系统设计说明书作 者 吕慧 院 系 计算机信息管理学院 专 业 信息管理与信息系统 年 级 学 号 指导教师 导师职称 讲师 内 容 提 要随着Internet的广泛应用,动态网页技术也应运而生。本文介绍了应用ASP动态网页技术开发博客系统的设计与实现。博客系统主要为用户提供发表文章、浏览文章等功能,用户通过Internet可以发表一些自己撰写的文章以和其他网友进行交流。博客系统主要实现了文章管理的数字化、信息化、智能化,是打破传统报刊、杂志发表文章方式的新尝试。 本系统的开发设计实现采用ASP技术,系统后台使用SQL Server 2000数据库.本文对博客系统进行整体分析,明确了系统的可行性和用户需求;根据模块化原理,规划设计了系统功能模块;在数据库设计部分,详细说明了系统数据库的结构和数据库的完整性、安全性措施;程序设计则采用面向对象的程序设计思想,提出系统的程序设计思路,对前台与后台功能的程序实现进行了详细论述;系统测试部分,具体分析测试过程中出现的主要问题,并提出了解决方案,实现系统功能。最后,对系统作以客观、全面的评价,并对进一步改进提出了建议。关键词:博客系统 ASP SQL Server 2000AbstractWith the extensive application of the Internet, dynamic web technology has emerged. This text describes the application of ASP dynamic web technology and development the blog system.Blog system is mainly to provide users with published articles, browse articles, and other functions,Users can express themselves by some articles and with other netizens to conduct exchanges. Blog system of the main article on the digital management, information, intelligence, is to break the way of Released an article by traditional newspapers and magazine published ,it make a new way to try.The system is designed by ASP technology, backstage adoption SQL Server 2000 database。In this text,it analysis the blog system by feasibility and the demand of the user. Under the modular theory, planning and design of the system functional modules; In the database design, a detailed description of the database structure and database integrity, security measures; Programming is used object-oriented programming design, system design ideas, background for the future and function of the program in detail; System testing, Analysis of the specific course of testing the key issues and proposed solutions to achieve system function. Finally, the system in an objective, comprehensive evaluation, as well as further improvements made. Key words:Blog ASP SQL Server 2000目 录一、概述 1(一)背景介绍 1(二)开发项目的意义 2(三)系统概述 2(四)系统开发的方法 2二、系统分析 3(一)可行性分析 3(二)需求分析 4(三)系统开发平台 4三、总体设计 4(一)项目规划 4(二)系统功能结构图 4四、系统设计 5(一)设计目标 5(二)逻辑结构设计 6五、公共文件设计 8(一)系统配置文件 8(二)数据库链接文件 8(三)公共函数文件 9(四)CSS样式文件 11(五)xmlthhprequest对象文件12六、前台主要功能模块详细设计12七、文章模块设计13八、相册模块设计16九、音频点播模块设计20十、视频播放模块设计23十一、后台主要功能模块详细设计25十二、管理员登陆模块设计25十三、后台主页模块设计28十四、文章管理模块设计30十五、图片上传模块设计38十六、程序调试与错误处理47(一)获取文章路径错误(upfile.asp)47(二)页面不刷新47参考文献 47谢辞 48博客系统设计论文 博客系统设计说明书一、概述(一)背景介绍1.什么是博客Blog,是Weblog的简称。Weblog,其实是Web和Log的组合词。Web是指互连网;Log的原义则是“航海日志”,后指任何类型的流水记录。合在一起来理解,Weblog就是在网络上的一种流水记录形式或者简称“网络日志” 。其实一个Blog就是一个网页,它通常是由简短且经常更新的帖子(Post)所构成,这些张贴的文章都按照年份和日期倒序排列。Blog的内容形式很多,从对其他网站的超级链接和评论,有关公司、个人的新闻到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有。许多Blogs记录着blog个人所见、所闻、所想,还有一些Blog则是一群人基于某个特定主题或共同利益领域的集体创作。 2.博客的发展过程、现状以及未来发展趋势在创办了博客中国(blogchina)、被誉为“博客教父”的方兴东接受了记者的专访。 他认为,博客这一事物在中国的发展大致经过以下三个阶段:第一阶段是2002年至2003年,少数人写博;第二阶段是2003年至2005年,博客爱好者写博;第三阶段是2005年至2006年以及接下来的两年,博客进入大众化前期。“如果说第一阶段和第二阶段博客的发展还是理想主义和浪漫主义的话,那从第三阶段开始,博客已经向现实主义转变。再过两年,即将进入大众化晚期,也就是说,那些网络保守主义者也将加入到博客大军中来”。在我国,已经有十几万个博客网站,博客数量达到100多万个,并且呈现40%的年增长进度,着实让国人刮目相看。因此,博客经济引起了专家学者和行业官员的普遍关注。通过走访网吧、咨询网民,问起上网的主要活动和目的是在干什么,有大约70%的人回答是查阅资料,大约70%的人回答是聊天,大约60%的人回答是看新闻,大约50%的人回答是写博客看博客,大约50%的人回答是在论坛看帖子发帖子,大约60%的人回答是在听歌看电影和玩游戏。可见,博客正成为网民网络生活的主流。截止到2005年11月底,在中文互联网领域,Blog站点达到3682万,Blogger 人数达到1600万,平均每个Blogger 拥有大概2.3个Blog。中国大陆Blog服务商已达到658家,注册用户超过千人的服务商达到了330家 。博客的推陈出新,和各大网站门户的推波助澜,让整个中国互联网看到了博客对于未来的作用力量,这个具有群众性创造性力量所显现出来的网络经济的增长性,对未来的网络社会塑造具有至关重要决定性作用。我以为,博客在未来将会有以下十大发展的趋势: 博客门户网站的整体架构更加完善;博客成为人们普遍接受的交流平台;博客平台与移动手机传播互动技术成熟;商务化博客的运营模式进行不断地探索;博客将推动整个传该词最早是在2002年8月8日由著名的网络评论家王俊秀和方兴东共同撰文提出来的。来自互联网媒与出版业发生变革;博客经济增长点是中国互联网重要机遇;博客对民主化进程推动将获得明显进步;政府部门将可能应用博客进入社会管理;博客情报与技术含量决定整体社会未来;博客传播全球化必然是互联网未来选择。(二)开发项目的意义1.博客的用途(1)促进学习。写blog可以促进学习,想写出文章来,自然不能是泛泛的了解就可以的,要理解了才能写得出来的。这就促进了对某些领域的不断学习和思考。 (2)记录收获。blog中,常常是记录下来都是瞬间的灵感,对事物的感悟,经过多日思考和实践的结果,对某个问题的解决方案等等,这些都是财富,要记录下来。 (3)反映成长。写blog,可以反映出人的思考过程,而不仅仅是思考结果。对一个问题或领域,从不了解到了解,从了解到熟悉,从熟悉到精通。这纪录了一个人思考和解决问题的成长过程。很久之后,看到自己之前的文章,你将会觉得自己进步了。 (4)结交朋友。写了blog,自然会有许多志趣相同的朋友来阅读,这可以认识许多朋友。大家有共同的兴趣爱好,自然谈得来。 (5)共享知识。blog给大家看,大家的blog也给你看。这个问题我解决了,那个问题他解决了。大家互通有无,建立起一个社群。 (6)交流看法。回复的人对blog的观点或赞同,或反对,大家一起讨论,听听别人的思想,可以促进双方的共同进步。 (7)包装自己。看到一篇篇用心写出的文章,自然是对自己知识技能的最好宣传。2.博客的意义博客能让个人在互联网上表达自己的心声。这是一个收集和共享任何感兴趣的事物的地方-可以是政治评论、个人日记或是指向您想记住的网站的链接。许多人使用博客只是要组织自己的想法,而有些人则在全球成千上万的浏览者中赢得影响力。职业和业余新闻记者使用博客发布特发新闻,而有写日记习惯的人则会在博客 中宣示自己内心的想法。而摄影和美术发烧者,可以通过博客 系统的管理自己的作品,无论您要发表什么意见,博客都可以帮您表达出来。博客作为一种新表达的方式,它的传播不仅情绪,包括大量的智慧、意见和思想。某种意义上说,它也是一种新的文化现象,博客的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步入更高的阶段。(三)系统概述一个博客其实就是由一序列网页组成的,它通常是由简短且经常更新的帖子所构成的,这些张贴的文章都按照年份和日期倒序列排列,能按照日期和主题检索。博客的内容和目的有很大的不同,有到其他网站的超级链接;有对其他网站的评论;有个人的日记,日常所思所想;有个人照片、诗歌、散文,甚至科幻小说的发表。正是由于博客能收容这些不拘于个人思想的表达,使博客这种交流和表达方式日益红火起来,博客秉承了个人网站的自由精神,也开拓了激发创造的新模式,能张扬人的个性,从这个意义上说,博客将会变得越来越普及,越来越为更多的人接受。本系统主要完成以下功能。1客户界面部分:查看文章;浏览相片;留言功能;用户注册/登录。2管理界面部分:对日志的编写、修改和删除;对相片的添加、删除;对相册的添加、删除;查看访问者留言;个人信息基本设置;对播放器的设置。(四)系统开发的方法1.ASP技术本系统主要采用ASP技术进行开发,ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。 当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言,通过连接数据库,由数据库访问组件完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。2.Dreamweaver网页编辑器本系统的前台开发采用Dreamweaver。Dreamweaver是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。3.SQL Server 2000数据库SQL Server 2000由一组数量众多的数据库组件组成。这些组件在功能上互相补充,在使用方式上彼此协调,以满足用户在数据存储和管理、大型Web站点支持和企业数据分析处理上的需求。二、系统分析(一)可行性分析可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。为了确定开发具有可行性,对本系统主要进行了以下四个方面的分析。1. 经济可行性。经济可行性主要是对项目的经济效益进行评价。本系统对系统开发者来说并不需要太高的成本支出,只是对系统的管理者付出管理报酬即可,而且开发周期不需要太长,节省了人力、物力、财力资源,所以本系统在经济上是可行的。2. 技术上的可行性。技术上的可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。在软件方面,本系统采用的是ASP进行开发,前台网页设计使用的是Dreamweaver,而数据库系统采用的是SQL Server 2000。通过分析,在软、硬件方面现有工具与环境完全可以实现系统的开发,因此具有技术上的可行性。3. 时机可行性。时机可行性是分析系统开发时机是否成熟。目前越来越多的应用程序都已经是转向基于Web的开发,并且Internet已经广泛使用,因此系统的设计具有时机可行性。4. 管理上的可行性。主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。系统的开发主要就是为了方便管理员的管理,补充现在传统管理方式的不足,因此具备了管理上的可行性。综上所述,本系统开发目标已明确,在技术和经济等方面具备可行性,并且投入少、见效快,因此系统的开发是完全可行的。(二)需求分析在可行性分析阶段已经简要地分析和研究了本系统的基本需求,也论证了开发平台及软件的可行性,但为了明确系统设计的目标,了解用户的需求,现对用户需求作以调研,从而进一步明确了设计所实现子系统的功能。1.管理员登陆用户想要使用系统,首先要有一个用户注册界面,其次,用户需要经历登录验证过程,只有合法的拥有管理员身份的用户才可以使用系统中的管理功能,这样做可以防止非法用户登录并使用本系统,妨害数据安全。2.日志管理管理员对日志主要进行一下几方面的管理:编写新日志;删除日志;修改日志。3.相册管理管理员对相册主要进行以下几方面的管理:创建新相册;删除相册;添加相片;删除相片。4.留言管理管理员对留言主要进行以下几方面的管理:查看留言;删除留言。5.个人信息管理管理员对个人信息主要进行以下几方面的管理:填写个人信息;修改个人信息。(三)系统开发平台1.电脑配置:电脑 CPU:P4 2.93 内存:512M 硬盘:160G2.操作系统:Microsoft Windows XP中文版3.数据库:SQL Server 2000三、总体设计(一)项目规划本系统可以规划为前台和后台两部分。前台功能模块主要包括:文章显示、图片显示、留言版、博客日历、统计查看、在线音乐。后台功能模块主要包括:管理员登陆、日志管理、相片管理、模板管理、链接管理、留言管理、个人信息管理、播放器管理。(二)系统功能结构图1.前台功能结构图游客发表留言浏览日志浏览相片音乐收听网站链接图一 前台功能结构图2.后台功能结构图添加音乐删除音乐填写信息修改信息删除留言修改日志写日志删除日志添加相片删除相片添加模板删除模板删除链接添加链接后台管理员日志管理相片管理模板管理链接管理信息管理音乐管理图二 后台功能结构图四、系统设计(一)设计目标根据系统功能结构图,该系统要求实现如下目标:1实现日志和图片的查看和计数功能。2是在在线播放音频功能。3实现留言功能。4实现日历功能。5实现系统统计功能。6实现日志管理功能,包括:写日志、修改日志和删除日志。7实现相片管理功能,包括:添加相片、删除相片。8实现模块管理功能,包括:添加模块、删除模块。9实现链接管理功能,包括:添加链接、删除链接。10实现音乐管理功能,包括:添加音乐、删除音乐。11实现留言板管理功能,包括:删除留言。(二)逻辑结构设计本系统数据库采用SQL Server 2000,系统数据库名称为db_mrblog。数据库中包含8张表:表一 数据表说明序号名称1tb_admin(管理员信息表)2tb_article(博客文章表)3tb_bigclass(文章类别表)4tb_audio(音频文件表)5tb_links(友情链接表)6tb_video(视频文件表)7tb_message(留言信息表)8tb_pics(上传图片表)下面对主要的表结构进行介绍。1. tb_admin(管理员信息表)该表的字段包括管理员的昵称及密码。表tb_admin(管理员信息表)的结构如表二所示:表二 tb_admin(管理员信息表)字段名称数据类型长度是否主键描述idint4是自动编号usernamevarchar50管理员名称pwdarchar50 管理员密码2. tb_article(博客文章表)该表的字段包括文章标题、文章内容、文章类别、发布时间和浏览次数。表tb_article(博客文章表)的结构如表三所示:表三 tb_article(博客文章表)字段名称数据类型长度是否主键描述idint4是自动编号titlevarchar50文章标题contentntext16文章内容typeidint4文章类别addtimedatetime8添加时间,默认值为getdate()hitnumint4浏览次数,初始值为03. tb_bigclass(文章类别表)该表的字段包括了文章类别的名称。表tb_bigclass(文章类别表)的结构如表四所示:表四 tb_bigclass(文章类别表)字段名称数据类型长度是否主键描述idint4是自动编号classnamevarchar50文章类别表4. tb_audio(音频文件表)该表的字段包括音频文件的名称、存储路径及音频介绍。表tb_audio(音频文件表)的结构如表五所示:表五 tb_audio(音频文件表)字段名称数据类型长度是否主键描述idint4是自动编号namevarchar50音频名称pathvarchar100音频路径infovarchar200 音频介绍5. tb_links(友情链接表)该表的字段包括友情链接的名称及地址。表tb_links(友情链接表)的结构如表六所示:表六 tb_links(友情链接表)字段名称数据类型长度是否主键描述idint4是自动编号linknamevarchar50链接名称linkurlvarchar100 网络的完整路径6. tb_message(留言信息表)该表的字段包括留言人的昵称、IP地址、留言内容及留言时间。表tb_message(留言信息表)的结构如表七所示:表七 tb_message(留言信息表)字段名称数据类型长度是否主键描述idint4是自动编号contentvarchar200留言内容addressorvarchar50留言人昵称,默认为匿名ipmessvarchar50留言人IP地址retimedatatime8 留言时间7. tb_pics(上传图片表)该表的字段包括上传图片的名称、路径、图片介绍及浏览次数。表tb_pics(上传图片表)的结构如表八所示:表八 tb_pics(上传图片表)字段名称数据类型长度是否主键描述idint4是自动编号namevarchar50图片名称pathvarchar100图片路径infovarchar200图片介绍hitnumint4 浏览次数五、公共文件设计开发动态网站时,经常用到一些公共模块,如数据库链接、CSS样式表文件和公共函数等。为了更好的提高代码的重用率,开发动态网站前,首先应编写这些公共模块。下面介绍博客系统中需要的公共模块的编写过程。(一)系统配置文件为了增加系统的可移植性,可以将该系统中所使用到的一些常量编写成一个公共文件config.asp。该文件包括系统根目录名、上传目录名、上传文件类型数组等。config.asp文件代码如下:<%Const Root = "/" '博客目录Const ManagerPath = "admin/" '管理目录 Const ArticlePath= "article/" '文章目录Const PicsPath = "uppics/" '上传图片目录Const MusicPath= "upmusic/" '上传音频视频目录Const DataName= "db_mrblog" '数据库名Const User= "sa" '用户名Const Password= "" '用户密码Const URL= "local" '数据地址(本地用local,远程用IP)Const picfix= "pjpeg,gif,bmp" '允许上传的图片文件Const mixpic= 500000 '允许上传图片的最大字节数Const mfix= "x-mpeg,x-ms-wmv,x-wav,mpeg,x-pn-realaudio" '允许上传的音频视频文件Const mixmus= 100000000000 '允许上传音频视频文件的最大字节数Const pictype= "1" '图片类型Const audtype= "2" '音频类型Const vidtype= "3" '视频类型Const mustype= "4" '音乐类型(音频+视频)Const ServerIP = "127.0.0.l" '服务器IP%>(二)数据库链接文件ASP中通常将数据库链接代码编写成公用的文件,并且被命名为conn.inc或conn.asp,同时,将该文件存放在以conn命名的文件夹中。一般在网站中都建立该文件夹用来存储整个网站中公用的文件。当页面需要进行数据库链接是,只需要在该页面中通过<!-#include file=”conn/conn.asp”->语句引用公用的文件即可,这样不但避免了代码的重复编写,同时也能避免当数据库连接发生变化时去修改每一个页面的麻烦。Conn.asp的代码如下:<%'连接数据库dim driver,conndriver = "provider=sqloledb;data source=("&URL&");initial catalog="&DataName&"user id="&User&"password="&Password&""'On Error Resume NextSet conn = Server.CreateObject("ADODB.Connection")conn.Open driverIf Err ThenErr.Clearconn.CloseSet conn = NothingResponse.Write "系统数据库连接错误。"Response.EndelseEnd Ifresponse.ContentType = "text/html;charset=gb2312"%>(三)公共函数文件进行动态网站开发时,经常需要对浏览者输入的数据信息进行处理。为了减少程序代码的重复使用,需要将数据处理的语句封装成自定义函数,并编写成公共函数文件func.asp,在需要进行数据处理的页面中通过<!-#include file=”inc/func.asp”->语句即可成功引用该文件。func.asp代码如下: <%Response.Buffer = True Response.Expires = -1Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl = "no-cache" dim reback '函数返回值'函数作用:验证查询记录是否存在'参数:'sql:查询语句sub chkform(sql) sql = sql set rs = conn.execute(sql) if not rs.eof then reback = "1"'当为1时,有记录 else reback = "2"'等于2时,无记录 end ifend sub'函数作用:更新数据表记录'参数:'sql:查询语句 。fields1:修改字段。value1:字段值sub modirst(sql,fields1,value1) set rs = server.CreateObject("adodb.recordset") rs.open sql,conn,3,3 if isArray(fields1) = false then rs(""&fields1&"") = value1 else num = UBound(fields1) - 1 for i=0 to num rs(""&fields1(i)&"") = value1(i) Next end if rs.update() reback = "1"end sub'函数作用:删除数据'参数'sql:删除语句sub delrst(sql) set rs = server.CreateObject("adodb.recordset") rs.open sql,conn,3,3 if not rs.eof then rs.delete reback = "1" else reback = "2" end ifend sub'函数作用:添加记录'参数'sql:添加记录的数据库'fields1:添加的字段名数组'value1:添加的字段值数组sub addrst(sql,fields1,value1) set rs = server.CreateObject("adodb.recordset") rs.open sql,conn,3,3 rs.addnew if isArray(fields1) = false then rs(""&fields1&"") = value1 else num = UBound(fields1) - 1 for i=0 to num rs(""&fields1(i)&"") = value1(i) Next end if rs.update() reback = "1"end sub'函数作用 查询数据,返回结果集(单一记录)'参数'sql:查询数组'arr:查询字段数组sub rebackrst(sql,arr) set rs = server.CreateObject("adodb.recordset") rs.open sql,conn,3,3 if not rs.eof then if isArray(arr) = false then reback = rs(""&arr&"") else num = UBound(arr) -1 reback = rs(""&arr(0)&"") for i = 1 to num reback = reback & ","&rs(""&arr(i)&"") Next end if else reback = "2" end ifend sub'函数作用:返回对应文章类别'参数'id:类别idfunction foundtype(id) fsql = "select * from tb_bigclass where id = "&Int(id) set frs = server.CreateObject("adodb.recordset") frs.open fsql,conn,3,3 if not frs.eof then foundtype = frs("classname") else foundtype = "2" end ifend functionsub msg(str)