毕业设计个人博客系统的设计与实现_第1页
毕业设计个人博客系统的设计与实现_第2页
毕业设计个人博客系统的设计与实现_第3页
毕业设计个人博客系统的设计与实现_第4页
毕业设计个人博客系统的设计与实现_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计说明书个人博客系统的设计与实现学生姓名: 周海芳 学号: 0906034202 学 院: 电子与计算机科学技术 专 业: 计算机科学与技术 指导教师: 张元 2013年 6 月个人博客系统的设计与实现摘要随着互联网技术的高速发展,生活节奏的加快,博客被越来越多的人选择作为学习和交流的工具。博客的内容丰富多彩,有对其他网站的超链接和评论,有个人构思,还有日志、照片、诗歌和散文等。博客具有开放性、互动性和共享性的特点,是一个很好的交流的渠道,是思想展现的舞台和学术探讨的园地。本系统采用B/S(浏览器/服务器)开发模式,以My Eclipse作为开发平台,采用JSP技术,以Tomcat为服务

2、器和SQL Server 2008为后台数据库。本系统是一个实用的个人博客系统,集日志、图片、评论于一身。用户可以查看文章、相册,还可以发表文章评论。博主可以管理自己的日志、相册、评论等。整个系统层次结构清晰、性能稳定、界面友好,使用起来简单方便。关键字:互联网,B/S,MyEclipse,JSPPerson Blog System Design and ImplementationAbstractWith the rapid development of Internet technology and high speed of life rhythm, Blog has being cho

3、sen by more and more people as the tool of study and communication. The content of Blog is very rich and colourful which has hyperlink and comment of other website, personal thinking, news, music, article and so on. Because of the character of independence, interaction and share of Blog, it is regar

4、ded as an outlet of good exchange channel, the stage of personal thought displaying, and the garden area of knowledge studying.This system use B/S (Browser/Server) development pattern, MyEclipse as a development platform,with the JSP technology, Tomcat for servers and SQL Server 2008 for the backend

5、 database.This system is a practical personal blog system ,including logs, pictures, comment as a whole . Visitors can view the article, photo album, also can give a discuss. Blogger can manage their logs, photo albums, comments, etc. The system structure is clear, stable performance, friendly inter

6、face, it is simple and convenient to use.Key words: Internet , B/S , MyEclipse , JSP目 录1 引 言11.1 个人博客系统简介11.2 国内外研究现状22 开发技术及开发环境32.1 开发技术32.1.1 JSP概述32.1.2 Servlet 概述32.1.3 JavaBean概述42.2 JSP网站开发模式42.3 开发工具62.3.1 MyEclipse简介62.3.2 Tomcat简介62.3.3 SQL Server简介63 需求分析83.1 功能需求概述83.2 系统总体功能结构94 系统概要设计1

7、14.1 数据库设计E-R图114.2 逻辑结构设计144.3 数据流图185 详细设计与实现205.1 公共模块的设计与实现205.1.1 数据库连接及操作类的编写205.1.2 字符串处理类的编写205.1.3 系统配置215.2 用户登录模块的设计与实现215.2.1 用户登录模块概述215.2.2 用户登录模块技术分析225.2.3 用户登录模块实现过程235.3 前台模块的设计与实现235.3.1 前台页面的设计与实现235.3.2 文章查询模块设计与实现265.3.3 系统访问统计量模块设计与实现285.4 后台模块的设计与实现295.4.1 后台页面的设计与实现295.4.2 相

8、册管理模块设计与实现316 系统测试346.1 测试的目的346.2 测试的方法346.3 测试过程346.3.1 单元测试346.3.2 集成测试386.3.3 测试问题及解决386.3.4 测试结果387 结论39参考文献40致谢421 引 言1.1 个人博客系统简介“博客”(Blog或Weblog)一词源于“Web Log(网络日志)”的缩写,是一种十分简易的傻瓜化个人信息发布方式1。任何人都可以像使用免费电子邮件一样,完成个人网页的创建、发布和更新。博客就是开放的私人空间,可以充分利用超文本链接、网络互动、动态更新等特点,在网络中,精选并链接全球互联网中最有价值的信息、知识与资源;也可

