《基于J2EE的bbs论坛系统(毕业设计说明书).docx》由会员分享,可在线阅读,更多相关《基于J2EE的bbs论坛系统(毕业设计说明书).docx(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、优质文本 计算机与通信(tng xn)学院 本科生毕业设计说明书 基于J2EE的网上论坛系统作 者: 乔 柏 学 号: 专 业: 信息与计算科学班 级: 07级2班 指导教师: 马维俊 辩论时间: 2011年6月 基于(jy)J2EE的网上论坛系统BBS System Based On J2EE乔柏Qiao Bai41 / 48优质文本前 言Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,易于被人们所接受的信息检索手段,World Wide Web(简称WWW)开展十分迅速,成为(chngwi)目前世界上最
2、大的信息资源宝库。据估计,目前Internet上已有上百万个Web站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的开展十分重要。近年来,随着网络用户要求的不断提高及计算机科学的迅速开展,特别是数据库技术在Internet中的广泛应用,Web站点向用户提供的效劳将越来越丰富,越来越人性化。论坛的开展也如同网络,雨后春笋般的出现,并迅速的开展壮大。论坛BBS的英文全称是Bulletin Board System,翻译为中文就是“电子布告栏系统。BBS最早是用来公布股市价格等类信息的,当时BBS连文件传
3、输的功能都没有,而且只能在苹果机上运行。早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过来传播或获得消息而已。一直到开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。现在的论坛几乎涵盖了我们生活的各个方面,几乎每一个人都可以找到自己感兴趣或者需要了解的专题性论坛,而各类网站,综合性门户网站或者功能性专题网站也都青睐于开设自己的论坛,以促进网友之间的交流,增加互动性和丰富网站的内容。优质文本目 录摘 要IAbstractII第一章 绪 论11.1 课题研究(ynji)的目的及意义11
4、.2 国内外研究动态11.3本文的工作2第二章 开发平台与主要技术32.1 开发平台32.1.1 MyEclipse3342.2主要技术42.2.1 JSP42.2.2 MVC模型42.2.3 Stuts、Hibernate、AJAX4第三章 需求分析63.1工程背景6市场背景63.1.2 工程组织63.2 功能概述63.2.1 功能结构6功能描述73.3系统用例73.4性能需求9性能环境9访问入口需求9第四章 总体设计104.1 数据库设计104.4.1 E-R图104.1.2 表的设计114.2时序图13第五章 详细设计155.1系统架构155.2技术体系165.3控制层的设计165.4业
5、务层的设计175.5持久层的设计185.6权限设计19第六章 测 试206.1测试方案206.1.1 单元测试20集成测试206.2测试用例21第七章 使用(shyng)说明227.1 搭建运行环境227.2 操作指南22后台操作227.2.2 前台操作24第八章 总 结26参考文献27外文原文28译文35致谢41优质文本摘 要论坛是互联网上的一个重要应用,其主要功能是给用户一个在网上互相交流、互相学习、互相帮助的平台。用户在BBS站点上可以获得各种信息效劳,发布信息,进行讨论,聊天(lio tin)等等。论文主要介绍了基于J2EE技术的网上论坛系统的设计和实现。设计包括数据库设计,系统架构设
6、计,以及前端用户界面设计。系统中普通用户可以完成用户的注册,登录,退出,发帖,跟帖,修改帖子,删除帖子,修改密码等功能。管理员可以对版块进行维护,对帖子和用户进行管理。文中详细描述了系统需求、模块结构及功能。系统使用了MVC的设计模式,程序在业务逻辑、控制逻辑和表现逻辑上实现了别离。系统结构清晰,具有良好的可读性、可扩展性和可维护性。系统使用了Struts框架,呈现层采用了JSP动态网页技术,页面用到了CSS层叠样式表以及JavaScript技术。在文字处理方面利用了CKEditor框架。注册页面通过AJAX技术来完成用户名的验证。系统以MyEclipse作为开发工具,用Hibernate连接
7、后台MySQL数据库,界面设计人性化,操作简单。关键词:论坛系统;J2EE;数据库;设计模式;对象关系模型AbstractBBS is one of the important application on the Internet, its main function is giving Internet users a platform to exchange, communication, learning and help each other. The users can get a variety of information services, release informati
8、on, discussions, and chat.This paper describes BBS systems design and implementation based on J2EE technology. It mainly includes database design, system architecture design, and UI design. General users in the system can complete the user registration, login, logout, post, reply posts, edit posts,
9、delete posts, modify password and so on. Administrator can manage the board, while the corresponding post and user management. The paper describes in detail the system requirements, each module structure and function.The system uses MVC design pattern. The procedure in the service logic, the control
10、 logic and performance logic has realized the separation. This system structure is clear, has the very good readability, the extendibility and the maintainability. It used the Struts framework. The view level used the JSP dynamic page technology. The page has used CSS (cascading style sheet) as well
11、 as JavaScript. It used the CKEditor framework in the language processing aspect. Registration page uses the AJAX technology to complete users confirmation. This system using MyEclipse as the development tools, MySQL as back-end database and Hibernate to connect database. It has a friendly interface
12、 and simple operation features.Keywords: BBS System; J2EE; Database; Design Pattern; Object-Relational Model优质文本第一章 绪 论1.1 课题研究的目的(md)及意义Java是一种面向对象的程序设计语言,由于其跨平台的优点,使得Java的开展特别迅速,尤其是在网络方面的开展。网上论坛系统是网络常见的一个应用,用于网络用户的信息交流。如:知名的天涯在线论坛。通过论坛系统,用户可以发表自己的言论主题贴,其他的用户可以对主题贴进行评论跟贴或发表更多的言论主题贴。为了把所学的Java知识用于具体
13、的实际运用,同时更深刻的理解互联网的运用,我的毕业设计选择为基于J2EE的网上论坛系统。1.2 国内外研究动态进入二十一世纪,计算机技术迅速向着网络化、集成化方向开展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息多媒体的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端效劳器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,效劳器端压力小,平安性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器效劳器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发
14、效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行效劳器方面的投资,而是去租用,甚至是免费使用ISP的效劳器资源,因而受到越来越多中小型单位的青睐。Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充满于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络方案。ARPA方案尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。随着这个方案的成功,各学术单位,研究机构也纷纷与ARPA方案所建立的ARPANet连接。到了20世纪8
15、0年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统。从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。最初的Internet资源效劳都还停留在文本模式,1989年,量子物理实验室CERN下的一个研究小组着手开发一种全新的Internet效劳,它可以在网络上传送图片、文本、影像、声音等多媒体数据。于是由Tim Berners Lee领导的小组开发出了一种主从、分布式的网络效劳系统,这就是 Wide Web),俗称“万维网。所谓WWW其实(qsh)就是连上Web效劳器
16、访问资源,取得的内容就是所谓的“主页(HomePage)。进入的网页通常不会只有一页,而是整个网站的内容。“网站是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供效劳。目前,人们渐渐开始把网站称之为播送、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自己对社会对生活的理解和建议。随着网络的普及,论坛作为互联网上的一种应用,在Int
17、ernet上扮演了一个很重要的觉色。随着互联网技术的开展,论坛内容越来越丰富,深受广阔网民的喜爱,因此商业网站对论坛也重视起来,提供与网民交流的平台,同时在线技术支持也在论坛中开展起来。1.3本文的工作通常BBS系统就是提供应注册用户一个平台,会员用户可以通过Internet接入,登录论坛,在这个平台上发表文章、阅读文章、回复文章等等。C/S结构,即Client/Server(客户机/效劳器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。B/S结构下,用户界面完
18、全通过WWW浏览器实现,一局部事务逻辑在前端实现,但是主要事务逻辑在效劳器端实现,形成所谓N-Tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发本钱,是一种全新的软件系统构造技术。随着Windows将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。结合BBS系统实际需要,本系统采用B/S结构来实现通用BBS的根本功能,如发帖,回帖等。 第二章 开发平台与主要技术2.1 开发(kif)平台 M
19、yEclipseMyEclipse企业级工作平台MyEclipse Enterprise Workbench,简称MyEclipse是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序效劳器的整合方面极大的提高工作效率。MyEclipse是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts,JSF,CSS,Javascript,Sql,Hibernate等技术。MyEclipse是Eclipse插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及排错。MyEclipse是一个专门为
20、Eclipse设计的商业插件的完美结合,MyEclipse为Eclipse提供了一个大量私有和开源的java工具的集合,很大程度上解决了各种开源工具的不一致问题,并大大的提高了Java和JSP的开发效率。鉴于MyEclipse有众多优点,本系统选用MyEclipse作为集成开发环境,这给程序的开发带来了许多方便。TomcatTomcat效劳器是一个免费的开放源代码的Web应用效劳器,可以和大局部主流HTTP效劳器一起工作,它是Apache软件基金会Apache Software Foundation的Jakarta工程中的一个核心工程,由Apache、Sun和其他一些公司及个人共同开发而成。由
21、于有了Sun的参与和支持,最新的Servlet和JSP标准总是能在Tomcat中得到表达。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者得喜爱并得到了局部软件开发商的认可,成为目前比拟流行的Web应用效劳器。Tomcat效劳器不但支持运行Servlet和JSP,而且还具备了商业Java Web应用容器的特征,除了能够运行Servlet和JSP外,还具备了作为WEB效劳器的特有功能。它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件效劳等开发应用系统常用的功能,而且它还在不断的改良和完善中。本系统在部署应用的过程中选用了Tomcat作为WEB效劳器。JDKJDK是jav
22、a的核心,包括了Java运行(ynxng)时环境Java Runtime Envirnment,一堆Java工具和Java根底类库rt.jar。它是一个写Java程序的开发环境。本系统在开发的过程中选用的是JDK1.6版本。2.2主要技术 JSPJSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台
23、的,既能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于效劳端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示别离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web效劳器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 MVC模型MVC是三个单词的缩写,分别为:
24、模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。 Stuts、Hibernate、AJAXstruts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和J
25、SP的优点来建立(jinl)可扩展的应用,struts是一个不错的选择。Struts最早是作为Apache Jakarta工程的组成局部,工程的创立者希望通过对该工程的研究,改良和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫Struts,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的根底支撑。这也是一个解释Struts在开发Web应用程序中 所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Str
26、uts为业务应用的每一层提供支 持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果 想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可
27、以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。AJAX 不是一种新的编程语言,而是一种用于创立更好更快以及交互性更强的 Web 应用程序的技术。通过 AJAX,JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与效劳器进行通信。通过这个对象,JavaScript 可在不重载页面的情况与 Web 效劳器交换数据。AJAX 在浏览器与 Web 效劳器之间使用异步数据传输HTTP 请求,这样就可使网页从效劳器请求少量的信息,而不是整个页面。第三章 需求分析3.1工程(gngchng)背景市场背景当今网络技术逐渐渗入社会生活各个层面,随着
28、互联网的普及,人们在网上的活动变得越来越丰富,在网上的交流也越来越平凡。许多公司为了丰富员工的互相交流,让彼此互相沟通,都有其内部的交流平台,这和我们通常用到的BBS交流平台的功能都差不多。而且许多大的网站为了提供会员之间的相互交流,吸引更多的会员注册,都提供了BBS功能,从而使得人们在网上的交流变得丰富多彩。人们可以在BBS上表自己的看法,请教不知道的问题,查看别人发布的信息。因此说BBS网上论坛系统有着广阔的市场背景。 工程组织工程来源:兰州理工大学计算机与通信学院指导人员:兰州理工大学计算机与通信学院教师马维俊开发人员:信息与计算科学2班 乔柏主管部门:兰州理工大学计算与通信学院毕业设计
29、审查办公室3.2 功能概述 功能结构本系统大致可分为3个模块,分别为:帖子管理模块、用户管理模块、版块管理模块。帖子管理模块是对帖子的操作,包括发表帖子,回复帖子,修改帖子,删除帖子的操作;用户管理模块是对用户权限控制的操作,包括登录,平安退出,注册,修改信息;版块管理模块是对系统版块的维护,包括添加版块,修改版块,删除版块。系统的功能结构图如下:基于J2EE的网上论坛系统帖子管理删除版块修改版块添加版块修改信息用户退出用户登录用户注册删除帖子修改帖子发表帖子版块管理用户管理图3.1 系统(xtng)功能结构图功能描述基于J2EE的网上论坛系统,包括BBS交流系统前台和后台管理系统两个子系统。
30、主要包括:版块管理、用户管理、帖子管理、三个功能模块。版块管理:可以进行添加版块,修改版块,删除版块,添加子版块,修改子版块,删除子版块的操作,这个功能只有管理员才能进行此操作。用户管理:可以进行登录、登出、用户注册、修改信息等功能。帖子管理:可以进行发表帖子,修改帖子,删除帖子,回复帖子的功能。需要注意的是,这些操作都必须在用户登录以后才能进行,而且每个登录的用户只能修改和删除自己的帖子以及回帖,管理员那么可以删除所有人的帖子以及回复。3.3系统用例由参与者Actor、用例Use Case以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。用例图User Case是被称为参与者的外
31、部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。BBS交流平台前台用例:前台主要(zhyo)是普通用户登录系统后能进行发帖,回帖,从而相互交流信息,图3.2是系统前台的用例图。图3.2 帖子管理用例图BBS交流平台后台用例:后台是管理员登录系统后主要完成对版块的管理,以及对帖子的管理,图3.3是后台系统的用例图。图3.3 系统后台用例图3.4性能需求性
32、能(xngnng)环境操作系统:Windows系列或Linux系列均可。Java虚拟机版本:Windows下或Linux下JDK1.5以上版本。浏览器:支持IE6.0、IE7.0、IE8.0以及FireFox2.0、Firefox3.0WEB效劳器:Tomcat 5.5数据库:MYSQL 5.5访问入口需求前台入口:后台入口:第四章 总体设计4.1 数据库设计(shj)数据库的设计对一个系统的设计来说,是尤为重要的。好的设计会给系统的开发带来方便,使系统开发快速高效的完成,反之会使系统开发变得非常困难,甚至失败。同时好的设计会减少数据的冗余,提高系统的效率。本系统在设计的过程中,共有五张表,分
33、别是:用户表、角色表、版块表、话题表、回贴表。 E-R图E-R模型与人们认识现实世界的相似形,在描述数据库的概念结构或全局逻辑结构时,采用E-R图这种图形化的表示有非常大的好处,一是图形化表示的简单性;二是图形化表示的清晰性。E-R图可以很好的反响各个表之间的关系,下面是此系统数据库设计的E-R图图4.1 系统E-R图 表的设计(shj)1.用户表用户ID,用户名,密码,头像,注册时间,性别,角色ID;2.角色表角色ID,角色名称;3.版块表版块ID,版块名称,父版块ID;4.话题表话题ID,话题标题,话题内容,发表话题时间,修改话题时间,所属用户ID,所属版块ID;5.回帖表回帖ID,回帖内
34、容,回帖时间,修改回帖时间,所属用户ID,所属话题ID用户表主要保存的是用户信息,其主键是用户ID,在用户表里面有一个外键角色ID参照了角色表。表4.1是用户表的详细情况。表4.1 用户表的设计表名称t_user说 明用户表主 键user_id外 键角色ID参照角色表索 引无唯一用户名字段名称主键类型长度不可为空描述user_idYInt8Y用户IDuser_nameNvarchar20Y用户名user_pwdNvarchar20Y用户密码user_headNvarchar100N用户头像user_reg_timeNdatetime20N用户注册时间user_genderNInt2N用户性别r
35、ole_idNInt8N所属角色ID角色表是用来保存系统用到的角色,本系统在这里设计的比拟简单,系统只有两个角色,一个角色名为admin另一个角色名为putong。Admin代表的是系统管理员,putong代表的是系统的普通注册用户。表4.2是角色表的详细信息。表4.2 角色表的设计表名称t_role说 明角色表主 键角色ID外 键无参照无索 引无唯一无字段名称主键类型长度不可为空描述role _idYInt8Y角色IDrole _nameNvarchar20Y角色名版块表主要用来保存系统版块信息,其有一个参照自身(zshn)的外键parent_id,也就是说版块之间有包含关系,parent_
36、id为空时那么是一级版块。本系统只设计了两级版块。表4.3是版块表的详细信息。表4.3 版块表的设计表名称t_board说 明版块表主 键board_id外 键父版块ID参照自身索 引无唯一无字段名称主键类型长度不可为空描述board _idYInt8Y版块IDboard _nameNvarchar20Y版块名parent_board_idNvarchar8Y父版块ID话题表主要保存用户发表的话题,它有两个外键,一个是board_id参照了版块表,用于表示此话题属于哪个版块;另外一个是user_id参照了用户表,用于表示此话题属于哪个用户。表4.4是话题表的详细信息。表4.4 话题表的设计表名
37、称t_topic说 明话题表主 键topic_id外 键用户id,版块id参照用户表,版块表索 引无唯一无字段名称主键类型长度不可为空描述topic _idYInt8Y话题IDtopic _titleNvarchar50Y话题标题topic_contentNvarchar1000Y话题内容topic_ publish_timeNdatetime20N话题发表时间topic_ modify_timeNdatetime20N话题修改时间user_idNInt8Y所属用户idboard_idNInt8Y所属版块id回帖表用来保存用户回复话题的回帖,它也有两个外键,一个是topic_id参照了话题表,
38、用来表是此回帖是属于哪个话题下的,另一个是user_id参照了用户表,用来表示该回帖是那个用户发表的,表4.5是回帖表的详细信息。表4.5 回帖(huti)表的设计表名称t_reply说 明回帖表主 键reply_id外 键用户id,话题id参照用户表,话题表索 引无唯一无字段名称主键类型长度不可为空描述reply_idYint8Y回帖IDreply_contentNvarchar1000Y回帖内容reply_publish_timeNdatetime20Y回帖发表时间reply_modify_timeNdatetime20N回帖修改时间user_idNint8N所属用户idtopic_idN
39、int8Y所属话题id4.2时序图时序图Sequence Diagram,亦称为序列图或循序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。下面以用户发帖为例,介绍一下本系统工作的流程。当用户填写完帖子内容后,会点击发表按钮,此时浏览器向效劳器发送一个请求,效劳器在接收到请求以后,交给Struts的ActionServlet类来处理,ActionServlet查询Struts-config.xml配置文件,并交给TopicAction类去处理,
40、TopicAction类读取浏览器发送的信息,并创立一个Topic实体对象,然后调用业务层TopicService里的保存帖子的方法,进而调用持久层方法将Topic实体对象持久化到数据库中。当这些工作完成以后,系统将处理结果返回给用户。用户即可看到自己发表的帖子。图4.2是用户发帖过程的时序图。图4.2 用户(yngh)发帖时序图第五章 详细设计5.1系统(xtng)架构MVC是一种软件架构的思想,即将一个软件的组成局部划分成三种不同的局部:Model(模型):封装业务逻辑,一方面,要实现具体的业务逻辑,即对业务数据按一定规那么进行加工包括了访问数据库。另一方面,要对外提供一致的接口,即模型不
41、用考虑谁在调用它。View(视图):实现表示逻辑即将模型中的数据以一定的方式显示给用户,另外,视图提供UI可以通过视图提供的界面,提交数据给Model进行处理。Controller(控制器):协调视图与模型,即视图的请求不再直接提交给模型,而是统一交给控制器,由控制器来分发给适宜的模型来处理。反过来,模型处理之后的结果,也不再直接返回给视图,而是提交给控制器,由控制器选择适宜的视图,将结果展示给用户。这样做的根本目的是多个视图共享同一个模型。本系统的设计采用了MVC的设计思想,控制器使用了现阶段比拟流行的开源框架Struts1来完成。Model使用的是Java代码结合了现阶段比拟流行的持久层框
42、架Hibernate,View层由传统的JSP来承当。系统的总体架构图如下:持久层业务层控制层表现层视图层监听过滤控制层数据库持久层数据库帖子管理用户管理版块管理系统描述用户图5.1 系统架构图5.2技术(jsh)体系系统主要用到的技术有HTML、CSS、JavaScript、AJAX、Struts、Hibernate、CKEditor、MySQL、XML、PROPERTIES、JQuery、LOG4J。如下列图所示:图5.2 系统技术体系图5.3控制层的设计本系统的控制层使用了Struts1的框架来完成。当用户通过浏览器发送一个请求,效劳器接收到这个请求以后先通过过滤器检查用户的权限,并设置
43、系统所使用的编码。在这个处理过程中如果拥有权限,请求就会被传递到Struts的ActionServlet里,如果没有权限那么直接给用户一个响应。Struts1在接收到用户请求以后,首先会查看其struts-config.xml文件,看用户请求的是那个Action类,进而交给相应的Action类去处理。Action类处理完成以后将处理结果交给一个JSP视图,并给用户一个响应。本系统共设计了8个Action:UserAction:完成用户管理的相关操作,如注册,登录,退出,修改密码等。BBSAction:主要完成这页面版块数据的加载。BoardAction:主要完成版块管理,如添加版块,修改版块,
44、删除版块。PageAction:用于处理分页,使用了模板设计模式,每个要分页的Action只要继承这个类,并实现里面的getCount方法就可完成分页。ReplyAction:用于处理回帖请求以及修改删除回帖请求。TopicAction:用于处理帖子的相关请求,完成发帖,修改帖子,删除帖子操作。TopicDetailAction:用于显示帖子详情的页面的数据处理。AJAXAction:主要完成(wn chng)对用户名的验证,检验注册时用户名是否存在。下列图是控制层的类图:图5.3 控制层类图5.4业务层的设计业务层主要完成系统的业务处理。当控制层在处理用户的请求的过程中,会调用业务层的方法,
45、由业务层完成业务处理,并将处理完得数据返回或者持久化到数据库。通常业务层会调用持久层里德方法和数据库打交道。有的时候一个业务只是为了数据的增删改查,可以直接在控制层调用持久层的方法进行持久化处理,但是为了系统的可扩展性,还是应该定义一个业务层,由业务层在去调用持久层的方法。这样做的好处是方便以后的系统升级,以及数据库事务处理。下面是业务层类图:图5.4 业务(yw)层类图5.5持久层的设计持久层主要是对数据库的增、删、改、查。运行在系统内存中的数据是暂时的,系统内存中的数据是随时更新的,当处理完成后,内存中的数据就会释放,于是要将系统中经过处理的有用的信息保存起来,等到以后要用到的时候在从数据库中取出来进行处理。在Java中访问数据是通过JDBC来完成的,JDBC提供了访问各种数据库的接口,至于具体的实现由数据库厂商去实现,因此在连接数据库的过程中要用到数据库厂商提供的驱动。通常数据库采用的是关系模型,而Java是一种面向对象的语言,内存中一切皆是对象。