版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
个人博客摘要随着Internet的广泛应用,动态网页技术也应运而生。本文介绍了应用AS网态网页技术开发博客系统的设计与实现。该系统以ASP.NE功开发技术,使用C秋开发语言,实现Blog网站的动态管理,使得对Blog信息的管理更加及时、高效,提高了工作效率。本文对博客系统进行整体分析,明确了系统的可行性和用户需求;根据模块化原理,规划设计了系统功能模块;在数据库设计部分,详细说明了系统数据库的结构和数据库的完整性、安全性措施;程序设计则采用面向对象的程序设计思想,提出系统的程序设计思路,对前台与后台功能的程序实现进行了详细论述;系统测试部分,具体分析测试过程中出现的主要问题,并提出了解决方案,实现系统功能。关键词Blog;ASP.NETC#SQLServerPersonalBlogAbstractWiththeextensiveapplicationoftheInternet,dynamicwebtechnologyhasemerged.ThistextdescribestheapplicationofASPdynamicwebtechnologyanddevelopmenttheblogsystem.ThissystemtakeASP.NETasthedevelopmenttechnology,usesC#isthedevelopmentlanguage,realizestheBlogwebsitedynamicmanagement,causestobeevenmoreprompttotheBloginformationmanagement,highlyeffective,raisedtheworkingefficiency.Inthistext,itanalysistheblogsystembyfeasibilityandthedemandoftheuser.Underthemodulartheory,planninganddesignofthesystemfunctionalmodules;Inthedatabasedesign,adetaileddescriptionofthedatabasestructureanddatabaseintegrity,securitymeasures;Programmingisusedobject-orientedprogrammingdesign,systemdesignideas,backgroundforthefutureandfunctionoftheprogramindetail;Systemtesting,Analysisofthespecificcourseoftestingthekeyissuesandproposedsolutionstoachievesystemfunction.KeywordBlog;ASP.NET;C#;SQLserverTOC\o"1-5"\h\z第一章绪论1弓I言1课题研究的意义2系统概述4第二章相关技术介绍5ASP.NET技术概论5ASP.NET工作原理6数据库选择6数据分析7SQLSERVER20057ADO.NET7ASP.NET配置9第三章需求分析10需求分析10可行性分析10第四章概要设计12系统设计方案12系统功能模块12数据库需求分析14系统操作流程15数据表设计15数据库的完HT和安全性17数据库的完整性约束17数据库的安全性18第五章详细设计19后台功能模块详细设计19用户注册模块设计19博客管理员首页设计23博客文章信息管理页面26前台功能模块详细设计30前台主界面30“博客评论”功能模块设计34友情连接管理页实现过程37第六章测试39测试目的39测试方法39测试用例39第七章结论41不足之处与改进41权限分配41界面美观化41结论41致谢错误!未定义书签。参考文献42o一—ROOLSOFT第一章绪论第一章绪论1.1引言Blog,是Weblog的简称。Webloci,其实是We侨口Log的组合词。Web指WorldWideWek?当然是指互连网了;Log的原义则是“航海日志”,后指任何类型的流水记录。合在一起来理解,Weblog就是在网络上的一种流水记录形式或者简称“网络日志"。Blogger或Weblogger,是指习惯于日常记录并使用Weblog工具的人。虽然在大陆早些时候或者台湾等地,对此概念的译名不尽相同(有的称为“网志”,有的称之为“网录”等等),但目前已基本统一到“博客”一词上来。该词最早是在2002年8月8日由著名的网络评论家王俊秀和方兴东共同撰文提出来的。博客也好,网志也罢,仅仅是一种名称而已,它的本义还是逃不过Weblog的范围。只是,通常我们所说的“博客”,既可用作名词Blogger或weblogger指具有博客行为的一类人;也可以作动词用(相当于英文中的Weblog或blog),指博客采取的具有博客行为反映、是第三方可以用视觉感受到的行为,即博客们所撰写的Blog。因此,“他/她是一位博客,他/她天天在博客”及“博客博什么客?”在中文语法与逻辑上都是正确。只是不同场合的用法不同罢了。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。Blog究竟是什么?说了半天,其实一个Blog就是一个网页,它通常是由简短且经常更新的帖子(Post)所构成,这些张贴的文章都按照年份和日期倒序排列。Blog的内容和目的有很大的不同,Blog的内容和目的有很大的不同,从对其他网站的超级链接和评论,有关公司、个人、构想的新闻到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有。许多Blogs记录着blog个人所见、所闻、所想,还有一些Blogs则是一群人基于某个特定主题或共同利益领域的集体创作。撰写这些Weblog或Blog的人就叫做Blogger或Blogwriter。是最“多快博客存在的方式,一般分为三种类型:一是托管博客,无须自己注册域名、租用空间和编制网页,博客们只要去免费注册申请即可拥有自己的博客空间,是最“多快好省”的方式。如英文的>及多种语言的博客室()等都提供这样的服务;二是自建独立网站的博客,有自己的域名、空间和页面风格,需要一定的条件。如方兴东建立的“博客中国”站();三是附属博客,将自己的博客作为某一个网站的一部分(如一个栏目、一个频道或者一个地址)。这三类之间可以演变,甚至可以兼得,一人拥有多种博客网站。目前进行网站开发的语言很多,如ASPPHPJSP、ASP.NET?。究竟应该选择什么语言来开发一个BLOG3站呢,对于一个中小型的网站来说,AS眺疑是最好的选择,利用简单的HTML弋码与脚本鬲4合而成的AS限术可以开发强大的WetE用程序。ASP(ActiveSeverPages)是Microsoft推出的一种服务器端脚本环境,ASP内嵌于IIS中,让用户可以轻松的结合HTMLWetC面、月却本和ActiveX组件建立或执行动态的、交互的WetK务器应用程序。ASW不单指某一种编程语言,而是一门把HTML弋码与VBScript和JavaScript等脚本语言融合在一起的技术,ASP技术的诞生,应该说是一项成功的技术,它开创了非专业人员开发高水平网站的历史。课题研究的意义博客的精神是:自由表达,开放宽容,个性张扬,专业精神。在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不断的把自己以前的和每天激发的一些想法或者感受整理放在自己的博客上,每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天上留下了一道浅浅的思考和划痕。如果说博客网站是一个舞台,那么所有的博客都是其中的舞者,把自己有价值的真实的一面展示在网络世界中,相互交流沟通;如果博客仅仅为了写日志,那么博客是一面镜子,镜子中展现的是真实的自己;如果博客是一个自由媒体,可以把自身感觉有价值的信息通过博客这个工具发布,与网友共享随着Blog人数的增加,Blog作为一种新的生活方式、新的工作方式和新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构。它使交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更加有效;个人出版变成人人都可以实现的梦想。Blog正在影响和改变着我们的生活。Blog是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。展示丰富的个性化,对Blog功能的要求自然更高,新一代具有更多、更新、更全功能的Blog急需走进舞台。系统加入聊天功能可以更加方便大家的交流。博客有以下用途:(1)促进学习。写blog可以促进学习,想写出文章来,自然不能是泛泛的了解就可以的,要理解了才能写得出来的。这就促进了对某些领域的不断学习和思考。(2)记录收获。blog中,常常是记录下来都是瞬间的灵感,对事物的感悟,经过多日思考和实践的结果,对某个问题的解决方案等等,这些都是财富,要记录下来。(3)反映成长。写blog,可以反映出人的思考过程,而不仅仅是思考结果。对一个问题或领域,从不了解到了解,从了解到熟悉,从熟悉到精通。这纪录了一个人思考和解决问题的成长过程。很久之后,看到自己之前的文章,你将会觉得自己进步了。(4)结交朋友。写了blog,自然会有许多志趣相同的朋友来阅读,这可以认识许多朋友。大家有共同的兴趣爱好,自然谈得来。(5)共享知识。blog给大家看,大家的blog也给你看。这个问题我解决了,那个问题他解决了。大家互通有无,建立起一个社群。(6)交流看法。回复的人对blog的观点或赞同,或反对,大家一起讨论,听听别人的思想,可以促进双方的共同进步(7)包装自己。看到一篇篇用心写出的文章,自然是对自己知识技能的最好宣传。系统概述一个博客其实就是由一序列网页组成的,它通常是由简短且经常更新的帖子所构成的,这些张贴的文章都按照年份和日期倒序列排列,能按照日期和主题检索。博客的内容和目的有很大的不同,有到其他网站的超级链接;有对其他网站的评论;有个人的日记,日常所思所想;有个人照片、诗歌、散文,甚至科幻小说的发表。正是由于博客能收容这些不拘于个人思想的表达,使博客这种交流和表达方式日益红火起来,博客秉承了个人网站的自由精神,也开拓了激发创造的新模式,能张扬人的个性,从这个意义上说,博客将会变得越来越普及,越来越为更多的人接受。本系统主要完成以下功能。.客户界面部分我的文章给我留言用户注册/登录首页:文章分类,最新评论,最新文章,最新加入.管理界面部分添加分类分类管理文章管理留言管理基本设置第二章相关技术介绍ASP.NET技术概论本系统采用ASP.NETF发技术进行开发。ASP.NET^仅仅是ASP的一个新版本,更是We的用程序编程方面的一个全新的概念和方法。ASP.NE箱的新功能并不是对ASP的改进,设计它的初衷是为用户入境提供最佳的应用程序架构。它相比于ASPW着以下几个方面的优点:(1)多语言ASP曾在脚本引擎方面受到了限制,特别是VBScript和Jscript。而ASP.NET则支持多种语言,默认情况下为VisualBasic.NET、C杯口Jscript.NET,另外还支持一些第三方语言。(2)服务器处理ASP在服务器处理上不管页面的内容是纯HTMLS是ASP生成的HTML它都是按照实现,形成所谓3-tier页面顺序显示的。因此逻辑代码依赖于它在页面中的位置,并且无法将HTML空件作为目标,除非将它们作为流的一部分进行显示。而ASP.NET就解决了这个问题,方法是为控件引入一个声明的基于服务器的模型,因为控件在服务器上有,可以在服务器上编程,也可以是客户端驱动的事件。(3)WebForm空件将现有的HTML空件转换为服务器端的控件是比较容易的,但是也存在一些不方便,例如比较难于区分HTML空件和服务器端的控件。于是Microsoft公司就创建了一组专门的服务器控件,它们都用asp:前缀标识。(4)代码与内容分离一个网站的设计与开发往往由不同的人来实现的,而ASP中就是存在着这样一个问题,代码(ASP脚本)和内容(HTML混合在一起。这样就使得同时进行设计和开发变得很困难。而ASP.NET®采用了代码内联和后台编码两种方法实现了代码与内容的分离。ASP.NET工作原理在多数场合下,能够将ASP.NETK面容易地当做等闲的HTM版面,版面包括符号有特异处理措施的一些代码段。当安装.NET时,本地的IISWeb服务器积极搭配成查找伸展名为.aspx的文件,且用ASP.NETg块(名为aspnet_isapi.dll的文件)处理这些文件。从技巧上讲,ASP.NET真块分析ASP双件的内容,并将文件内容分解成独自的号召以发生代码的大局构造。告终此工作后,ASP.NET1块将各号召放置到预定义的类定义中(无须要放在同时,也无须要按编写次序放置)。然后利用这个类定义一个特异的ASP.NET寸象Page该对象要告终的任务之一即便生成HTMlM,这些HTMlM能够归来到IIS,再从IIS归来到客户。简言之,在用户哀求IIS服务器供给一个版面时,IIS服务器就依据版面上的文本、HTM即代码(这对我们来说是最重要的)发生该版面。数据库选择数据库(Database),是按照数据结构来组织、存储和管理数据的仓库,是用于查询的大量数据的存储区域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等等。近年来推出的计算机关系数据库管理系统,还具有操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强等诸多优点。总的来说,数据库的设计对系统的经济性、功能性和效率有很大的影响,一个好的数据库,要求在设计时尽量避免数据的多余,另外,还要尽可能提高数据的存取速度。数据库设计时速度与空间在范式上是相互矛盾的。一方面按规范化理论的要求,关系模式应尽量取高级范式,尤其对记录数较多的关系,低级范式将会造成存储的大量重复,是空间遭受严重浪费;另一方面从存取速度上考虑,应该尽量做到一个模式涉及的属性越多越好,相互运算越少越好,这样,又应取低级范式。因此我们在设计充分了解用户的需求,清楚地掌握数据库系统数据库时要严格地探讨它的使用环境,充分了解用户的需求,清楚地掌握数据库系统的特点。经过综合的评价和分析后设计出的数据库应满足以下要求:(1)数据库信息要能充分体现出用户使用系统的需求。(2)能够支持用户对数据进行的所有处理。(3)能够容易被数据库管理系统运行维护。(4)数据一致性、完整性好,无更新异常。本系统采用SQLSERVER2005为后台数据库,使用ADO.NE技术对数据进行操作。数据分析博客系统中,主要是管理用户的文章、留言、系统信息等数据。数据的类型决定了程序对数据的处理方式也就是算法,因此,数据是系统实现分析的起点。现通过数据流图的方式分析系统中数据的流动和处理。对系统的管理员,在登录系统后,本系统接受管理员的修改、添加、删除请求,通过分析将这种请求转化成相应的SQL®句执行对数据库的相关的操作,并将执行的相应结果送回系统中。系统接收到数据库返回的结果集,经过一定的分析处理,将其转化成ASP页面,返回到客户端显示给用户。SQLSERVER2005SQLSERVER2005可以在WEBt运行的数据库服务产品。它既可适用于桌面系统的单用户数据库,也可适用于企业的网络数据库,甚至适用于专业的WEB占点数据库,具有很强的可伸缩性。并且具有很高的可靠性、可用性和可管理性。从经济和开发效率上适合中小型网站。它和ASP.NETH属于微软公司开发,在开发接口有一致性,能更好的协调工作。同时,SQLSERVER2005数据的安全性也有一定的保障,它对用户的访问进行了两个阶段的检查:一是认证阶段,二是许可确认阶段。数据库使用ADO.NE俅处理数据。ADO.NETADO.NE真基于.NET框架结构、面向分布式和以XML>据格式为核心的数据访问技术,它提供了一组数据访问服务的类,可用于对MicrosoftSQLServer、Oracle
等数据源及通过OLED前XM公开的数据远源的一致访问。ADO.NE所一了数据容器类编程接口,无论编写何种应用程序(Windows窗体、Web®体、Wet®务)都可以通过同一组类来处理数据。为使用方便,ADO.NETS提供了一组丰富的控件,利用可视化方式来开发数据库应用。ADO.NE琳系结构如下图2-1所示.NETFramework数据提供程序DataAdapterSelectCommandInsertCommandUpdateCommadDeleteCommandDatasetDataTableCollection数据表DataRowCollection.NETFramework数据提供程序DataAdapterSelectCommandInsertCommandUpdateCommadDeleteCommandDatasetDataTableCollection数据表DataRowCollectionDataColumnCollectionnConstraintCollectionDataRelationCollectionXML图2-1ADO.NET体系结构ADO.NET^系结构的两大核心控件是.NETFramework数据提供程序和Dataset。.NETFramework数据提供程序用于连接到数据库、执行命令和检索结果。Dataset是一个功能丰富、比较复杂的数据集,它是支持ADO.NET勺断开式、分布式数据方案的核心对象。Dataset专门用来处理从数据源获得的数据,无论数据来自什么数据源,它都使用相同的方式操作数据。ASP.NET配置A的配置文件都是XMLB式的文件,XMl>式文件易于书写和定制,采用这种方法进行配置方便灵活。另外,的配置都是可以随时更改的,即应用程序运行期间,可以随时增加和删除配置文件中的项目,修改后可以立刻激活使用比当配置发生变化时需要服务重新启动配置才生效的方法有很大的优势。第三章需求分析3.1需求分析任何一个软件项目的开发都是从需求调查开始,博客管理系统也不例外。系统管理员通过前台页面进入后台管理模块后,可以对注册的博客用户进行管理,包括对注册用户的添加、查找、修改和删除等操作;而博客用户通过前台登陆后,可以对自己的博客空间进行管理,包括发布自己的网络日志、收藏个人图片、与相关人员进行交流和沟通以及删除访问者的评论等。针对博客管理系统的一些需求,总结出如下信息:.用户分普通用户、管理用户和超级管理用户。.超级管理用户员可以对博客管理员进行管理和设置权限。.博客管理员涉及对博客的类型管理、文章管理、图片管理、评论管理、留言管理和通信管理。.普通用户可一阅读文章、发表回应、留言和评论。.一种文章类型有多篇文章。.一种文章有多篇评论。.2可行性分析可行性分析(FeasibilityAnalysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。为了确定开发具有可行性,对本系统主要进行了以下四个方面的分析。(1)经济可行性。经济可行性主要是对项目的经济效益进行评价。本系统对系统开发者来说并不需要太高的成本支出,只是对系统的管理者付出管理报酬即可,而且开发周期不需要太长,节省了人力、物力、财力资源,所以本系统在经济上是可行的。(2)技术上的可行性。技术上的可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。在软件方面,本系统采用的是ASPActiveSeverPages)进行开发,前台网页设计使用的是DreamweaverMX而数据库系统采用的是MicrosoftAccess2000。通过分析,在软、硬件方面现有工具与环境完全可以实现系统的开发,因此具有技术上的可行性。(3)时机可行性。时机可行性是分析系统开发时机是否成熟。目前越来越多的应用程序都已经是转向基于Web勺开发,并且Internet已经广泛使用,因此系统的设计具有时机可行性。(4)管理上的可行性:主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。系统的开发主要就是为了方便校友信息的管理,补充现在传统管理方式的不足,因此具备了管理上的可行性。综上所述,本系统开发目标已明确,在技术和经济等方面具备可行性,并且投入少、见效快,因此系统的开发是完全可行的。第四章概要设计系统设计方案本系统是面向个人用户和小型集体用户开发的系统,完成用户在Blog上进行预定操作,实现用户和来宾之间的双向沟通。具体设计方案为:系统服务器为IIS,数据库为SQLSERVER200酹个系统界面采用MicrosoftvisualStudio2008开发。用C#§言实现。服务器与数据库的连接使用OLED编程接口的OleDbConnection对象进行连接。系统分成两部分,前台为普通用户操作界面,功能包括:阅读文章,发表留言,发表评论,在线聊天。后台为管理员操作界面,管理员通过登录进入管理界面,功能包括:分类管理,文章管理,添加文章,评论管理,链接管理,留言管理。系统功能模块系统功能模块包括两大块:管理界面功能模块和普通用户界面功能模块。具具体功能如下所示:本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。博客系统文章实体E-R图如图4-1所示。图4-1文章资源E-R图管理员用户功能模块图4-2如下:图4-2管理员功能模块普通用户功能模块图4-3如下:图4-3普通用户功能模块数据库需求分析■用户分为普通用户和管理员用户管理员涉及类型管理、文章管理、添加文章、评论管理、链接管理、留言管理。普通用户可以阅读文章、发表回应、留言、评论和在线聊天。一种文章类型有多篇文章。一篇文章有多篇评论、回复。对上面系统功能分析,设计如下数据项:管理员信息:用户名、密码。类型信息:类型编号、类型名称。链接:链接编号、链接名称、链接地址。留言:留言编号、留言人呢称、留言标题、个人主页、留言内容、留言时间、留言回复。文章信息:文章序号、文章作者、文章标题、摘要、文章内容、文章发表日期、文章人气、回复、文章类型编号、文章类型名称、文章回复数。评论:评论序号、评论用户呢称、评论标题、评论内容、评论时间、评论的文章序号。
系统操作流程分析传统Blog系统这一环节所应具有的功能,可以得到Blog系统应具有以下功能:高级系统用户(管理员)通过浏览器,可以实现文章的管理(对文章的各种信息进行浏览、增加、删除、修改等)、普通系统用户对文章信息只能阅读和留言。由此得到的系统的流程图如图4-4所示图4-4图4-4系统操作流程数据表设计数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库逻辑结构。博客系统中的数据管理形式采用数据库,根据系统需要与数据规范化分为博客文章类型表,博客友情链接表,留言信息列表,博客文章信息列表,评论信息列表,系统管理员列表,博客管理员列表,联系人信息列表,图片信息列表这9张表,在此只给出比较重要的数据表。表4-1ST_news(文章信息列表)ST_n_id文章唯一ID号Int4否ST_n_author文早件者nvarchar50是ST_n_title义早标题nvarchar200是ST_n_key文章摘要nvarchar200是ST_n_content义早内谷ntextr50是l=rST_n_date又早发表日期datetime8是ST_n_hit文早人,飞bigint8是ST_n_re文章回复bigint8是l=rST_c_id义早矢刑编Pbigint8是l=rST_c_name文章典型名称nvarchar50是ST_c_iscmd文章回复数int4是表4-2ST_replay(评论信息列表)字段说明长度允许空ST_r_id评论唯一ID号bigint8否ST_r_nick昵称nvarchar50是ST_r_title评论标题nvarchar250是ST_r_content评论内容nvarchar250是ST_r_date评论发表时间datetime8是ST_n_id评论文章编号int4是表4-3ST_class(博客文章类型表)
ST_c_id文章唯一ID号bigint8否l=rST_c_name文章典型名称Nvarchar50是BlogID博客唯一ID号int50是表4-4ST_message(留言信息列表)说明长度允许空ST_id留言唯一ID号bigint8ST_nickname网友昵称nvarchar50是ST_title留百标题nvarchar50是ST_homepage个人主页nvarchar50是ST_content留百内咨ntext16是ST_mdate留百时间datetime8是SThf留百回复ntext16是数据库的完整性和安全性数据库的完整性约束数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS用一定的机制来检查数据库中的数据是否满足规定的条件一一完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。数据库的完整性约束主要包括以下三方面要求:(1)实体完整性实体完整性是指若属性A是基本关系R的主属性,则属性A不能取空值。对于每个表来说,主键都不可以为空。在用户提交信息时,系统会对用户所填写的信息进行验证,对于其中的关键信息没有填写或者数据非法时,系统会提示用户更改后再提交。这样保证了系统实体完整性。(2)参照完整性由于表和表之间会存在某些联系,当关系R和关系S之间是一对多关系时(R的主键是A,S的主键是b,c是s中的外码),在插入数据时就要保证外码c的值或者为空或者等于R中某个元组的主码值。在对被参照表进行删除操作时应同时进行及联删除。(3)用户定义完整性任何关系数据库系统都应该支持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如某个属性必须取唯一值、某个属性的取值范围等。数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,同时又为许多用户直接共享,是宝贵的信息资源,因此系统的安全保护措施就显得更为重要。键全的数据库安全机制可以防止数据库被恶意的破坏和非法的存取。本系统的安全设计包括服务器和数据库两方面设计。当用户使用系统时,系统首先会检查用户是否登录,如果用户还没有登录,系统将会弹出警告窗口提醒用户,并将相应的页面跳转至用户登录。在用户提交登录信息后,系统会对用户的身份进行核对,如果在数据库中查找到了相关记录,打开用户页面,表明用户登录成功。对于数据库的安全,主要是通过对授权用户的身份验证实现的。在的系统管理页面,提示用户使用管理员帐号在此登录,没有管理权限的系统注册用户无法登录到数据库管理的后台。系统确认了管理员身份之后统会打开管理页面,系统管理者可在此对整个系统的数据库进行管理和维护。第五章详细设计后台功能模块详细设计通过此功能用户可以对主页中的许多功能和数据进行操作控制。用户注册模块设计页面Register.asp主要完成引导用户进行注册,首先会提供注册表让用户输入用户名和密码等,让用户输入注册信息,输入完成后,当用户单击[注册]按钮的时候,要对用户输入的注册信息简单认证,看用户信息是否验证,如果验证进行数据库验证,查看用户之前是否已经注册过,如果没有注册则插入一条新记录到数据库,完成注册。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。
博君注册费科用尸a:需确u卷码二t生另心二真实姓名:生日二博客主题:雾雌地址:邮政辐鹤:室码问磨二问题音案:E-1:东府电话:手机号码:QQ1注烟日四:[[取消I图5-1博客注册资料实现此功能的关键代码为:protectedvoidbtnOK_Click(objectsender,EventArgse){SqlDatada=newSqlData();SqlDataReaderread=da.ExceRead("select*fromtb_AdminwhereUserName=""+this.txtName.Text+""');read.Read();if(read.HasRows){if(this.txtName.Text==read["UserName'].ToString()){Response.Write("<scriptlanguage=javascript>alert('对不起,该用户已经注册!’);location='Register.aspx'</script>");
return)read.Close();stringP_str_Com="insertintotb_Admin(UserName,PassWord,Question,Answer,ReallyName,Birthday,Address”,PostCode,Email,HomePhone,MobilePhone,QQ,ICQ,RegTime,Sex,SuperAdmin,IP)TOC\o"1-5"\h\zvalues,"+this.txtName.Text+""'+",'"+this.txtPwd.Text+"','"+this.txtQues.Text+"','"+this.txtAns.Text+"','"+this.txtRealName.Text+"”'+",'"+this.txtBirthday.Text+"','"+this.txtAddress.Text+"','"+this.txtPostCode.Text+"','"+this.txtEmail.Text+"'"+this.txtHphone.Text++this.txtMphone.Text++this.txtHphone.Text++this.txtMphone.Text++this.txtQQ.Text+"','"+this.txtICQ.Text+"','"+DateTime.Now.ToString()+"','"+this.DropDownList1.SelectedValue+"','"+this.DropDownList2.SelectedValue+"','"+Request.UserHostAddress+"')"booladd=da.ExceSQL(P_str_Com);if(add==true)Response.Write(<scriptlanguage=javascript>alert('注册成Response.Write(<scriptlanguage=javascript>alert('注册成功!');location='AdminManage.aspx'</script>else注册失败!Response.Write("<scriptlanguage=javascript>alert('注册失败!ROOLSOFT');location='javascript:history.go(-1)'</script>");))在博客注册页面中,还用到了一个小功能,就是在用户填写用户名时,通过单击“检测用户”按钮,触发其Click事件来检测填写的用户名是否已经存在。主要代码如下:protectedvoidButton1_Click(objectsender,EventArgse){SqlDatada=newSqlData();SqlDataReaderread=da.ExceRead("select*fromtb_AdminwhereUserName='"+this.txtName.Text+"”');read.Read();if(read.HasRows){if(this.txtName.Text==read["UserName'].ToString()){Response.Write("<scriptlanguage=javascript>alert('对不起,该用户已经注册!’);location='Register.aspx'</script>");))else{Response.Write("<scriptlanguage=javascript>alert('恭喜您,该用户可以注册!');</script>");)read.Close();博客管理员首页设计在博客首页中单击“管理员”超链接,弹出管理员登录对话框,输入正确的用户名和密码后,单击“登录”按钮,进入博客管理员首页,如图5-2所示。在页面左侧显示的是树形功能导航菜单,具有7项管理功能,分别为类型管理,文章管理,留言管理,评论管理,链接管理,通信管理和图片管理。单击相应的功能超链接,将在页面右侧显示相应的连接信息,例如单击“类型管理”超链接,将在页面右侧显示所有的文章类型,管理员可进行添加修改和删除等操作。励乐统昔衽员'2'帮助曲退励乐统昔衽员'2'帮助曲退士登录的博客后台官理;*当惇客管理员«类型管理•土奖章昔理Q曾言管理,回应管理♦捱揩管理0通信管理t图片管理查询条件女童ID「关键字添加新文章文章口文章主跋A气指熬钟深修改■除造奔149遇知81BflB□15020修改□文章佶息管理□全造取清全选批量旃图5-2文章信息管理图实现代码在此内容页中的前台代码中编写如下代码:<%@PageLanguage="C#"MasterPageFile="~/MasterPage/AdminMasterPage.master”AutoEventWireup="true"CodeFile="ST_BlogIndex.aspx.cs”Inherits="Module_Admin_ST_type"Title="UntitledPage"%><asp:ContentID="Content1"ContentPlaceHolderID="ContentPlaceHolder1
Runat="Server"><table><tr><tdstyle="width:97px;height:424px;"><iframesrc="TreeMenuSys.aspx"name="leftFrame"width="200"frameborder="no"scrolling="no"style="height:465px;width:157px;background-image:url(../../Images/Skin/left.jpg);"></iframe></td><tdstyle="width:101px;height:424px;"><iframesrc="CommonPage.aspx"name="rightFrameframeborder="no"scrolling="no"height="500"width="600"style="width:></iframe>582px;height:465px;background-image:url(../../Images/Skin/right.jpg)></iframe></td></tr></table></asp:Content>该页主要应用了TreeView控件,实现对博客后台的导航管理,如导向文章类型管理页面。在页面中应用的TreeView控件代码如下:<asp:TreeViewID="TreeView1"runat="server"Height="301px"Font-Size="12pt"ForeColor="Black"Width="131px"style="left:1px;position:relative;top:27px"ImageSet="Faq"><Nodes><asp:TreeNodeText="博客后台管理"ToolTip="博客后台管理"Value="博客后台管理"><asp:TreeNodeText="博客管理员"ToolTip="博客管理员"
二ROOLSOFT二ROOLSOFTValue="博客管理员"><asp:TreeNodeText="类型管理"ToolTip="类型管理"Value="类型管理"Target="rightFrame"NavigateUrl="BlogType.aspx"></asp:TreeNode><asp:TreeNodeText="文章管理"ToolTip="文章管理"Value="文章管理"Target="rightFrame"NavigateUrl="ArticleManage.aspx"></asp:TreeNode><asp:TreeNodeText="留言管理"ToolTip="留言管理"Value="留言管理"Target="rightFrame"NavigateUrl="ST_admin_message.aspx"></asp:TreeNode><asp:TreeNodeText="回应管理"ToolTip="回应管理"Value="[M应管理"Target="rightFrame"NavigateUrl="ST_admin_replay.aspx"></asp:TreeNode><asp:TreeNodeText="链接管理"ToolTip="链接管理"Value="链接管理"Target="rightFrame"NavigateUrl="LinkManage.aspx"></asp:TreeNode><asp:TreeNodeText="通信管理"ToolTip="通信管理"Value="通信管理"Target="rightFrame"NavigateUrl="LinkManManage.aspx"></asp:TreeNode><asp:TreeNodeText="图片管理"ToolTip="图片管理"Value="图片管理"Target="rightFrame"NavigateUrl="PhotoManage.aspx"></asp:TreeNode></asp:TreeNode></asp:TreeNode></Nodes><HoverNodeStyleForeColor="Purple"Font-Underline="True"/>
<SelectedNodeStyleFont-Underline="True"HorizontalPadding="0px"VerticalPadding="0px"/><ParentNodeStyleFont-Bold="False"/><NodeStyleFont-Names="Tahoma"Font-Size="8pt"ForeColor="DarkBlue"HorizontalPadding="5px"NodeSpacing="0px"VerticalPadding="0px"/></asp:TreeView>5.1.3博客文章信息管理页面在博客的后台管理中,文章管理占有相当重要的地位。单击Blog文件夹下ST_BlogIndex.aspx页面中的“博客管理员”节点下的“文章管理”,就会显示出博客文章管理的相关信息,包括文章编号,文章标题,人气指数等。这部分内容的实现是由该文件夹下的AvticleManage.aspx页面来实现的,运行效果如图5-3所示。此页面中用到了一个GridView控件,主要用来向用户展示已有文章信息,同时提供修改,删除,添加和查询基本操作。口亲姓管理员◎祜曲曲口亲姓管理员◎祜曲曲i隹出登录文章信息管理文克I。文克I。文堂主踊人气指数讨谕修改*除选择149酗81,改晦□150Hit20鸣□查调条怦交堂旧〜关醒于[查找]需加新女童二届,博客后岩管理-4图客管理员“烦管理4盘萱理,蓊藁'.t回应管理麻报管理&通信管理0图片管理图5-3博客管理博客文章信息的查询关键代码如下:protectedvoidbtnSearch_Click(objectsender,EventArgse)(SqlDatada=newSqlData();stringsearch=this.ddlSearch.SelectedValue;switch(search)(case"文章ID":da.BindData(this.GridView1,"Select*FromST_newsWhereST_n_idLike'%"+this.txtKey.Text+"%'andBlogID='"+ID+"”');break;case"文章主题":da.BindData(this.GridViewl,"Select*FromST_newsWhereST_n_titleLike'%"+this.txtKey.Text+"%'andBlogID='"+ID+"”');break;default:Response.Write("<scriptlanuage=javascript>alert('查询失败!’);location='javascript:history.go(-1)'</script>");break;))博客文章信息的修改关键代码如下:protectedvoidPage_Load(objectsender,EventArgse)(if(!IsPostBack)try(stringstr;stringstr2=Page.Request["id"].ToString();//此处用来实现将数据绑定到前台SqlConnectionmycon=newSqlConnection(ConfigurationManager.AppSettings["conStr"]);mycon.Open();SqlDataAdaptermyada=newSqlDataAdapter("select*fromST_newswhereST_n_id='"+str2+"”',mycon);DataSetds=newDataSet();myada.Fill(ds,"ST_news");//创建DataRowView寸象的一个实例DataRowViewrowview=ds.Tables["ST_news"].DefaultView[0];//将文章主题读取到labSubject文本框中this.labSubject.Text=rowview["ST_n_title"].ToString();//将文章内容读取到txtContent文本框中this.txtContent.Text=rowview["ST_n_content"].ToString();mycon.Close();)catch(Exceptionex)(Response.Write(ex.Message);)))博客文章信息的添加关键代码如下:protectedvoidPage_Load(objectsender,EventArgse)(if(Session["UserName"]==null)(Response.Redirect("~/BlogIndex.aspx");}SqlConnectionmycon=newSqlConnection(ConfigurationManager.AppSettings["conStr"]);mycon.Open();DataSetmydataset=newDataSet();SqlDataAdaptermydataadapter=newSqlDataAdapter("select*fromtb_BlogwhereUserName=""+Session["UserName"]+""',mycon);mydataadapter.Fill(mydataset,"tb_Blog");DataRowViewrowview=mydataset.Tables["tb_Blog"].DefaultView[0];ID=rowview["BlogID"].ToString();stringsqlstr="select*fromST_ClasswhereBlogID='"+ID+""'SqlCommanmycom=newSqlComman(sqlstr,mycon);SqlDataReaderdr=mycom.ExecuteReader();//判断是否有数据while(dr.Read())(DropDownList1.Items.Add(newListitem(dr["ST_c_name'].ToString(),dr["ST_c_id"].ToString()));}}
5.2前台功能模块详细设计前台主界面前台主界面图如下用尸名00验证蚂用尸名00验证蚂923592S5|[^电[注册恬记史蚂?官程且百页。文章列表一追逐时代潮流,尽显个文章标题察要不知道[点击阅读全文]阅读:口6]百页。文章列表一追逐时代潮流,尽显个文章标题察要不知道[点击阅读全文]阅读:口6].甲论:口]时间[200-12-2"1?:10:10]门诊摘要,匚隘病历只限本人使用[点击阅读全文]阅读:⑶评论:即时间.[-郎-13Mr.C.S.MJ通知15要:使用细知[点击阅读全文]阅读:团评淞口]时间一口00?-也第r-.Q-.ii]★程序设计★网页谀置推荐文章女章标题遇失工网右回应jg寻落于:融乃好制
0101H1^^2007-12-27/5;33:27回厘标题网哀域及谭爸干窕门•次附友情侨桂嫡程同胤
晔博客主人[给我留言]图图5-4前台主界面图主要实现代码如下:protectedvoidPage_Load(objectsender,EventArgse)//在此处放置用户代码以初始化页面stringST_dns=Configurationsettings.AppSettings["conStr"];//最新推荐文章stringST_cmd_sql="selecttop10*fromST_newswhereST_n_iscmd=1orderbyST_n_datedesc";ST_myConn=newSqlConnection(ST_dns);SqlDataAdapterST_classCmd=newSqlDataAdapter("selectST_c_id,ST_c_namefromST_class",ST_myConn);SqlDataAdapterST_cmdCmd=newSqlDataAdapter(ST_cmd_sql,ST_myConn);DataSetST_classds=newDataSet();ST_classCmd.Fill(ST_classds,"类别列表");DataSetST_cmdds=newDataSet();ST_cmdCmd.Fill(ST_cmdds,"推荐文章");ClassList.DataSource=newDataView(ST_classds.Tables[0]);ClassList.DataBind();CmdList.DataSource=newDataView(ST_cmdds.Tables[0]);CmdList.DataBind();//调用自定义NewsBlogList_Bind方法NewsBlogList_Bind();if(Request.Cookies["colors"]!=null)(stringST_test=Request.Cookies["colors"].Value;String[]ST_colorList=ST_test.Split(newchar[]{','});ST_bgcolor=ST_colorList[0];ST_tcolor=ST_colorList[1];)else(ST_bgcolor="#FFDE94':ST_tcolor="#efe3ce";)Page.DataBind();)publicvoidNewsBlogList_Bind()(stringST_sql;if(Request.QueryString["c_id"]==null)(ST_sql="select*fromST_newsorderbyST_n_datedesc";)else(if(IsSafe(Request.QueryString["c_id"],2)==true)(ST_sql="select*fromST_newswhereST_c_id="+Request.QueryString["c_id"]+"orderbyST_n_datedesc";)else(ST_sql="";Response.Write("非法参数");Response.End();))SqlDataAdapterST_myCmd=newSqlDataAdapter(ST_sql,ST_myConn);DataSetST_ds=newDataSet();ST_myCmd.Fill(ST_ds,"文章列表");NewsList.DataSource=newDataView(ST_ds.Tables[0]);NewsList.DataBind();)publicboolIsSafe(stringstr,intprama){if(prama==1){if(RegexIsMatch(str,”[0-9]")){returntrue;)else{returnfalse;))else{if(str.IndexOf("and")>0||str.IndexOf("or")>0||str.IndexOf("'")>0)returnfalse;)else(returntrue;)))#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse)(InitializeComponent();base.OnInit(e);)#endregionprotectedvoidNewsList_PageIndexChanging(objectsender,GridViewPageEventArgse)(NewsList.PageIndex=e.NewPageIndex;NewsBlogList_Bind();))“博客评论”功能模块设计单击Blog文件夹下的ST-BlogIndex.aspx页面中的“博客管理员”节点下的“评论管理”,就会显示出对博客文章进行评论的相关信息,包括评论者和评论内容。这部
分内容的实现是由该文件夹下的ST-admin-replay.aspx页面来实现的,运行效果如图5-5所示o回应管理□全选[取消全选]⑥系碗苜坯由■用助。回应管理□全选[取消全选]5博客后含管理-日博客管理员、■类型穹理,#文克善理◊招官管理.>回应辔理■J链接首理"通信管理*图片首理图5-5回应管理图主要功能实现代码如下:protectedvoidPage_Load(objectsender,System.EventArgse){stringST_dns=ConfigurationSettings.AppSettings["conStr"];ST_myConn=newSqlConnection(ST_dns);if(!Page.IsPostBack){ST_Replay_Bind();}}privatevoidST_Replay_Bind(){stringST_sql="select*fromST_replay";//调用公共类SqlData中的ExceDSJ法,返回一个DataSet类型的数据ReplayList.DataSource=sd.ExceDS(ST_sql);ReplayList.DataKeyNames=newstring[]{"ST_r_id"};ReplayList.DataBind();}protectedvoidReplayList_RowDeleting(objectsender,GridViewDeleteEventArgse){//创建公共类SqlData的一个新实例对象SqlDatada=newSqlData();//调用公共类中的ExceSQL执行删除的SQ昭旬booldelete=da.ExceSQLf'deletefromST_replaywhereST_r_id='"+ReplayList.DataKeys[e.RowIndex].Value.ToString()+"”');if(delete){Response.Write("<scriptlanguage=javascript>alert('删除成功!');location='ST_admin_replay.aspx'</script>");}else{Response.Write("<scriptlanguage=javascript>alert('删除失败!’);location='ST_admin_replay.aspxx'</script>");}}}
超链拄管理查询条件[地址心j超链拄管理查询条件[地址心jv美犍字二|[查找]需加新植接I-.博客后台管理;而惶客管理员电类型管理“文章管理」僵言管理,回应管理睡售管理9通.馥图片管理图5-6超链接管理图在此页面主要用了一个GridView控件和一个“添加新链接"的超链接。GridView控件用来向用户展示已有的链接信息,同时提供修改和删除评论信息的操作;“查找”按钮则用来提供已有链接的查询操作。主要功能实现代码如下:protectedvoidPage_Load(objectsender,EventArgse){ST_check_Login();SqlDatada=newSqlData();this.GridView1.DataSource=da.ExceDS("select*fromST_link");GridViewl.DataKeyNames=newstring[]{"ST_l_id"};GridView1.DataBind();}publicvoidST_check_Login(){if((Session["UserName']==null)){Response.Write("<script>alert('对不起!您还没注册,请先注册再登录!');location='../../BlogIndex.aspx'</script>");Response.End();))protectedvoidbtnSearch_Click(objectsender,EventArgse)(SqlDatada=newSqlData();stringsearch=this.ddlSearch.SelectedValue;switch(search)(case"地址ID":da.BindData(this.GridView1,"Select*FromST_linkWhereST_l_idLike'%"+this.txtKey.Text+"%'");break;case"网站名称":da.BindData(this.GridViewl,"Select*FromST_linkWhereST_l_nameLike'%"+this.txtKey.Text+"%'");break;case"链接网址":da.BindData(this.GridViewl,"Select*FromST_linkWhereST_l_urlLike'%"+this.txtKey.Text+"%'");break;default:Response.Write("<scriptlanuage=javascript>alert('查询失败!');location='javascript:history.go(-1)'</script>");break;}第六章测试测试目的程序测试就是在程序投入运行前,对程序的需求分析、设计规格说明和编码的最终复审,是保证程序质量的关键步骤。如果要给程序测试下定义,可以这样讲,程序测试是为了发现错误而执行程序的过程。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。编程人员力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。测试方法程序测试的主要方法为黑盒测试。黑盒测试:也称功能测试,将软件看作黑盒子,在完全不考虑程序的内部结构和特性的情况下,测试软件的外部特性。根据软件的需求规格说明书设计测试用例,从程序的输入和输出特性上测试是否满足设定的功能。测试用例(1)用户测试权限测试内容:填写用户名及密码,验证能否成功登陆操作:①填写正确的用户名及密码。②填写错误的用户名或密码。结果:①成功登陆。②提示用户名或密码错误。(2)文章管理测试(I)发表文章测试内容:用户发表新文章,操作:进入博客系统,点击文章管理,选择添加文章的操作如下图6-1所示,填写完文章内容之后单击添加按钮,看系统是否会提示发表成功。结果:测试成功。第七章结论不足之处与改进本系统现已基本完成,基本功能已经具备,但在如下几个方面还存在着不足,需要做进一步的研究与开发,使Blog系统能够更完善。权限分配本系统权限分配不够细化,只分为管理员和普通用户。管理员可以对数据库进行所有操作,普通用户只能浏览文章,发表回复,在线聊天。而不能发表自己的文章,管理自己的文章,缺乏作为低级管理员的功能。如果我们能在数据库中为各种不同的用户分配不同的角色来细化权限的分配,这样可以便于我们对系统的管理和维护,也能够更多的满足广大用户的需求。界面美观化一个系统强大的功能固然重要,能有一个漂亮的界面也必不可少。特别是界面上颜色的搭配很有讲究,要符合系统的基调。让用户更加赏心悦目,为此我认真研究了CSS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版安能物流运输合同范本
- 农业现代化智能农业装备开发方案
- 电力行业智能电网运维与能源管理方案
- 二零二五年度厂区物业能耗监测与合同2篇
- 二零二五年度国家安全保密技术合作合同2篇
- 专业理财顾问投资建议免责协议
- 2025年度安徽绿色生态农业园区施工合同正本规范
- 英语流利说课程设计师
- 2024年英文版标准员工劳动合同范本
- 班级野餐课程设计
- 40篇英语短文搞定高考3500个单词(全部)
- 《社会工作的理论》课件
- 2021电力建设项目工程总承包管理规范
- 2024年茂名市高三第一次综合测试(一模)化学试卷(含答案)
- (常州卷)江苏省常州市2023-2024学年五年级上学期期末考试质量调研数学试卷一(苏教版)
- 教练式沟通培训课件
- 医养结合养老院(养老中心)项目可行性报告
- 初三语文总复习全程计划表
- 电子技术基础与技能-机工教案第九章教案555集成定时器介绍
- 污水处理运行质量保证措施
- 食材供货及质量保障措施方案
评论
0/150
提交评论