9、以将个人工作过程、生活故事、思想历程、闪现的灵感等及时记录和发布,发挥个人无限的表达力;更可以以文会友,结识和汇聚朋友,进行深度交流沟通2。“博客”当然是个大家都陌生的名词,博客的英文名词就是“Blog或Weblog”(指人时对应于Blogger),是一个典型的网络新事物,查阅最新的英文词典也不可能查到。该词来源于“Web Log(网络日志)”的缩写,特指一种特别的网络个人出版形式,内容按照时间顺序排列,并且不断更新3。博客概念一般包含了三个要素:(1)网页主体内容由不断更新的、个性化的众多日志组成。(2)按时间顺序排列,而且是倒序方式,也就是最新的放在最上面,最旧的放在最下面。(3)内容可以

10、是各种主题、各种外观布局和各种写作风格,但是文章内容以“超链接”作为重要的表达方式。因此,博客是个人性和公共性的结合体,其精髓不是主要表达个人思想,不是主要记录个人日常经历;而是以个人的视角,以整个互联网为视野,精选和记录自己在互联网上看到的精彩内容,为他人提供帮助,使其具有更高的共享价值。博客精神的核心并不是自娱自乐,甚至不是个人表达自由,相反,是体现一种利他的共享精神,为他人提供帮助。个人日记和个人网站主要表现的还是“小我”,而博客表现的是“大我”。也许形式上很接近,但内在有着本质的差异。所有优秀博客网站中,真正表达作者个人的内容非常有限,最多只是点缀,而不像个人网站那样是核心。1.2 国

11、内外研究现状据不完全统计,到今天,全世界博客总量已超过一亿。其中中国的博客达到1600万。博客数量大约6个月翻一番,2011年4月份每天新增博客9万5千人。每天发贴120万篇,平均一小时5万贴。博客的影响力,早已超出了他作为个人,甚至作为自己所在行业的原有范围,开始引起主流媒体的强烈关注。自2010年以后,博客迎来了它的飞速发展时期,作为专业领域的知识传播模式,博客成为了该领域最具影响力的方式之一,博客的影响力也将超越传统媒体。它将成为一种全新的信息组织和传播方式,发挥更大的作用。现在的博客网站的主要特点:(1)零机制:博客属于个人所有,是自发建立和非正式的建设。BSP(博客服务托管商)不能对

12、博客发号施令。 (2)零技术:博客不需要网站的专业知识,可以像发邮件一样简单地实现博客网页的呈现。技术的极度简化,包括架构和申请博客网站、编辑、上传和修改内容等。 (3)零成本:任何一个人都可以像申请免费邮件般免费申请自己的博客网站。不需要注册域名的成本,不需要租用服务器空间的成本,不需要许多软件工具的成本。 (4)零编辑:博客用户就是编辑,即时写作、即时发布、自我检查。这形成了与传统写作截然不同的“体验”,真正实现了作者“零磨损”的开放式写作。 (5)零形式:博客页面的表现形式和文章内容的表现方式十分灵活,没有特定形式。 与个人主页相比较,博客是使用方便的、交互性强。与传统的电子邮件、BBS

13、和ICQ这三种互联网沟通方式相比,博客是一种较严肃的沟通平台。BBS公共匿名性很强,而个人性很弱,因此缺乏约束。电子邮件和ICQ则是多用于个人间的通讯,而博客是个人性和公共性的结合。博客是个人在网上展示自己、与别人沟通交流的综合平台,它的管理比BBS简单的多。2 开发技术及开发环境2.1 开发技术本系统的开发采用的是JSP+JavaBean+Servlet模式,在该模式中,结合了JSP和Servlet技术,充分利用了JSP和Servlet两种技术原有的优点4,5。在此模式中,JavaBean作为模型的角色,充当JSP和Servlet通信的中间工具,Servlet处理完后设置JavaBean的属

