版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z1 引言博客Blog或Weblog一词源于Web Log网络日志的缩写,是一种十分简易的傻瓜化个人信息发布方式。任何人都可以像使用免费电子一样,完成个人网页的创立、发布和更新。博客就是开放的私人空间,可以充分利用超文本、网络互动、动态更新等特点,在网络中,精选并全球互联网中最有价值的信息、知识与资源;也可以将个人工作过程、生活故事、思想历程、闪现的灵感等及时记录和发布,发挥个人无限的表达力;更可以以文会友,结识和会聚朋友,进展深度交流沟通1。博客当然是个大家都陌生的名词,博客的英文名词就是Blog或Weblog指人时对应于Blogger,是一个典型的网络新事物,查阅最新的英文词典也不可
2、能查到。该词来源于Web Log网络日志的缩写,特指一种特别的网络个人出版形式,容按照时间顺序排列,并且不断更新。博客是一种零编辑、零技术、零本钱、零形式的网上个人出版方式。博客概念一般包含了三个要素当然,也不需要局限这些定义:a网页主体容由不断更新的、个性化的众多日志组成。b按时间顺序排列,而且是倒序方式,也就是最新的放在最上面,最旧的放在最下面。c容可以是各种主题、各种外观布局和各种写作风格,但是文章容以超作为重要的表达方式。因此,博客是个人性和公共性的结合体,其精华不是主要表达个人思想,不是主要记录个人日常经历;而是以个人的视角,以整个互联网为视野,精选和记录自己在互联网上看到的精彩容,
3、为他人提供帮助,使其具有更高的共享价值。博客精神的核心并不是自娱自乐,甚至不是个人表达自由,相反,是表达一种利他的共享精神,为他人提供帮助。个人日记和个人主要表现的还是小我,而博客表现的是大我。也许形式上很接近,但在有着本质的差异。所有优秀博客中,真正表达作者个人的容非常有限,最多只是点缀,而不像个人那样是核心。1.1 系统开发的背景博客的精神是:自由表达,开放宽容,个性扬,专业精神。在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不断的把自己以前的和每天激发的一些想法或者感受整理放在自己的博客上,
4、每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对*个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。催促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样就能催促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天上留下了一道浅浅的思考和划痕。不仅如此,通过写博客、记录自己的想法可以帮助实现如下这些目的:a记录生活,在自己
5、的每一天上留下思考的划痕。b整理思路,固化知识,获得更多更好的想法。c分享,将自己的想法、经历与人分享。d交流、提高,通过交流产生更多的思维火花,相互提高。e交友,互相鼓励,一路同行。如果说博客是一个舞台,则所有的博客都是其中的舞者,把自己有价值的真实的一面展示在网络世界中,相互交流沟通;如果博客仅仅为了写日志,则博客是一面镜子,镜子中展现的是真实的自己;如果博客是一个自由媒体,可以把自身感觉有价值的信息通过博客这个工具发布,与网友共享2。1.2国外现状据不完全统计,到今天,全世界博客总量已超过一亿.其中中国的博客到达1600万。博客数量大约6个月翻一番,2006年4月份每天新增博客7万5千人
6、。每天发贴120万篇,平均一小时5万贴。博客的影响力,早已超出了他作为个人,甚至作为自己所在行业的原有围。开场引起主流媒体的强烈关注。自2006年以后,博客迎来了它的飞速开展时期,作为专业领域的知识传播模式,博客成为了该领域最具影响力的方式之一,博客的影响力也将超越传统媒体。它将成为一种全新的信息组织和传播方式,发挥更大的作用。1.3博客开展趋势趋势一:博客现在正在形成个人的信誉机制,有了博客之后就确立了一个个人虚拟身份,简单的来讲就是个人在互联网上是有名有姓的,而不再是一种匿名的行为,网民从流浪汉变成了一个定居者。以前在互联网上的各种行为都是在匿名状态中,相互之间是不认识的,但有了博客之后可
7、以天天关注,而别的人也可以通过博客找到这个人。这样随着时间的积累就会产生一个新的东西,概括叫做个人的信誉,个人的信誉就是博客和博客之间开展各种关系的组合,这种信誉对每个人来讲可能是不同的,但对每个博客来讲就产生了新的评价机制,这个机制将是博客商业化的一个前提条件。趋势二:博客越来越呈现出富媒体化,早期的博客是以文字为主,但随着多媒体开展博客相册、博客图片已经成为博客的根本配置,而现在许多博客已经提供了博客音频和博客视频。趋势三:博客现在正在形成并完善精选机制,博客作为自媒体和个人媒体,产生的信息非常巨大。其中难免产生信息垃圾,随着博客的开展,博客通过精选机制精选出大家喜闻乐见的信息,像国网摘、
8、博客的评价系统等。1.4课题研究的意义随着Blog人数的增加,Blog作为一种新的生活方式、新的工作方式和新的学习方式已经被越来越多的人所承受,并且在改变传统的网络和社会构造。它使交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更加有效;个人出版变成人人都可以实现的梦想。Blog正在影响和改变着我们的生活。本系统采用MVC模式设计实现了一个简单的博客系统。MVC模式极提高了系统的灵活性、复用性、开发效率、适应性和可维护性,充分发挥了JSP、Servlet等J2EE组件的特点3。从而,使更多的人们通过文字、图片、声音、视频、无线等,尽情展示自我、分享感受、参与交流,美好你我生活。
9、Show you,share me,人人都可以博客,人人都需要博客。1.5 系统设计目标分析本系统是用JSP实现的一个完全基于浏览器的博客系统,任何注册个人博客的人都拥有以下功能:a登录博客系统的后台管理平台。b更改博客账号的根本信息。c撰写日志。d日志管理。e评论管理。f留言管理。博客访问者具有以下功能:a浏览博客系统中的日志、留言、评论。b发表评论及留言。c检索日志。2 根本技术方案2.1 JSP中的各种技术2.1.1 JSP概述JSP即Java Server Pages,是由Sun Microsystem公司于1996年6月推出的新技术,是基于Java Servlet以及整个Java体系
10、的Web开发技术4。JSP已经成为开发Web动态网页重要、快速和有效的工具,是全新的网络效劳器编程环境。JSP充分利用了Java的强大功能,是一种优秀的效劳器端技术。随着Java技术的日益成熟和流行,JSP在网络编程中也变得越来越重要。JSP基于强大的Java语言,具有极强的扩展能力,良好的缩收性,以及与平台无关的开发特性,成为构建动态的主流技术之一,JSP有着其他技术所不具备的优势3。其优势在于:可以将容的生成和显示进展别离、生成可重用的组件、采用标识简化页面开发。JSP能提供所有Servlet的功能52.1.2 Servlet概述Servlet是Java编写的效劳器端程序,是由效劳器端执行
11、和调用的Java类。Servlet是采用Java技术来实现CGI功能的一种技术,能够像CGI一样动态地扩展Web效劳器的功能,并采用请求响应模式提供Web效劳。Servlet和CGI一样都是运行在Web效劳器上,用来生成Web页面。Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web容。其工作流程图如图2.1所示。Servlet工作流程:a客户端发送请求信息至效劳器。b效劳器将请求信息发送至Servlet。cServlet生成响应容并将其传给Servlet。响应容动态生成,通常取决于客户端的请求。图2.1Servlet工作流程图d效劳器将响应信息返回至客户端 JavaBean概述
12、JavaBean是Sun公司为了进入因特网、企业网以及万维网上进展分布式计算的组件构造入口。按照Sun公司的定义,JavaBean是一个可重复使用的软件部件。JavaBean体系构造是第一个全面地基于组件的标准模型之一,该组件是Java类,这些类遵循一个接口格式,以便于使方法命名、底层行为以及继承或实现的行为能够把类看做标准的JavaBean组件的方式进展构造7。在Java模型中,通过JavaBean可以无限扩大Java程序的功能,通过JavaBean的组合可以快速生成新的应用程序。JavaBean具有以下特点:a可以实现代码的重复利用。b易维护性、易使用性、易编写性。c可以在Java的任何平
13、台上工作,不需要重新编译。d可以在部网或者网络之间进展传输。e可以以其它部件的模式进展工作。JavaBean在JSP程序中常用来封装事务逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的别离,使得系统具有更好的强健性和灵活性。2.2基于B/S的WEB应用体系构造2.2.1 传统的两层体系构造在Web开展的初期,Web应用主要是通过静态页面在Internet上发布信息。用户通过浏览器向效劳器发送请求,效劳器接收用户端的请求,向客户端浏览器发送所请求的页面。在这种构造下,上的页面是静态的,无法根据用户的实际使用情况做动态的变化。的信息提供者通过更新效劳器上的网页来向用户提供最新的信息。用户和浏
14、览器之间只有有限的交互,而和用户之间几乎没有交互。2.2.2三层体系构造三层体系构造图如图2.2所示。CGI,ASP,PHP等技术的出现,使得开发动态交互式的Web应用得以实现。用户通过浏览器向效劳器发送请求,Web效劳器接收客户端发送来的请求,对请图2.2 三层体系构造图求进展分析,如果请静态页面,则就将所请求的页面发送到客户端;如果请求的是动态页面,则就执行此动态页面,并将执行结果发送给客户端。动态页面中的脚本程序可以和数据库效劳器进展交互。Web效劳器可以根据用户的请求动态更新页面上的信息,Web信息提供者可以通过改变数据库中的数据向用户提供最新信息,而不需要逐个更改页面。用户可以通过这
15、些动态页面向数据库中输入信息,从而增强了用户和效劳器之间的交互性。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模
16、型图在这种模型中,JSP页面单独响应请求并将处理结果返回给客户,所有的数据通过JavaBean来处理,JSP实现页面的显示。此模型常常会导致页面被嵌入大量的脚本语言或者Java代码段,当处理大型业务时,页面程序将变得异常复杂给开发和维护带来困难。JSP+Servlet+JavaBean模型图如图2.4所示。图2.4 JSP+Servlet+JavaBean模型图Servlet技术是一种采用Java技术来实现CGI功能的一种技术。Servlet是运行在Web效劳器上,用来生成Web页面。Servlet技术非常适于效劳器端的处理和编程。在此种开发模式中,JSP技术用来显示页面,该页面中没有任何的商
17、业处理逻辑,通过Servlet技术来完成大量的事物处理工作。Servlet用来处理事务的请求,充当着一个控制者的角色,并负责向客户发送请求,创立JSP需要的Bean和对象,根据用户的请求行为,决定将哪个JSP页面发送给用户。从上面两种开发模式来说:第二种模式要好些,更适合于团队开发,速度相对较慢,但是可维护性高6。2.3 Eclipse简介Eclipse最初由OTI和IBM两家公司的IDE产品开发组创立,起始于1999年4月。IBM提供了最初的Eclipse代码根底,包括Platform、JDT和PDE。Eclipse是一个开放源代码的软件开发工程,专注于为高度集成的工具开发提供一个全功能的、
18、具有商业品质的工业平台。由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
19、。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-Controlle
20、r)模式并不是J2EE行业人士标新立异的。MVC的核心就是要做到三级甚至多级的松散耦合,MVC模式将系统分为三个局部,分别是数据模型、视图和控制器,并定义了这三个局部之间实现通信的一种模式,使每个局部不必卷入到其他局部的状态表示和方法实现的细节中去。每个局部有自己的数据管理规则,各个对象之间的通信只能使用自己定义的一个受限连接集合进展。保持这种别离性通常是面向对象编程和设计要追求的目标,让各个对象只需专注于自己的事务。模型局部代表了商业数据的访问及修改数据的操作。当数据发生改变时,要负责通知视图局部,并且提供视图查询状态的能力。另外,还向控制局部提供给用功能。视图局部以自己的方式显示模型的容。
21、访问模型的数据,并且当模型的数据发生变化时更新模型的显示。视图还把从用户那里得到的信息传给控制局部。控制局部定义了应用的行为。分发用户请求和选择表现视图,还负责解释用户输入,进而调用模型的功能。在Web应用中,用户输入包括对Web级资源的HTTP、GET和POST请求。控制局部根据用户交互和模型的状态选择要显示的视图。一个应用程序一般为相关的功能选择一个控制局部14,15。3 系统分析与总体设计博客信息系统包括:前台信息显示系统、后台信息管理系统。前者是面向公众的一个窗口,通过前台信息显示系统方便访问者浏览日志、评论和留言;发表评论和留言。后者是后台信息管理系统,方便博客管理员发表日志;回复评
22、论和留言;管理日志、评论、留言及个人信息 12。系统需求分析3.1.1 用户需求分析用例图用来描述系统与参与者之间的相互作用,与用例图相关的几个概念:a角色:代表了*一事件发生的参与者,用一个小人表示。b用例:代表系统可以实现的功能,通常一个用例代表一组功能,实质上规定了系统实现功能的围。c用例图:当角色和用例发生*种关系时,就可以用一个图将它们关联起来,这就是用例图。博客信息管理系统允许用户有三种身份:博客访问者、博客管理员及系统管理员。博客系统参与者中每种身份操作起来都很方便、快捷。博客访问者无需登陆就可以浏览信息、发表评论或留言;博客管理员注册后再登陆,就可以发布日志、管理个人主页;而博
23、客管理员的根本信息都由系统管理员对其统一管理。博客信息管理系统用例图如图3.1所示。图3.1博客信息管理系统用例图3.2 数据分析系统的用户主要是博客访问者和博客管理员,下面以博客前台展示系统中的用户查询日志为例进展说明。该过程的数据流程图如图3.2所示。 图3.2 用户查询日志的数据流程图用户查询日志的数据流程:首先,用户输入需查找的关键字,然后提交表单数据,效劳器接收到关键字后,根据关键字对日志标题进展模糊查询,处理后将结果以日志标题的形式显示给该用户,用户点击相应的就可以浏览日志容。3.3 系统流程根据博客信息管理系统的特点,将其分为两大模块:前台用户浏览模块和后台用户管理模块。前台用户
24、浏览模块主要用于用户浏览日志信息;后台用户管理模块主要用于博客管理员对个人博客的管理,如日志管理、留言管理及评论管理等。博客系统平台的前台用户浏览模块流程图如图3.3所示。前台用户浏览模块主要用于用户浏览日志信息,用户浏览日志有三种浏览方式可以选择:一是直接点击日志标题进入日志显示页面浏览日志;二是点击博客主题进入该个人博客的首页,然后在该首页中选择所需的日志标题进入日志显示页面浏览日志;三是通过首页提供的搜索功能,搜索所需要的日志,然后在结果列表中选择所需的日志标题进入日志显示页面浏览日志。浏览日志的同时用户可以查看别人对该日志的评论,然后用户也可以对该日志发表自已的评论。用户进入后台管理平
25、台,首先必需进展权限验证,防止未授权的用户非法登录。假设未通过验证,则显示出错提示,并跳转到登录界面。假设通过验证,则进入个人博客后台管理平台。用户可以浏览已发表的日志,并对其进展相应的操作如修改日志和删除日志;可以查看日志的评论信息并对其进展回复或者删除操作;可以发表新的日志;可以新建日志分类;可以浏览个人博客的留言信息并对其进展相应的操作如回复留言图3.3 前台用户浏览模块流程图图3.4 后台用户管理模块流程图和删除留言;还可以对个人信息进展修改。博客系统平台的后台用户管理模块流程图如图3.4所示。3.4 功能模块划分前台模块功能构造如图3.5所示。图3.5 博客信息系统前台功能构造图后台
26、模块功能构造如图3.6所示。图3.6 博客信息系统后台功能构造图3.5功能模块设计博客信息管理系统分为面向网络用户的前台及面向个人博客维护管理的后台,依据博客中所要实现的根本功能的设定,将所有功能分解为如下四个主要的功能模块来加以实现。用户以合法的用户名及密码登录,系统即可按该登录用户的权限分配操作模块。3.5.1博客注册登录管理模块博客注册登录管理模块用于建立博客固定的客户群体,通过记录对应的博客档案,实现对博客信息的后台维护及管理,同时也便于通过博客档案库将最新动态及相关企业的信息方便地传达给每一位潜在的客户。该功能模块实现了以下几个子功能。a新博客在线注册。b博客登录管理。c跳转到博客主
27、页。只有进展登录并通过身份验证的用户,才可以在个人博客页面发表日志,并借助个人设置实现对个人博客相关信息的管理维护。对于没有经过身份验证的网络用户不允许在博客页面中发表日志,更不允许对博客页面信息进展管理维护。该模块实现新博客的注册及登录验证功能。其中,注册新博客时会对用户输入的注册信息进展有效性验证,包括根本数据格式的有效性以及逻辑有效性,例如,用户名被占用时将及时给出提示。注册成功的博客登录时,会随时根据博客输入的登录信息进展提示,如用户名错误或者密码错误。3.5.2博客及文章检索查询模块博客及文章检索查询模块为网络用户提供便捷的搜索,以及日志阅读浏览等功能,同时对日志的评论信息、博客推荐
28、也能够及时反应给网络用户。该功能模块实现了以下几个子功能。a热门博客页面推荐。b最新博客日志推荐。c日志信息关键字搜索。该模块能够在网页中随时提供在线的最新日志信息。该信息需要定期更新,网络用户可以随时获得最新日志以及最热门的博客推荐。在客户选择了*个博客或者*个感兴趣的日志后,可以方便地跳转到对应博客页面进展日志的阅读,并和博客进展交流互动。为了使网络用户尽快定位到所需的博客资料及日志信息,本模块提供了搜索功能,用户可以对所关注的日志信息按照标题进展关键字搜索,以防止用户浏览多个页面来寻找所需的日志信息。3.5.3博客页面显示模块当网络用户进入*个人博客主页后,在该页面中将提供博客日志列表的
29、显示,同时为了方便用户浏览,在该模块中提供根据分类名进展日志列表的显示,也提供日志评论的浏览,此外还允许用户在博客页面中发表评论及留言。该功能模块实现了如下几个子功能。a用户可以分页查看对应的日志容及评论信息。b用户可以针对日志容发表评论。c用户可以针对博客进展留言。d用户可以分类查看日志容。在该模块中还提供了博客页面统计信息,日志、评论及留言信息分页显示等方便用户的显示效果。3.5.4博客个人管理维护模块博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管理。该功能模块实现了如下几个子功能:a日志及日志分类管理。b评论及留言管理。c个人根本信息维护管理。借助该模块,用户可以随时对
30、个人博客主页中的容进展增加或修改,包括日志分类信息的更新、评论及留言管理等功能,也允许用户对博客的个人信息进展维护及其管理。4 系统分析设计4.1数据库分析数据库是当前应用软件系统的重要组成局部,如何使基于数据库的应用系统平安、可靠、高效的运行一直是软件开发技术研究的难题。所以本系统的数据库设计基于以下几点来考虑:a数据库规化与非规化的考虑。b数据查询优化与索引的建立。c存储过程与视图。4.1.1数据库设计E-R图为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。描述了从用户角度看到的数据,反映了
31、用户的现实环境。最常用的表示概念性数据模型的方法,是实体联系方法EntityRelationship Approach。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。ER模型中包含实体,联系和属性。博客信息管理系统涉及的实体包括:a用户:用户ID、用户名称、用户密码、博客主题、说明、注册日期、发表日志数。b类别:类别编号、类别名、类别描述、用户ID。c日志:日志编号、日志标题、日志容、类别编号、发表日期、最后修改日期、用户ID、浏览次数、评论数。d评论:评论编号、评论标题、评论容、发表日期、最后回复日期、评论人、日志编号
32、。e留言:留言编号、留言标题、留言容、发表日期、最后回复日期、留言人、用户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 系统数据表设计a用户表,此表主要用于保存用户的根本信息。其构造如表4.1所示。表4.1 用户表列名含
33、义类型长度缺省值允许空BlogID用户编号Int4无否UserName用户名Varchar20无否Password用户密码Varchar20无否NickName博客主题Varchar50无否Description博客描述Varchar100无是Email电子Email50无否RegisterTime注册日期Datetime8无否ArticleNum发表的日志数Int40否b日志表,此表主要用于保存日志的根本信息。其构造如表4.2所示。表4.2日志表列名含义类型长度缺省值允许空ArticleID日志编号Int4无否Title日志标题Varchar50无否Content日志容te*t8无否Cate
34、goryID类别IDint4无否PublishTime日志发表时间Datetime8无否LastModifyTime日志最后修改时间Datetime8无否BlogID用户IDInt4无否ReadTimes日志浏览次数Int40否FeedBackNum日志评论数Int40否c日志评论表,此表主要用于保存日志评论的根本信息。其构造如表4.3所示。表4.3日志评论表列名含义类型长度缺省值允许空FeedBackID评论编号Int4无否Title评论标题Varchar20无否Content评论容Te*t8无否PublishTime发表时间Datetime8无否UserName用户名Varchar20无否
35、ArticleID日志IDInt4无否d留言表,此表主要用于保存留言的根本信息。其构造如表4.4所示。表4.4留言表列名含义类型长度缺省值允许空MessageID留言编号Int4无否Title留言标题Varchar20无否Content留言容te*t8无否PublishTime发表时间Datetime8无否LastModifyTime最后回复时间Datetime8无否UserName用户名Varchar20无否BlogID用户IDInt4无否e类别表,此表用于保存日志类别的根本信息。其构造如表4.5所示。表4.5类别表列名含义类型长度缺省值允许空CategoryID类别编号Int4无否Name
36、类别名Varchar20无否Description类别描述Varchar100无是BlogID用户编号Int4无否4.3数据连接目前流行的数据库连接技术主要有:JDBC-ODBC桥、JDBC和数据连接池技术。该系统采用数据连接池技术,使用连接池的优点主要表达在两个方面:对数据库的连接统一进展配置、管理、监控,以及对数据库连接池的参数进展优化调整,同时对应用程序中没有关闭或其他原因造成没有关闭的数据库连接由连接池统一进展管理。便于程序的移植和后端数据库的切换,因为在应用过统一的JNDI获得数据库的连接,而具体连接的是哪一台机器上的数据库与程序无关。数据库连接池技术的思想非常简单,将数据库连接作为
37、对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接。这样,通过复用这些已经建立的数据库连接,可以克制上述缺点,极节省系统资源和时间。数据库连接池的主要操作如下:a建立数据库连接池对象效劳器启动。b按照事先指定的参数创立初始数量的数据库连接即:空闲连接数。c对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有到达最大即:最大活泼连接数,创立一个新的数据库连接。d存取数据库。e关闭数据库,释放所有数据库连接此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放
38、连接。f释放数据库连接池对象效劳器停顿、维护期间,释放数据库连接池对象,并释放所有连接。5 系统功能的具体实现5.1系统的主窗口系统的界面按照常规的WEB界面进展设计,设计的原则是界面友好,易于操作,容易上手,尽可能的贴切用户实际。所有的网络用户都可以进入该首页进展登录、注册、浏览等相关的操作。在页面的上方是博客系统的导航列表,图中显示的导航条包括登录、注册、博客随笔以及站务公告。在页面的左侧用户可以根据随笔标题进展搜索;搜索的下方是系统对博客、随笔、文章及评论的统计信息。最新文章则显示在博客首页的主要中心位置上。博客系统首页图如图5.1所示。图5.1 博客系统首页图所有的网络用户都可以进入*
39、个人的博客主页进展浏览、留言等相关的操作。在后台管理页面的上方分别显示博客首页、随笔、日志、相册、修改、密码修改等表单。在这里博客用户经过身份认证进入,可以对自己的日志或者随笔进展删除、添加、分类等管理。同时可以修改自己的用户名和密码。博客后台管理界面图如图5.2所示。图5.2 博客后台管理界面图5.2公共核心类的设计5.2.1数据库相关访问数据库相关类如下:a获取数据源,其代码如下:public static Connection getConnection()try Conte*t ct*=(Conte*t)new InitialConte*t().lookup(Contants.ENV)
40、;DataSource ds=(DataSource)ct*.lookup(Constants.JDBC);getConnection()方法:该方法通过Conte*t类提供的lookup()方法查找数据源,从而获得jdbc/blog数据源的引用,得到DataSource对象的引用后,就可以通过DataSource的getConnection()方法获得数据库连接对象。b连接数据库和操作数据库;代码如下: / 构造数据库的连接和访问类public DBConnect() throws E*ception / 获得数据库连接对象conn=DB.getConnection();/ 创立一个JDBC
41、声明stmt = conn.createStatement();/ 预设SQL语句public void prepareStatement(String sql) throws SQLE*ception prepstmt = conn.prepareStatement(sql);/ 设置索引值位置的对应值public void setString(int inde*, String value) throws SQLE*ception prepstmt.setString(inde*, value);public void setInt(int inde*, int value) throws
42、 SQLE*ception prepstmt.setInt(inde*, value);/ 执行SQL语句并返回字段集public ResultSet e*ecuteQuery() throws SQLE*ception if (prepstmt != null) return prepstmt.e*ecuteQuery(); elsereturn null;DBConnect()方法:该方法主要负责获得数据库连接对象。prepareStatement(String sql)方法:该方法主要完成预设SQL语句,只有一个用来接收SQL语句的参数,如果SQL语句有误将抛出异常。setString(
43、int inde*, String value)方法:该方法用于设置预设SQL语句中的相应字段值,inde*表示索引位置,value表示需设置字符串类型的值。setInt(int inde*, int value)方法:该方法用于预设SQL语句中的相应字段值,inde*表示索引位置,value表示需设置整型类型的值。e*ecuteQuery()方法:该方法用于执行预设的SQL语句。5.2.2编写JavaBean类为每一个数据库表建一个JavaBean类,完成对该表字段的获取和设置。博客信息管理系统所用的JavaBean类列表如表5.1所示。表5.1 JavaBean类列表JavaBean类说明
44、Blog类博客管理员表对应的JavaBean类Article类日志表对应的JavaBean类CateGory类类别表对应的JavaBean类FeedBack类评论表对应的JavaBean类Essay类随笔表对应的JavaBean类Feedback类的代码如下:public class Feedback / 属性,对应数据表中的字段名private int feedbackid;private String title; / 字段的访问和设置方法public int getFeedbackid() return feedbackid;public void setFeedbackid (int
45、feedbackid) this. feedbackid = feedbackid;Feedback类:通过getFeedbackid()方法获取feedbackid属性的值,通过setFeedbackid (int feedbackid)方法设置feedbackid属性的值。5.2.3管理类设计上面每一个JavaBean类都有一个相对应的管理类,是在JavaBean类及数据库相关类的根底上完成对数据库表的访问、更新、统计操作。博客信息管理系统所用的管理类列表如表5.2所示。表5.2 管理类列表管理类说明BlogMgr类完成对博客管理员表的查询、更新及统计Article类完成对日志表的查询、更
46、新及统计FeedBack类完成对评论表的查询、更新及统计Essay类完成对随笔表的查询、更新及统计FeedbackMgr类的局部代码如下:public class FeedbackMgr /* * 添加评论 */public void add(Feedback feedback)DBConnect dbc = null;ResultSet rs = null;try / 新建数据库连接和访问对象dbc = new DBConnect();/ 预设sql语句dbc.prepareStatement(INSERT INTO feedback (title,content,publishtime,l
47、astmodifytime,username,articleid) VALUES ( ,);/ 设置对应值dbc.setString(1, feedback.getTitle();dbc.setString(2, feedback.getContent();dbc.setDate(3, new java.sql.Date(new java.util.Date().getTime();dbc.setDate(4, new java.sql.Date(new java.util.Date().getTime();dbc.setString(5, feedback.getUsername();dbc
48、.setInt(6, feedback.getArticleid();/ 执行该更新语句dbc.e*ecuteUpdate();/* * 查询所有评论(按最后修改时间) */public Collection getAllByLastModifyTime() DBConnect dbc = null;Collection c = new ArrayList();ResultSet rs = null;try / 新建数据库连接和访问对象dbc = new DBConnect();/ 执行SQL语句,返回字段集rs=dbc.e*ecuteQuery(SELECT * FROM feedback
49、order by lastmodifytime desc);Feedback feedback = null;while (rs.ne*t() / 新建评论对象feedback = new Feedback();/ 设置评论对象相关的属性feedback.setFeedbackid(rs.getInt(feedbackid);feedback.setTitle(rs.getString(title);feedback.setContent(rs.getString(content);feedback.setStrpublishtime(rs.getString(publishtime);fee
50、dback.setStrlastmodifytime(rs.getString(lastmodifytime);feedback.setUsername(rs.getString(username);feedback.setArticleid(rs.getInt(articleid);/ 将该评论对象存入集合对象中c.add(feedback);/ 将该评论对象置为nullfeedback = null;/ 如果结果集不会空,则循环添加该评论对象FeedbackMgr类:封装了对评论表的所有操作,包括添加评论、回复评论、删除评论、查询*日志的所有评论按最后修改时间排序和查询*用户的所有评论按最后修改时间排序等。5.3系统主要功能模块详述5.3.1登录模块当用户需发表新日志或者是对博客进展管理时,就必须先进展登录验证操作,然后进入博客系统后台。用户登录界面图如图5.3所示。5.3.2日
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三化学教学设计:实验仪器与基本操作专题复习策略研究
- 光纤着色并带工操作评估强化考核试卷含答案
- 电动自行车装配工岗前实操掌握考核试卷含答案
- 初中七年级地理教学设计:第二节我们怎样学地理(湘教版)
- 九年级英语教学设计:Unit 3 Space Exploration 单元同步写作实战
- 小学五年级心理健康《听懂别人说清自己-听与说的艺术》教学设计
- 高一英语外研版必修二 Unit 6 Earth First 词汇深度复习与迁移应用教学设计
- 高三地理教学设计:构造地貌形成机制与课后达标检测实施策略
- 高处作业吊篮安装拆卸工岗前基础能力考核试卷含答案
- 在线学习服务师技术传承考核试卷含答案
- 2026年研学导师岗位培训考试试题(附答案)
- 26新五年级上册语文第一次月考检测卷1-2单元
- 【2026公开课】Unit 2 My friends PA Let's learn 教学课件
- IEC 60335-2-9-2024 中文版 家用和类似用途电器安全 烤箱、灶、炉及类似器具特殊要求
- 第一单元《健康生活 单元小结》课件
- 细胞治疗产品审批监管趋势与市场准入报告
- 国聘招聘笔试测评题库
- 新生儿颅脑超声诊断专家共识(2026版)
- 劲性钢骨梁柱施工方案
- 2026全球及中国柠檬行业消费趋势与需求规模预测报告
- 《碳中和导论》课件-第四章 储能技术与绿色燃料
评论
0/150
提交评论