已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档JSP博客网站系统(论文)摘 要博客信息管理系统致力于为广大用户提供优质的互动交流平台,提高网站的知名度和访问量,从而获得为企业提供更多产品介绍及展示的机会,提升自己网站的价值。为了满足博客信息管理系统的要求,实现系统静态与动态页面的相互分离,系统采用JSP+JavaBean+Servlet和SQL Server2000数据库相结合的开发模式。论文首先论述了系统的开发背景和设计目标,并对系统开发所采用的技术进行相应的简单介绍。在系统分析中,对系统的模型进行简单分析,明确系统的操作流程,并对系统进行可行性分析,确定在目前的条件下,开发博客信息管理系统是可行的。在需求分析结果的基础上,对系统的功能模块进行划分。接着对系统中的数据库进行模型设计,包括数据流图、实体联系图及数据表结构。在系统的设计与实现中,确定系统的开发思想以及开发环境,并对系统中的JavaBean和Servlet代码进行设计。最后给出了系统中模块的详细设计与实现,并对系统模块涉及到的关键源代码进行了详细的分析。经过调试运行后表明,系统可以满足用户创建个人博客的各项要求。关键词:MVC,设计模式,知识共享,博客信息管理系统ABSTRACTThe blog information management system is concentrates on high-quality interactive exchanges platform for a large number of users, increasing the visits and making the website more and more famous, thereby can acquiring for the opportunity that business enterprise providing more introductions and shows of products, promoting the value of the website.Satisfy for the functions of blog information management system, achieving the systems static page separate with dynamic page mutually, using JSP+ JavaBean+ Servlet with the mode of development that the database of SQL Server2000 combine together.The paper discusses the background of development of the system and the design of the target first, and introduces the tecknique which used to develop simply.In the analyse of system, proceeded the simple analysis to the model of the system, made sure the operation process of the system, proceed the analyse to the system, ensure that under the current term, developing blog information management system is feasible. At the foundation of requirement with the analyse result, proceeding the providing of the function module of the system. Follow, designing the database model, including the data flow diagram, entity relation diagram and data tables. during the design and realization of the system, making sure the development thought of the system and install the environment of development,at last show the design details with realize finally an a key for of detailed design with realization, and analyzed the program which relate to the system module. After debugging and running ,it shows that the system can satisfy with users to create personal blog.Keywords: MVC,Design Patterns,Knowledge sharing,The Blog Information Management System目 录第1章 绪论 11.1 博客信息系统概述 11.2 博客发展趋势 21.3 系统开发的背景 21.4 技术路线 31.5 系统设计目标分析 3第2章 基本技术方案 42.1 JSP中的各种技术 42.1.1 JSP概述 42.1.2 SERVLET概述 42.1.3 JAVABEAN概述 52.2 基于B/S的WEB应用体系结构 52.2.1 传统的两层体系结构 52.2.2 三层体系结构 62.2.3 JSP网站开发模式 62.3 ECLIPSE简介 72.4 TOMCAT简介 72.5 SQL SERVER简介 82.6 MVC设计模式 8第3章 系统分析与总体设计 103.1 系统需求分析 103.1.1 用户需求分析 103.2 数据分析 113.3 系统流程 113.4 功能模块划分 143.5 功能模块介绍 153.5.1 博客注册登录管理模块 153.5.2 博客及文章检索查询模块 153.5.3 博客页面显示模块 163.5.4 博客个人维护管理模块 16第4章 系统详细设计 174.1 数据库分析 174.1.1 数据库设计E-R图 174.2 系统数据表设计 204.3 数据连接 23第5章 系统功能的具体实现 245.1 系统的主窗口 245.2 公共核心类的设计 265.2.1 数据库相关 265.2.2 编写JAVABEAN类 285.2.3 管理类设计 295.3 系统主要功能模块详述 315.3.1 博客管理员登陆模块 315.3.2 日志管理显示模块 325.3.3 撰写日志模块 355.3.4 删除日志模块 365.3.5 修改日志模块 385.3.6 日志搜索模块 39结 论 40参考文献 41致 谢 42第1章 绪论1.1 博客信息系统概述“博客”(Blog或Weblog)一词源于“Web Log(网络日志)”的缩写,是一种十分简易的傻瓜化个人信息发布方式。任何人都可以像使用免费电子邮件一样,完成个人网页的创建、发布和更新。博客就是开放的私人空间,可以充分利用超文本链接、网络互动、动态更新等特点,在网络中,精选并链接全球互联网中最有价值的信息、知识与资源;也可以将个人工作过程、生活故事、思想历程、闪现的灵感等及时记录和发布,发挥个人无限的表达力;更可以以文会友,结识和汇聚朋友,进行深度交流沟通1。“博客”当然是个大家都陌生的名词,博客的英文名词就是“Blog或Weblog”(指人时对应于Blogger),是一个典型的网络新事物,查阅最新的英文词典也不可能查到。该词来源于“Web Log(网络日志)”的缩写,特指一种特别的网络个人出版形式,内容按照时间顺序排列,并且不断更新。博客是一种零编辑、零技术、零成本、零形式的网上个人出版方式。博客概念一般包含了三个要素(当然,也不需要局限这些定义):(1)网页主体内容由不断更新的、个性化的众多日志组成。(2)按时间顺序排列,而且是倒序方式,也就是最新的放在最上面,最旧的放在最下面。(3)内容可以是各种主题、各种外观布局和各种写作风格,但是文章内容以“超链接”作为重要的表达方式。因此,博客是个人性和公共性的结合体,其精髓不是主要表达个人思想,不是主要记录个人日常经历;而是以个人的视角,以整个互联网为视野,精选和记录自己在互联网上看到的精彩内容,为他人提供帮助,使其具有更高的共享价值。博客精神的核心并不是自娱自乐,甚至不是个人表达自由,相反,是体现一种利他的共享精神,为他人提供帮助。个人日记和个人网站主要表现的还是“小我”,而博客表现的是“大我”。也许形式上很接近,但内在有着本质的差异。所有优秀博客网站中,真正表达作者个人的内容非常有限,最多只是点缀,而不像个人网站那样是核心。1.2 博客发展趋势趋势一:博客现在正在形成个人的信誉机制,有了博客之后就确立了一个个人虚拟身份,简单的来讲就是个人在互联网上是有名有姓的,而不再是一种匿名的行为,网民从流浪汉变成了一个定居者。以前在互联网上的各种行为都是在匿名状态中,相互之间是不认识的,但有了博客之后可以天天关注,而别的人也可以通过博客找到这个人。这样随着时间的积累就会产生一个新的东西,概括叫做“个人的信誉”,个人的信誉就是博客和博客之间发展各种关系的组合,这种信誉对每个人来讲可能是不同的,但对每个博客来讲就产生了新的评价机制,这个机制将是博客商业化的一个前提条件。趋势二:博客越来越呈现出富媒体化,早期的博客是以文字为主,但随着多媒体发展博客相册、博客图片已经成为博客的基本配置,而现在许多博客网站已经提供了博客音频和博客视频。趋势三:博客现在正在形成并完善精选机制,博客作为自媒体和个人媒体,产生的信息非常巨大。其中难免产生信息垃圾,随着博客的发展,博客通过精选机制精选出大家喜闻乐见的信息,像国内网摘、博客的评价系统等2,3。1.3 系统开发的背景博客的精神是:自由表达,开放宽容,个性张扬,专业精神。在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不断的把自己以前的和每天激发的一些想法或者感受整理放在自己的博客上,每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天上留下了一道浅浅的思考和划痕。不仅如此,通过写博客、记录自己的想法可以帮助实现如下这些目的:(1)记录生活,在自己的每一天上留下思考的划痕。 (2)整理思路,固化知识,获得更多更好的想法。 (3)分享,将自己的想法、经验与人分享。(4)交流、提高,通过交流产生更多的思维火花,相互提高。 (5)交友,互相鼓励,一路同行。 如果说博客网站是一个舞台,那么所有的博客都是其中的舞者,把自己有价值的真实的一面展示在网络世界中,相互交流沟通; 如果博客仅仅为了写日志,那么博客是一面镜子,镜子中展现的是真实的自己;如果博客是一个自由媒体,可以把自身感觉有价值的信息通过博客这个工具发布,与网友共享。1.4 技术路线本系统的开发采用的是JSP+JavaBean+Servlet模式,在该模式中,结合了JSP和Servlet技术,充分利用了JSP和Servlet两种技术原有的优点。在此模式中,JavaBean作为模型的角色,充当JSP和Servlet通信的中间工具,Servlet处理完后设置JavaBean的属性,JSP读取此JavaBean的属性,然后进行显示。该模式更加明显地把显示和逻辑分离,使得代码更容易管理,适合大型项目的开发4。1.5 系统设计目标分析本系统是用JSP实现的一个完全基于浏览器的博客系统,任何注册个人博客的人都拥有以下功能:(1)登录博客系统的后台管理平台。(2)更改博客账号的基本信息。(3)撰写日志。(4)日志管理。(5)评论管理。(6)留言管理。博客访问者具有以下功能:(1)浏览博客系统中的日志、留言、评论。(2)发表评论及留言。(3)检索日志。第2章 基本技术方案 2.1 JSP中的各种技术2.1.1 JSP概述JSP即Java Server Pages,是由Sun Microsystem公司于1996年6月推出的新技术,是基于Java Servlet以及整个Java体系的Web开发技术。JSP已经成为开发Web动态网页重要、快速和有效的工具,是全新的网络服务器编程环境。JSP充分利用了Java的强大功能,是一种优秀的服务器端技术。随着Java技术的日益成熟和流行,JSP在网络编程中也变得越来越重要。JSP基于强大的Java语言,具有极强的扩展能力,良好的缩收性,以及与平台无关的开发特性,成为构建动态网站的主流技术之一,JSP有着其他技术所不具备的优势。其优势在于:可以将内容的生成和显示进行分离、生成可重用的组件、采用标识简化页面开发。JSP能提供所有Servlet的功能5。2.1.2 Servlet概述Servlet是Java编写的服务器端程序,是由服务器端执行和调用的Java类。Servlet是采用Java技术来实现CGI功能的一种技术,能够像CGI一样动态地扩展Web服务器的功能,并采用请求响应模式提供Web服务。Servlet和CGI一样都是运行在Web服务器上,用来生成Web页面。Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。其工作流程图如图2.1所示。图2.1 Servlet工作流程图Servlet工作流程:(1)客户端发送请求信息至服务器。(2)服务器将请求信息发送至Servlet。(3)Servlet生成响应内容并将其传给Servlet。响应内容动态生成,通常取决于客户端的请求。(4)服务器将响应信息返回至客户端。2.1.3 JavaBean概述JavaBean是Sun公司为了进入因特网、企业网以及万维网上进行分布式计算的组件结构入口。按照Sun公司的定义,JavaBean是一个可重复使用的软件部件。JavaBean体系结构是第一个全面地基于组件的标准模型之一,该组件是Java类,这些类遵循一个接口格式,以便于使方法命名、底层行为以及继承或实现的行为能够把类看做标准的JavaBean组件的方式进行构造7。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速生成新的应用程序。JavaBean具有以下特点:(1)可以实现代码的重复利用。(2)易维护性、易使用性、易编写性。(3)可以在Java的任何平台上工作,不需要重新编译。(4)可以在内部网或者网络之间进行传输。(5)可以以其它部件的模式进行工作。JavaBean在JSP程序中常用来封装事务逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。2.2 基于B/S的WEB应用体系结构2.2.1 传统的两层体系结构在Web发展的初期,Web应用主要是通过静态页面在Internet上发布信息。用户通过浏览器向服务器发送请求,服务器接收用户端的请求,向客户端浏览器发送所请求的页面。在这种结构下,网站上的页面是静态的,无法根据用户的实际使用情况做动态的变化。网站的信息提供者通过更新服务器上的网页来向用户提供最新的信息。用户和浏览器之间只有有限的交互,而网站和用户之间几乎没有交互。2.2.2 三层体系结构三层体系结构图如图2.2所示。图2.2 三层体系结构图CGI,ASP,PHP等技术的出现,使得开发动态交互式的Web应用得以实现。用户通过浏览器向服务器发送请求,Web服务器接收客户端发送来的请求,对请求进行分析,如果请求是静态页面,那么就将所请求的页面发送到客户端;如果请求的是动态页面,那么就执行此动态页面,并将执行结果发送给客户端。动态页面中的脚本程序可以和数据库服务器进行交互。Web服务器可以根据用户的请求动态更新页面上的信息,Web信息提供者可以通过改变数据库中的数据向用户提供最新信息,而不需要逐个更改页面。用户可以通过这些动态页面向数据库中输入信息,从而增强了用户和服务器之间的交互性。2.2.3 JSP网站开发模式目前,JSP技术已经成为一种受大多数大型企业或中小型企业喜爱的动态网页开发技术。越来越多的技术人员也逐步成为JSP技术的推崇者。JSP技术正是利用了Java的“一次开发,处处使用”的性能,成为了网站开发技术人员的首选技术。当然,JSP技术的最大优势在于能够将页面的表现形式和页面的商业逻辑分开。JSP网站开发技术标准提供了两种开发模式:一种是JSP+JavaBean开发模式;一种是JSP+Servlet+JavaBean开发模式8,9。JSP+JavaBean模型图如图2.3所示。图2.3 JSP+JavaBean模型图在这种模型中,JSP页面独自响应请求并将处理结果返回给客户,所有的数据通过JavaBean来处理,JSP实现页面的显示。此模型常常会导致页面被嵌入大量的脚本语言或者Java代码段,当处理大型业务时,页面程序将变得异常复杂给开发和维护带来困难。JSP+Servlet+JavaBean模型图如图2.4所示。图2.4 JSP+Servlet+JavaBean模型图Servlet技术是一种采用Java技术来实现CGI功能的一种技术。Servlet是运行在Web服务器上,用来生成Web页面。Servlet技术非常适于服务器端的处理和编程。在此种开发模式中,JSP技术用来显示页面,该页面中没有任何的商业处理逻辑,通过Servlet技术来完成大量的事物处理工作。Servlet用来处理事务的请求,充当着一个控制者的角色,并负责向客户发送请求,创建JSP需要的Bean和对象,根据用户的请求行为,决定将哪个JSP页面发送给用户。从上面两种开发模式来说:第二种模式要好些,更适合于团队开发,速度相对较慢,但是可维护性高6。2.3 Eclipse简介Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成10。2.4 Tomcat简介如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求。因此需要一个交互式的Web,于是便诞生了各种Web语言。如Asp,Jsp,Php等。当然,这些语言与传统的语言有着密切的联系,如Php基于C和C+语言,Jsp基于Java语言。Tomcat即是一个Jsp和Servlet的运行平台。Tomcat是一个免费的开源的Serlvet容器,是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成11。2.5 SQL Server简介Microsoft SQL Server 2000是微软所推出的一套在Windows平台上执行的功能强大的关系型数据库管理系统,用以作为应用程序的数据来源,存放各种数据,并可以让用户很容易地达成所要进行的数据存取操作。同时,也提供了一些可视化的管理工具,协助数据库系统管理者更方便快速地管理及设计数据库的内容,以及对数据库进行维护。SQL Server 2000不仅可以实现个人数据库的管理,更适合企业级数据库的应用12,13。2.6 MVC设计模式MVC模式的基本形式图如图2.5所示。图2.5 MVC模式的基本形式图MVC(Model-View-Controller)模式并不是J2EE行业人士标新立异的。MVC的核心就是要做到三级甚至多级的松散耦合,MVC模式将系统分为三个部分,分别是数据模型、视图和控制器,并定义了这三个部分之间实现通信的一种模式,使每个部分不必卷入到其他部分的状态表示和方法实现的细节中去。每个部分有自己的数据管理规则,各个对象之间的通信只能使用自己定义的一个受限连接集合进行。保持这种分离性通常是面向对象编程和设计要追求的目标,让各个对象只需专注于自己的事务。模型部分代表了商业数据的访问及修改数据的操作。当数据发生改变时,要负责通知视图部分,并且提供视图查询状态的能力。另外,还向控制部分提供应用功能。视图部分以自己的方式显示模型的内容。访问模型的数据,并且当模型的数据发生变化时更新模型的显示。视图还把从用户那里得到的信息传给控制部分。控制部分定义了应用的行为。分发用户请求和选择表现视图,还负责解释用户输入,进而调用模型的功能。在Web应用中,用户输入包括对Web级资源的HTTP、GET和POST请求。控制部分根据用户交互和模型的状态选择要显示的视图。一个应用程序一般为相关的功能选择一个控制部分14,15。第3章 系统分析与总体设计博客信息系统包括:前台信息显示系统、后台信息管理系统。前者是面向公众的一个窗口,通过前台信息显示系统方便访问者浏览日志、评论和留言;发表评论和留言。后者是后台信息管理系统,方便博客管理员发表日志;回复评论和留言;管理日志、评论、留言及个人信息 12。3.1 系统需求分析3.1.1 用户需求分析用例图用来描述系统与参与者之间的相互作用,与用例图相关的几个概念:(1)角色:代表了某一事件发生的参与者,用一个小人表示。(2)用例:代表系统可以实现的功能,通常一个用例代表一组功能,实质上规定了系统实现功能的范围。(3)用例图:当角色和用例发生某种关系时,就可以用一个图将它们关联起来,这就是用例图。博客信息管理系统用例图如图3.1所示。图3.1 博客信息管理系统用例图博客信息管理系统允许用户有三种身份:博客访问者、博客管理员及系统管理员。博客系统参与者中每种身份操作起来都很方便、快捷。博客访问者无需登陆就可以浏览信息、发表评论或留言;博客管理员注册后再登陆,就可以发布日志、管理个人主页;而博客管理员的基本信息都由系统管理员对其统一管理。3.2 数据分析本系统的用户主要是博客访问者和博客管理员,下面以博客前台展示系统中的用户查询日志为例进行说明。该过程的数据流程图如图3.2所示。图3.2 用户查询日志的数据流程图用户查询日志的数据流程:首先,用户输入需查找的关键字,然后提交表单数据,服务器接收到关键字后,根据关键字对日志标题进行模糊查询,处理后将结果以日志标题链接的形式显示给该用户,用户点击相应的链接就可以浏览日志内容。3.3 系统流程根据博客信息管理系统的特点,将其分为两大模块:前台用户浏览模块和后台用户管理模块。前台用户浏览模块主要用于用户浏览日志信息;后台用户管理模块主要用于博客管理员对个人博客网站的管理,如日志管理、留言管理及评论管理等。博客系统平台的前台用户浏览模块流程图如图3.3所示。图3.3 前台用户浏览模块流程图前台用户浏览模块主要用于用户浏览日志信息,用户浏览日志有三种浏览方式可以选择:一是直接点击日志标题链接进入日志显示页面浏览日志;二是点击博客主题链接进入该个人博客的首页,然后在该首页中选择所需的日志标题链接进入日志显示页面浏览日志;三是通过首页提供的搜索功能,搜索所需要的日志,然后在结果列表中选择所需的日志标题链接进入日志显示页面浏览日志。浏览日志的同时用户可以查看别人对该日志的评论,然后用户也可以对该日志发表自已的评论。博客系统平台的后台用户管理模块流程图如图3.4所示。图3.4 后台用户管理模块流程图用户进入后台管理平台,首先必需进行权限验证,防止未授权的用户非法登录。若未通过验证,则显示出错提示,并跳转到登录界面。若通过验证,则进入个人博客后台管理平台。用户可以浏览已发表的日志,并对其进行相应的操作如修改日志和删除日志;可以查看日志的评论信息并对其进行回复或者删除操作;可以发表新的日志;可以新建日志分类;可以浏览个人博客的留言信息并对其进行相应的操作如回复留言和删除留言;还可以对个人信息进行修改。3.4 功能模块划分前台模块功能结构如图3.5所示。图3.5 博客信息系统前台功能结构图后台模块功能结构如图3.6所示。图3.6 博客信息系统后台功能结构图3.5 功能模块介绍博客信息管理系统分为面向网络用户的前台及面向个人博客维护管理的后台,依据博客网站中所要实现的基本功能的设定,将所有功能分解为如下四个主要的功能模块来加以实现。用户以合法的用户名及密码登录,系统即可按该登录用户的权限分配操作模块。3.5.1 博客注册登录管理模块博客注册登录管理模块用于建立博客网站固定的客户群体,通过记录对应的博客档案,实现对博客信息的后台维护及管理,同时也便于通过博客档案库将网站最新动态及相关企业的信息方便地传达给每一位潜在的客户。该功能模块实现了以下几个子功能。(1)新博客在线注册。(2)博客登录管理。(3)跳转到博客主页。只有进行登录并通过身份验证的用户,才可以在个人博客页面发表日志,并借助个人设置实现对个人博客相关信息的管理维护。对于没有经过身份验证的网络用户不允许在博客页面中发表日志,更不允许对博客页面信息进行管理维护。该模块实现新博客的注册及登录验证功能。其中,注册新博客时会对用户输入的注册信息进行有效性验证,包括基本数据格式的有效性以及逻辑有效性,例如,用户名被占用时将及时给出提示。注册成功的博客登录时,会随时根据博客输入的登录信息进行提示,如用户名错误或者密码错误。3.5.2 博客及文章检索查询模块博客及文章检索查询模块为网络用户提供便捷的搜索,以及日志阅读浏览等功能,同时对日志的评论信息、博客推荐也能够及时反馈给网络用户。该功能模块实现了以下几个子功能。(1)热门博客页面推荐。(2)最新博客日志推荐。(3)日志信息关键字搜索。该模块能够在网页中随时提供在线的最新日志信息。该信息需要定期更新,网络用户可以随时获得最新日志以及最热门的博客推荐。在客户选择了某个博客或者某个感兴趣的日志后,可以方便地跳转到对应博客页面进行日志的阅读,并和博客进行交流互动。为了使网络用户尽快定位到所需的博客资料及日志信息,本模块提供了搜索功能,用户可以对所关注的日志信息按照标题进行关键字搜索,以避免用户浏览多个页面来寻找所需的日志信息。3.5.3 博客页面显示模块当网络用户进入某个人博客主页后,在该页面中将提供博客日志列表的显示,同时为了方便用户浏览,在该模块中提供根据分类名进行日志列表的显示,也提供日志评论的浏览,此外还允许用户在博客页面中发表评论及留言。该功能模块实现了如下几个子功能。(1)用户可以分页查看对应的日志内容及评论信息。(2)用户可以针对日志内容发表评论。(3)用户可以针对博客进行留言。(4)用户可以分类查看日志内容。在该模块中还提供了博客页面统计信息,日志、评论及留言信息分页显示等方便用户的显示效果。3.5.4 博客个人维护管理模块博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管理。该功能模块实现了如下几个子功能:(1)日志及日志分类管理。(2)评论及留言管理。(3)个人基本信息维护管理。借助该模块,用户可以随时对个人博客主页中的内容进行增加或修改,包括日志分类信息的更新、评论及留言管理等功能,也允许用户对博客的个人信息进行维护及其管理。第4章 系统详细设计4.1 数据库分析数据库是当前应用软件系统的重要组成部分,如何使基于数据库的应用系统安全、可靠、高效的运行一直是软件开发技术研究的难题。所以本系统的数据库设计基于以下几点来考虑:(1)数据库规范化与非规范化的考虑。(2)数据查询优化与索引的建立。(3)存储过程与视图。4.1.1 数据库设计E-R图为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。描述了从用户角度看到的数据,反映了用户的现实环境。最常用的表示概念性数据模型的方法,是实体联系方法(EntityRelationship Approach)。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。ER模型中包含“实体”,“联系”和“属性”。博客信息管理系统涉及的实体包括:(1)用户:用户ID、用户名称、用户密码、博客主题、说明、E-mail、注册日期、发表日志数。 (2)类别:类别编号、类别名、类别描述、用户ID。(3)日志:日志编号、日志标题、日志内容、类别编号、发表日期、最后修改日期、用户ID、浏览次数、评论数。(4)评论:评论编号、评论标题、评论内容、发表日期、最后回复日期、评论人、日志编号。(5)留言:留言编号、留言标题、留言内容、发表日期、最后回复日期、留言人、用户ID。综合本系统各子模块要实现的功能,通过前面对博客信息系统数据的分析可以得到:用户表、类别表、日志表、日志评论表、留言表的数据库概念模型(E-R图)。用户E-R图如图4.1所示。图4.1 用户E-R图日志类别E-R图如图4.2所示。图4.2 日志类别E-R图日志E-R图如图4.3所示。图4.3 日志E-R图日志评论E-R图如图4.4所示。图4.4 日志评论E-R图留言E-R图如图4.5所示。图4.5 留言E-R图4.2 系统数据表设计(1)用户表,此表主要用于保存用户的基本信息。其结构如表4.1所示。表4.1 用户表列名 含义 类型 长度 缺省值 允许空BlogID 用户编号 Int 4 无 否UserName 用户名 Varchar 20 无 否Password 用户密码 Varchar 20 无 否NickName 博客主题 Varchar 50 无 否Description 博客描述 Varchar 100 无 是Email 电子邮件 Email 50 无 否RegisterTime 注册日期 Datetime 8 无 否ArticleNum 发表的日志数 Int 4 0 否(2)日志表,此表主要用于保存日志的基本信息。其结构如表4.2所示。 表4.2 日志表列名 含义 类型 长度 缺省值 允许空ArticleID 日志编号 Int 4 无 否Title 日志标题 Varchar 50 无 否Content 日志内容 text 8 无 否CategoryID 类别ID int 4 无 否PublishTime 日志发表时间 Datetime 8 无 否LastModifyTime 日志最后修改时间 Datetime 8 无 否BlogID 用户ID Int 4 无 否ReadTimes 日志浏览次数 Int 4 0 否FeedBackNum 日志评论数 Int 4 0 否(3)日志评论表,此表主要用于保存日志评论的基本信息。其结构如表4.3所示。表4.3 日志评论表列名 含义 类型 长度 缺省值 允许空FeedBackID 评论编号 Int 4 无 否Title 评论标题 Varchar 20 无 否Content 评论内容 Text 8 无 否PublishTime 发表时间 Datetime 8 无 否UserName 用户名 Varchar 20 无 否ArticleID 日志ID Int 4 无 否(4)留言表,此表主要用于保存留言的基本信息。其结构如表4.4所示。 表4.4 留言表列名 含义 类型 长度 缺省值 允许空MessageID 留言编号 Int 4 无 否Title 留言标题 Varchar 20 无 否Content 留言内容 text 8 无 否PublishTime 发表时间 Datetime 8 无 否LastModifyTime 最后回复时间 Datetime 8 无 否UserName 用户名 Varchar 20 无 否BlogID 用户ID Int 4 无 否(5)类别表,此表用于保存日志类别的基本信息。其结构如表4.5所示。表4.5 类别表列名 含义 类型 长度 缺省值 允许空CategoryID 类别编号 Int 4 无 否Name 类别名 Varchar 20 无 否Description 类别描述 Varchar 100 无 是BlogID 用户编号 Int 4 无 否数据表在设计完成后,指定好各数据表主键、外键,通过SQL Server 2000企业管理器中提供的新建数据库关系统图即可自动生成表与表之间的关系图。各个关联表之间通过设置好的外键连接在一起。本系统具体的数据表之间关系图如图4.6所示:图4.6 数据表之间关系图4.3 数据连接目前流行的数据库连接技术主要有:JDBC-ODBC桥、JDBC和数据连接池技术。该系统采用数据连接池技术,使用连接池的优点主要体现在两个方面:对数据库的连接统一进行配置、管理、监控,以及对数据库连接池的参数进行优化调整,同时对应用程序中没有关闭或其他原因造成没有关闭的数据库连接由连接池统一进行管理。便于程序的移植和后端数据库的切换,因为在应用中通过统一的JNDI获得数据库的连接,而具体连接的是哪一台机器上的数据库与程序无关。数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接。这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。数据库连接池的主要操作如下:(1)建立数据库连接池对象(服务器启动)。(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。(3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。(4)存取数据库。(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。第5章 系统功能的具体实现5.1 系统的主窗口系统的界面按照常规的WEB界面进行设计,设计的原则是界面友好,易于操作,容易上手,尽可能的贴切用户实际。博客信息管理系统首页图如图5.1所示。图5.1 博客信息管理系统首页图所有的网络用户都可以进入该首页进行登录、注册、浏览等相关的操作。在页面的上方是博客信息管理系统的导航列表,图中显示的导航条包括登录、注册、博客列表、博文全览以及站务公告。在页面的左侧是热点博客,包括博客主题及其用户名;新入博客,包括博客主题;站内搜索条,用户可以根据日志标题进行搜索;最新评论列表,包括评论标题;最新留言列表,包括留言标题;站点的统计信息,包括博客总数,日志总数。在页面的中间则是精华日志和最新日志列表,包括用户名、日志标题、浏览次数和发表时间;页面的底部是版权说明信息。个人博客主页界面图如图5.2所示。图5.2 个人博客主页界面图所有的网络用户都可以进入某个人的博客主页进行浏览、留言等相关的操作。在页面的上方是个人博客日志的分类名列表,包括分类名及其该分类下的日志数量。在页面的左侧分别是登录表单,提供博客管理员进入后台管理页面;个人博客精华日志列表,包括日志标题;最新评论,包括评论标题;最新留言,包括留言标题;站点信息,包括个人日志总数、评论总数和留言总数。在页面的中间则分别是最新日志的列表,包括日志标题、所属分类名、发表时间、作者、部分日志内容及其查看日志和发表评论链接;发表留言表单,包括昵称、留言标题和留言内容。5.2 公共核心类的设计5.2.1 数据库相关访问数据库相关类如下:(1)获取数据源,其代码如下:public static Connection getConnection() try Context ctx = (Context)new InitialContext().lookup(Constants.ENV); DataSource ds=(DataSource)ctx.lookup(Constants.JDBC);getConnection()方法:该方法通过Context类提供的lookup()方法查找数据源,从而获得jdbc/blog数据源的引用,得到DataSource对象的引用后,就可以通过DataSource的getConnection()方法获得数据库连接对象。(2)连接数据库和操作数据库;代码如下: / 构造数据库的连接和访问类public DBConnect() throws Exception / 获得数据库连接对象 conn=DB.getConnection(); / 创建一个JDBC声明 stmt = conn.createStatement();/ 预设SQL语句public void prepareStatement(String sql) throws SQLException prepstmt = conn.prepareStatement(sql);/ 设置索引值位置的对应值public void setString(int index, String value) throws SQLException prepstmt.setString(index, value);public void setInt(int index, int value) throws SQLException prepstmt.setInt(index, value);/ 执行SQL语句并返回字段集public ResultSet executeQuery() throws SQLException if (prepstmt != null) return prepstmt.executeQuery(); else return null;DBConnect()方法:该方法主要负责获得数据库连接对象。prepareStatement(String sql)方法:该方法主要完成预设SQL语句,只有一个用来接收SQL语句的参数,如果SQL语句有误将抛出异常。setString(int index, String value)方法:该方法用于设置预设SQL语句中的相应字段值,index表示索引位置,value表示需设置字符串类型的值。setInt(int index, int value)方法:该方法用于预设SQL语句中的相应字段值,index表示索引位置,value表示需设置整型类型的值。executeQuery()方法:该方法用于执行预设的SQL语句。5.2.2 编写JavaBean类为每一个数据库表建一个JavaBean类,完成对该表字段的获取和设置。博客信息管理系统所用的JavaBean类列表如表5.1所示。表5.1 JavaBean类列表JavaBean类 说明Blog类 博客管理员表对应的JavaBean类Article类 日志表对应的JavaBean类CateGory类 类别表对应的JavaBean类FeedBack类 评论表对应的JavaBean类Message类 留言表对应的JavaBean类Feedback类的代码如下:public class Feedback / 属性,对应数据表中的字段名private int feedbackid;private String title; / 字段的访问和设置方法public int getFeedbackid() return feedbackid;public void setFeedbackid (int feedbackid) this. feedbackid = feedbackid;Feedback类:通过getFeedbackid()方法获取feedbackid属性的值,通过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论