14、性,JSP读取此JavaBean的属性,然后进行显示。该模式更加明显地把显示和逻辑分离,使得代码更容易管理,适合大型项目的开发6,7。 JSP概述JSP即Java Server Pages,是由Sun Microsystem公司于1996年6月推出的新技术,是基于Java Servlet以及整个Java体系的Web开发技术。JSP已经成为开发Web动态网页重要、快速和有效的工具,是全新的网络服务器编程环境8。JSP充分利用了Java的强大功能,是一种优秀的服务器端技术。随着Java技术的日益成熟和流行,JSP在网络编程中也变得越来越重要。JSP基于强大的Java语言,具有极强的扩展能力,良好的

15、缩收性,以及与平台无关的开发特性,成为构建动态网站的主流技术之一,JSP有着其他技术所不具备的优势9。其优势在于:可以将内容的生成和显示进行分离、生成可重用的组件、采用标识简化页面开发。JSP能提供所有Servlet的功能10。 Servlet 概述Servlet是Java编写的服务器端程序,是由服务器端执行和调用的Java类。Servlet是采用Java技术来实现CGI功能的一种技术,能够像CGI一样动态地扩展Web服务器的功能,并采用请求响应模式提供Web服务。Servlet和CGI一样都是运行在Web服务器上,用来生成Web页面。Servlet的主要功能在于交互式地浏览和修改数据,生成动

16、态Web内容11,12。其工作流程图如图2.1所示。Servlet工作流程:a)客户端发送请求信息至服务器。b)服务器将请求信息发送至Servlet。c)Servlet生成响应内容并将其传给Servlet。响应内容动态生成,通常取决于客户端的请求。图2.1 Servlet工作流程图d)服务器将响应信息返回至客户端。 JavaBean概述 JavaBean是Sun公司为了进入因特网、企业网以及万维网上进行分布式计算的组件结构入口。按照Sun公司的定义,JavaBean是一个可重复使用的软件部件。JavaBean体系结构是第一个全面地基于组件的标准模型之一,该组件是Java类,这些类遵循一个接口格

17、式,以便于使方法命名、底层行为以及继承或实现的行为能够把类看做标准的JavaBean组件的方式进行构造13,14。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速生成新的应用程序。JavaBean具有以下特点:a)可以实现代码的重复利用。b)易维护性、易使用性、易编写性。c)可以在Java的任何平台上工作,不需要重新编译。d)可以在内部网或者网络之间进行传输。e)可以以其它部件的模式进行工作。JavaBean在JSP程序中常用来封装事务逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。2.2 J

18、SP网站开发模式目前,JSP技术已经成为一种受大多数大型企业或中小型企业喜爱的动态网页开发技术。越来越多的技术人员也逐步成为JSP技术的推崇者。JSP技术正是利用了Java的“一次开发,处处使用”的性能,成为了网站开发技术人员的首选技术。当然,JSP技术的最大优势在于能够将页面的表现形式和页面的商业逻辑分开15,16。JSP网站开发技术标准提供了两种开发模式:一种是JSP+JavaBean开发模式;一种是JSP+Servlet+JavaBean开发模式。JSP+JavaBean模型图如图2.2所示。图2.2 JSP+JavaBean模型图在这种模型中,JSP页面独自响应请求并将处理结果返回给客

19、户,所有的数据通过JavaBean来处理,JSP实现页面的显示。此模型常常会导致页面被嵌入大量的脚本语言或者Java代码段,当处理大型业务时,页面程序将变得异常复杂给开发和维护带来困难17。JSP+Servlet+JavaBean模型图如图2.3所示。图2.3 JSP+Servlet+JavaBean模型图Servlet技术是一种采用Java技术来实现CGI功能的一种技术。Servlet是运行在Web服务器上,用来生成Web页面。Servlet技术非常适于服务器端的处理和编程。在此种开发模式中,JSP技术用来显示页面,该页面中没有任何的商业处理逻辑,通过Servlet技术来完成大量的事物处理工

20、作。Servlet用来处理事务的请求,充当着一个控制者的角色,并负责向客户发送请求,创建JSP需要的Bean和对象,根据用户的请求行为,决定将哪个JSP页面发送给用户。从上面两种开发模式来说:第二种模式要好些,更适合于团队开发,速度相对较慢,但是可维护性高。2.3 开发工具开发本系统用到的工具有MyEclipse、Tomcat服务器、SQL Server2008数据库,下面对这些工具做了简介。 MyEclipse简介MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。

21、MyEclipse目前支持Java Servlet, AJAX, JSP, JSF, Struts, Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具18。2.3.2 Tomcat简介如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求。因此需要一个交互式的Web,于是便诞生了各种Web语言。如Asp,Jsp,Php等。当然,这些语言与传统的语言有着密切的联系,如Php基于C和C+语言,Jsp基于Java语言。Tomcat即是一个Jsp和Servlet的运行平台。T

22、omcat是一个免费的开源的Serlvet容器,是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。2.3.3 SQL Server简介SQLServer2008作为Microsoft家庭的重要成员,是基于客户机/服务器的大型关系数据库网站。SQLServer2008这种关系型数据库网站能够满足各种类型的企业客户和独立软件供应商构建商业应用程序的需求,根据客户的反映和需求,是大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库平台19。SQL Server 2008 具有以下特点:(1)强大可伸缩性。(2)支持大型

23、Web站点或企业信息处理网站。(3)客户机/服务器体系结构。而数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。各部件之间的关系如图2.4所示:应用程序ODBC管理器ODBC API sql驱动程序管理器数据源名(DSN)ODBC驱动程序数据源ODBC层数据层应用层图2.4 数据库连接的实现3 需求分析需求分析工作是软件生存周期最重要的一个环节。需求分析的基本任务是要确定系统必须完成哪些工作,并提出完整、准确、清晰、具体的要求。需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此,必须准确完整地体现用户的要求。要体现用户的要求,就必须从以下几个方面进行分析。3

24、.1 功能需求概述经参考现有的几大博客网站如QQ空间,新浪博客等,本系统采用Browser/Server结构,将个人博客系统划分为两个模块:前台模块和后台模块。下面分析各个模块的功能需求。一、前台模块在前台的功能实现上,可以分为以下几个部分。(1)用户登录:用户用个人注册的帐号,密码登录到系统。系统检测用户的帐号,密码并给予其相应的权限对系统进行操作。(2)用户注册:访客将个人的信息存储到博客系统的数据库中,以成为本博客的正式用户。(3)用户修改个人信息:把已存储的用户信息用一个网页显示出来,方便用户对个人信息进行更新。(4)文章查询和留言:用户可以浏览博客中的文章同时给感兴趣的文章评论。(5

25、)公告信息查询:用户可以浏览网站中发布的公告信息,了解博客的一些情况。(6)相片查询:用户可以对博客中的相片,图片等进行查询,浏览。(7)游客投诉:用户可以借助微软开发的OutlookExpress方便地进行言论监督。(8)网站访问统计量:可以查看总的访问统计量和当日访问统计量。(9)投票:用户可以通过该链接支持博主发起的投票,并且可以查看投票结果。(10)友情链接:用户可以通过该链接查看相关内容。(11)朋友信息:用户可以查看博主的好友及其相关信息。二、后台模块通过计算机网络将前台与后台的数据库相连,网站管理员将从前台得到的信息进行处理,实现文章管理,公告管理,投票管理,个人相册管理,朋友管

26、理,用户设置及博主设置等子网站。(1)文章管理:博主可以添加新文章,对已有的文章进行修改和删除,还可以查看文章回复。(2)公告管理:发布,删除,更改公告。(3)投票管理:添加投票内容,统计票数,删除投票内容。(4)朋友管理:对朋友信息进行添加,删除和修改。(5)个人相册管理:对博客相册中的图片进行添加,删除和修改。(6)用户设置:对普通用户的信息进修查询,删除。(7)博主设置:对博主的信息进行修改。3.2 系统总体功能结构博客系统前台查看博主信息查看用户信息修改用户信息相册查询文章查询用户投票用户投诉友情链接朋友查询公告查询当日访问量总的访问量访问量文章详细查询文章内容回复图3.1 个人博客系

27、统前台功能结构博客系统后台博客文章管理个人相册管理公告管理投票管理朋友信息管理公告添加相册添加相册设置发表博客文章朋友信息添加文章分类朋友信息设置博主信息设置投票内容设置设置内容添加公告设置用户设置博客文章设置图3.2 个人博客系统后台功能结构4 系统概要设计4.1 数据库设计E-R图为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。描述了从用户角度看到的数据,反映了用户的现实环境。最常用的表示概念性数据模型的方法,是实体联系方法(EntityRelationship Approach)。这种方法

28、用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。(1)文章实体,具体属性如图4.1所示。文章类型ID文章题目文章内容文章文章访问次数文章发布时间文章ID图4.1 文章实体(2)文章类型实体,具体属性如图4.2所示。文章类型描述 文章类型文章类型名称 文章类型ID 图4.2 文章类型实体(3)文章回复实体,具体属性如图4.3所示。回复ID 文章ID文章回复回复用户 回复标题 回复内容 图4.3 文章回复实体(4)用户实体,具体属性如图4.4所示。 用户用户ID用户名用户密码用户姓名邮箱地址用户兴趣用户性别用户等级QQ号码图4.4 用

29、户实体(5)公告实体,具体属性如图4.5所示。 公告公告ID公告内容公告发布时间公告题目图4.5 公告实体(6)朋友实体,具体属性如图4.6所示。朋友朋友ID朋友描述朋友昵称QQ号码图4.6 朋友实体个人相册相片上传时间相片描述相片上传地址相片ID(7)个人相册实体,具体属性如图4.7所示。图4.7 个人相册实体投票票数投票内容投票ID(8) 投票实体,具体属性如图4.8所示。图4.8 投票实体(9) 访问量实体,具体属性如图4.9所示。访问量访问数量访问时间访问ID图4.9 访问量实体(10)个人博客系统的总E-R图,如图4.10所示。管理博主用户文章类型评论投票管理1分类包含发表111n1

30、nnmqm1n图4.10 个人博客系统的总E-R图4.2 逻辑结构设计一个设计良好的数据库,可以使网站的实现变得非常的简单。同时,也可以使网站的执行速度变得很快。反之,一个设计混乱的数据库,不仅增加了吸引的管理实现过程,同时在网站的执行过程中,使得检索变得很慢,降低效率。所以数据库的设计是一个网站设计很重要的步骤。根据网站功能设计要求和模块划分,本站的数据库主要有文章信息、文章类型信息、文章回复信息、用户信息、公告信息、朋友信息、个人相册信息、投票信息、访问统计信息。数据库的设计通常是以一个已经存在的数据库管理网站为基础的,常用的数据库管理网站有Access、SQL Server、Oracle

31、、My SQL等。根据用户需求和网站分析,本网站采用SQL Server2008数据库管理网站。在SQL Server2008数据库管理网站中建立名称为在myblog的数据库20,21。(1)文章信息表(artical)该表记录了文章的相关信息,包括文章编号、文章类型编号、文章题目、文章内容、文章发布时间、文章访问次数,其结构如表4.1所示。表4.1 文章信息表(artical)字段说明类型(长度)能否为空备注Id文章编号IntNo主键typeID文章类型编号IntNo外键Title文章题目varchar(30)YesContent文章内容varchar(2000)YesphTime文章发布时

32、间varchar(30)YesNumber文章访问次数IntYes(2)文章类型信息表(articalType)该表记录了文章类型的相关信息,包括文章类型编号 、文章类型名称、文章类型描述,其结构如表4.2所示。 表4.2 文章类型信息表(articalType)字段说明类型(长度)能否为空备注Id文章类型编号Intno主键typeName文章类型名称varchar(50)yesdescription文章类型描述varchar(50)yes(3)文章回复信息表(reply)该表列出了文章回复的相关信息,包括文章回复编号、文章编号、文章回复用户、文章回复标题、文章回复内容,其结构如表4.3所示。

33、表4.3 文章回复信息表(reply)字段说明类型(长度)能否为空备注id文章回复编号IntNo主键articleId文章编号IntNo外键reAccount文章回复用户varchar(50)YesreTitle文章回复标题varchar(50)YesreContent文章回复内容ntext(16)Yes(4)用户信息表(consumer)该表列出了用户的相关信息,包括用户编号、用户名、用户密码、用户姓名、用户性别、QQ号码、用户主页、用户兴趣、邮箱地址、用户等级,其结构如表4.4所示。表4.4 用户信息表(consumer)字段说明类型(长度)能否为空备注Id用户编号Intno主键Accou

34、nt用户名varchar(10)yesPassword用户密码varchar(10)yesName用户姓名varchar(50)yesSex用户性别char(5)yesQQNumberQQ号码IntyesmainPage用户主页varchar(50)yesInterest用户兴趣varchar(50)yeseMail邮箱地址varchar(50)yesmanageLevel用户等级varchar(10)yes(5)公告信息表(discuss)该表记录了公告的相关信息,包括公告编号、 公告题目、公告内容、公告发布时间,其结构如表4.5所示。表4.5 公告信息表(discuss)字段说明类型(长度

35、)能否为空备注Id公告编号IntNo主键discussTitle 公告题目varchar(30)YesdiscussContent公告内容Varchar(1000)YesdiscussTime公告发布时间varchar(50)Yes(6)朋友信息表(friend)该表列出了朋友的相关信息,包括朋友编号、朋友昵称、 QQ号码、朋友描述,其结构如表4.6所示。表4.6 朋友信息表(friend)字段说明类型(长度)能否为空备注Id朋友编号Intno主键Name朋友昵称varchar(20)yesQQNumberQQ号码varcahr(20)yesdescription朋友描述varchar(50)

36、yes(7)个人相册信息表(photo)该表列出了个人相册的相关信息,包括相片编号、相片上传地址、相片描述、相片上传时间,其结构如表4.7所示。表4.7 个人相册信息表(photo)字段说明类型(长度)能否为空备注Id相片编号Intno主键photoAddress相片上传地址varchar(50)yesphotoDescription相片描述varchar(50)yesphotoTime相片上传时间varchar(30)yes(8) 投票信息表(vote)该表列投票的相关信息,包括投票编号、投票内容、票数,其结构如表4.8所示。表4.8 投票信息表(vote)字段说明类型(长度)能否为空备注I

37、d投票编号Intno主键voteName投票内容Varchar(20)yesvoteNumber票数Intyes(9)访问统计表(visitorcounter)该表列访问统计的相关信息,包括访问编号、访问日期、访问数量,其结构如表4.9所示。表4.9 访问统计表(visitorcounter)字段说明类型(长度)能否为空备注Id访问编号Intno主键Vdate访问日期nvarchar(50)noVnum访问数量Intno4.3 数据流图数据流图分析主要包括对信息的流动、传递、处理、存储等的分析。数据流图分析的目的就是要发现和解决数据流通中出现的问题22。现有的数据流图分析是通过分层的数据流程图

38、(data flow diagram,简称DFD)来实现的。其具体的做法是:按照网站的设计理出的业务流程顺序,绘制成一套完整的数据流图23。网站运行过程中,主要涉及到两部分的数据流向,博客的顶层DFD图,如图4.11所示。用户个人博客系统结果反馈博主管理信息页面信息请求信息图4.11 博客系统顶层DFD将顶层DFD分解得博客网的第二层DFD,博主进入后台可以进行相应的管理,访客注册成为用户后,可以查看博主发布的相关信息24,如图4.12所示。用户信息表相册信息表投票信息表投票管理朋友管理相册管理用户管理查看相片修改个人信息查看朋友进行投票文章信息表公告信息表文章回复表博主朋友信息表文章分类表公

39、告管理文章回复管理文章管理文章类型管理进入后台查看文章查看文章类型回复文章查看公告进入前台用户查看博主信息博主管理用户信息表查看统计量访问表查看统计量图4.12 博客系统第二层DFD5 详细设计与实现在概要设计阶段,我们已经确定了该网站的总体结构,给出了博客网站中各个模块的功能25。接下来的任务就是进行详细设计,详细设计阶段的任务,就是要在上述工作的基础上,确定应该怎样具体地实现所要求的系统。5.1 公共模块的设计与实现为了实现本网站需要的公共模块有数据库连接及操作类、字符串处理类、对Servlet进行系统配置。 数据库连接及操作类的编写本次使用SQL Server 2008数据库。安装完SQ

40、L Server 2008 JDBC Driver,就可以编写与数据库连接的类。JDBConnection.java中不仅提供了数据库的连接,还有根据数据库获取的Statement和ResultSet等,com.wy.tool.JDBConnection类封装了关于数据库的各项操作,关键代码如下。public class JDBConnection private final String url = jdbc:sqlserver:/localhost:1433;DatabaseName=myblog; private final String userName = sa; private f

41、inal String password = zhf0219; private Connection con = null; static try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance(); catch (Exception ex) System.out.println(数据库加载失败); 字符串处理类的编写使用JSP开发网站经常要过滤一些特殊字符或转换一些字符,这些功能通常都需要编写一个独立的类来完成,本网站中通过编写名为Chinese的类来实现字符的过滤和转换。public class

42、 Chinese public static String toChinese(String strvalue) try if (strvalue = null) return ; else strvalue = new String(strvalue.getBytes(ISO8859_1), GBK); return strvalue; catch (Exception e) return ; 系统配置本网站是采用Servlet和JavaBean结合技术开发的。JavaBean技术实现对数所谓中的操作不需要在XML文件中进行任何的配置,而正常运行servlet程序还需要进行适当的配置,配置文

43、件为web.xml26。关键代码如下。ConsumerServletcom.wy.webiter.ConsumerServlet.ConsumerServlet/ConsumerServlet5.2 用户登录模块的设计与实现 用户登录模块概述用户登录模块具有用户登录功能。博客系统运行的第一个页面便是用登录页面。用户登录后可以查看博主发表的文章。在用户登录页面中,在“用户名”与“密码”的文本框中输入用用户名和密码后,单击“登录”按钮,网站验证成功后,用户将以用户的身份进入博客网首页,之后在网站中可以随意查看博主发布的文章。如果登录的用户就是博主本人,在博主信息显示区域中,则出现“进入后台”超链接

44、,博主可以直接单击此超链接,进入博客网的后台进行管理。用户登录模块的流程图如图5.1所示。开始用户登录是否通过验证显示“进入后台”的超链接(博主)开始不显示“进入后台”的超链接(普通用户)是否为博主NYNY图5.1 用户登录模块的流程图 用户登录模块技术分析 在用户登录模块中,涉及的数据表是用户信息表(consumer),在用户信息表中保存着用户名和密码等信息,根据这些信息来创建登录模块的form,名称为ConsumerForm。 Servlet核心在于它的HttpServlet,一般在Servlet里面做页面的逻辑跳转工作。用户登录功能模块的Servlet实现类继承了HttpServlet类

45、,在该类中首先设置用户登录模块的ConsumerDao类的对象,该对象在每个具体的方法中实例化,doGet()在Servlet中自动被调用。该方法本身没有具体的事务,是根据通过HttpServletRequest的getParameter()方法获取的method参数值执行相应的方法的。 用户登录模块实现过程 用户登录模块是博客系统最先使用的功能,是系统的入口。在用户登录页面中,用户可以通过输入正确的用户名和密码进入,当用户没有输入用户名和密码时,系统会通过JavaScript脚本进行判断,并给予提示信息。用户登录页面如图5.2所示。图5.2 用户登录页面在登录模块中需要判断登录用户是否为博主

46、。普通用户身份验证成功后,在博客网的首页将显示该用户的信息;如果博主登录后,则在博主显示区域中显示“进入后台”超链接。当用户验证成功后,用户对应的form信息和用户登录级别信息将保存在session对象中,程序员将根据保存在session对象中的form信息和用户登录级别信息(manageLevel)来判断登录的用户是否为博主。5.3 前台模块的设计与实现 前台页面的设计与实现(1) 前台页面概述在前台页面设计中,首先将管理员发布的最新文章展现给用户,然后提供文章的分类、显示博主的信息、显示最新公告及博客网导航区功能等功能。博客系统面向用户客户端的流程图如图5.3所示,前台页面运行效果图如图5

47、.4所示。是否存在此用户进入主页面注 册修改个人信息文章查询、 评论公告查询相册查询投票YN开 始用户登录安全退出图5.3 面向用户客户端的流程图图5.4 前台首页运行效果图(2) 前台首页技术分析 在如图5.3所示首面中的显示博主的基本信息、显示登录用户信息、显示博客的主要功能、显示博主的朋友圈等功能,并不是只存在于首页中,其他功能模块的子页面中也需要包括这些部分。因此,可以将这几个部分分别保存在单独的文件中,这样在需要放置相应功能时只需包含这些文件即可,如图5.5所示。head_top.jspHead_consumer.jsphead_right.jsphead_main.jsphead_

48、down.jsp图5.5 前台页面布局 在JSP页面中包含文件有两个方法:一种是就用指令实现,另一种是应用动作元素实现。本网站使用的是动作元素,该动作元素用于向当前页面中包含其他的文件,这个文件可以是动态文件也可以是静态文件。 文章查询模块设计与实现(1) 文章查询模块概述文章查询模块的主要功能是用户在浏览网站时查看发表的文章列表详细内容,包括文章的题目、发布时间、该文章的浏览次数等,并可以针对发表文章进行回复。这是博客最具代表性的特点之一。它给博主和用户提供展示文笔的平台,增加博主与用户、用户与用户之间的交流,能够使博客网站内的气氛更加活跃,内容更加丰富。前台文章查询模块主要包括所有文章查询

49、、文章分类查询、文章内容详细查询及文章回复功能。(2) 文章查询模块技术分析在本网站中,前台文章查询模块主要应用的是JavaBean技术,应用动作标签创建并使用一个JavaBean。执行方式非常灵活,如果执行,将去寻找是否存在相同ID和scope。语法如下。的属性说明如表5.1所示。表5.1 属性属性描述Id该属性关联指定范围的实例化对象,该对象区分大小写Scope对象的生命周期,范围选项为page、request、session及applicationClass指定实例化类的路径(3) 文章分类查询实现过程当用户登录后,在系统的首页右侧操作区中单击“文章”超链接,网页会自动弹出一个URL,即

50、head_ArticleList.jsp,将分类显示文章的信息,在该页面中,首先通过javabean定义分页操作的类(MyPagination),之后调用ArticleDao类中的queryArticle()方法查询所有的文章信息,最后将查询的结果显示在页面中,如图5.6所示。图5.6 前台分类显示文章信息 系统访问统计量模块设计与实现访问统计量模块的主要功能是在浏览网站时可以查看总的访问统计量和当日访问量,包这是网站的最具代表性的特点之一。通常网站访问的数据是放在一个文件中的,通过文件的读写操作,在需要显示的页面中显示出来。但本次设计是将页面分割成几部分,然后通过JSP中的动作元素将需要显示

51、的页面加载到前页面中。此次是将访问量放在右侧,点击页面各种超链接时都会不断刷新右侧界面,即使使用了防刷新技术但仍无法实现此功能。本次设计是当用户登录时先判断用户等级,对于普通用户则先通过调用addCount()方法实现数据库数据更新,然后调用VisitorcounterDao类中的getCount ()、getAllCount()方法查询当天访问量和总访问量,并将结果存放在session中,最后页面通过读取session中的结果显示在页面中。5.4 后台模块的设计与实现后台模块设计中首先介绍了页面的设计,对它的功能子模块,包括文章管理,相册管理,公告管理,用户管理等,功能基本相似,在此详细介绍了相册管理模块的设计与实现。 后台页面的设计与实现在博客系统的后台首页设计中,首先将管理员常用的功能显示在网面的操作区域中,然后将后台的主要功能显示在网站的左侧区域。博客系统面向博主的流程图如图5.7所示,后台运行界面如图5.8所示。开 始用户登录是否为博主博客系统前台博客系统后台博客文章管理博主信息管理公告管理投票管理安全退

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论