版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业论文(设计)题目:基于JAVA的BBS论坛系统的设计与实现姓名:完圆圆学号:1142151221专业:计算机科学与技术院系:信息工程学院指导老师:朱珍元职称学历:讲师/硕士完成时间:2015年5月教务处制昉委徽新华埠电ANHUIXINHUAUNIVERSITYANHUIXINHUAUNIVERSITY安徽新华学院本科毕业论文(设计)独创承诺书本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果。据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己
2、研究成果,不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意。毕业论文(设计)作者签名:日期:安徽新华学院2015届本科毕业论文(设计)基于JAVA的BBS论坛系统的设计与实现摘要在如今的时代论坛已经成为互联网上的一个重要平台,它主要的功能是为用户提供一个互相交流、互相学习、互相帮助的平台。用户在论坛上可以获得各种服务,发表信息,讨论话题,聊天等等。它使人与人之间的沟通、交流变得更加容易,尤其是在IT领域,我们只有能够很好的交流,技术才会一步一步的提升。因此,掌握如何设计并开发一个论坛有着重要而且深远的意义。本文基于JAVA技术的网上论
3、坛系统的设计和实现。设计包括数据库设计,系统架构设计,以及前端用户界面设计。系统中普通用户可以完成用户的登录,退出,发帖,跟帖,注册,修改本人帖子,删除本人帖子,修改密码等功能。管理员可以对版块进行维护,对帖子和用户进行管理。系统采用了MVC设计模式,程序上业务逻辑、控制逻辑和表现逻辑上实现了分离。系统结构清晰,具有良好的可读性、可扩展性和可维护性。该系统使用了Struts框架,表现层运用了JSP网页技术,页面用到了CSS以及JavaScript技术。在文字方面利用了CKEditor框架。注册页面通过AJAX异步传输技术来完成用户名的验证。系统使用了MyEclipse开发工具,运用Hibern
4、ate连接后台MySQL数据库,界面设计人性化,操作简单。关键字:论坛;Struts框架;Hibernate框架;JAVA技术;MySQL数据库安徽新华学院2015届本科毕业论文(设计)DesignandimplementationofJAVAbasedontheBBSForumAbstractIntodayseraoftheforumhasbecomeanimportantplatformontheInternet,itsmainfunctionistoprovideamutualexchange,mutuallearning,mutualhelpplatformforusers.Users
5、cangetallkindsofinformationservices,intheBBSplatformreleaseinformationdiscussions,chatandsoon.Itmakesthecommunicationbetweenpeople,communicationbecomeseasier,especiallyinthefieldofIT,wewereonlyabletocommunicatewell,technologywillbepromotedstepbystep.Therefore,howtodesignandhasimportantandfar-reachin
6、gsignificanceinthedevelopmentofaforum.ThisforumisthedesignandimplementationofonlineforumsystembasedonJAVAtechnology.Thedesignincludesthesystemarchitecturedesign,databasedesign,aswellasthefront-enduserinterfacedesign.Commonusersystemcancompletetheuserlogin,exit,post,reply,registration,modifythepost,d
7、eletemypost,modifypasswordsandotherfunctions.Theadministratorcanmanagetheboard,managementofPostsandusers.ThesystemusestheMVCdesignpattern,theprogramrealizestheseparationofthebusinesslogic,logicandpresentationlogiccontrol.Thesystemstructureisclear,hasgoodreadability,expansibilityandmaintainability.Th
8、esystemusesStrutsframework,presentationlayerusingJSPtechnologyWebpage,pageusedtheCSSandJavaScripttechnology.UsingtheCKEditorframeworkinthetext.TheregistrationpagetocompleteuserverificationbytheasynchronoustransmissiontechnologyAJAX.ThesystemusesMyEclipsedevelopmenttools,useHibernatetoconnectMySQLdat
9、abase,interfacedesign,user-friendly,simpleoperation.Keywords:BBS;StrutsFrame;HibernateFrame;JAVATechnology;DBMySQL安徽新华学院2015届本科毕业论文(设计)目录1绪论.1.1.1课题开发背景及意义.1.1.2国内外现状1.1.3研究内容和目标2.2开发平台与主要技术4.2.1开发平台.MyEclipse Tomcat JDKMySQL5.2.2主要技术JSP MVC模型 StutsHi
10、bernateAJAX73需求分析8.3.1项目背景&3.2功能概述&3.2.1功能结构功能描述9.3.3系统用例9.4总体设计1.1安徽新华学院2015届本科毕业论文(设计)4.1数据库设计114.1.1 E-R图114.1.2表的设计124.2时序图145详细设计.165.1系统模式1.65.2控制层的设计165.3业务层的设计175.4持久层的设计185.5权限设计1.96系统实现206.1运行环境的搭建206.2模块演示206.2.1后台操作206.2.2前台操作227测试257.1测试方案257.1.1单元测试257.2测试用例268总结与展望28致词巾29参考文献30
11、安徽新华学院2015届本科毕业论文(设计)1.1课题开发背景及意义Java属于一种面向对象的程序语言,由于能够跨平台的优点,使得Java从开发以来发展特别迅速, 尤其是在网络方面的发展。网上论坛系统是网络常见的一个应用,用于网络用户的信息交流。如:JAVA开发者论坛。用户可以通过系统,在论坛里发布自己的一些想法,本论坛其他的用户可以对这个想法进行评论或发表自己的想法。为了把所学的JAVA知识在实际中得到运用, 同时深刻的去体会网络的运作, 故选择了基于JAVA的BBS论坛系统作为毕业设计。1.2国内外现状自从进入二十一世纪,计算机网络应用迅速发展,网络应用系统将向更深和更宽的方向发展。以前的应
12、用软件正在消失在我们眼前,取而代之的是支持在线、支持各种信息传输(多媒体)的新生代网络应用,在目前网络软件大概存在着两种不同的派系,一种就是客户端一一服务器的C/S结构网络系统,这种软件的结构严谨,能够高效率运行,给服务器端压力小。,安全性较好等优点,在局域网中被广泛运用。另一种就是本毕业设计采用的,就是浏览器一一服务器的的B/S结构网络系统,它的特点是用户的操作系统只需要有浏览器软件作为媒介,它的优点是加快了软件开发的速度,客户端的限制变小、也消除了地域的限制,减少了网络传输量,局域网可以方便使用,而且网络上也能使用,而且只需较小的投资就能得到较好的效果,用户方不需要对服务器进行投资,因此受
13、到了越来越多单位的喜爱。网络最早是美国国防部高级研究计划局的前身ARPA建立的ARPAnet,网络于1969年在美国投入使用。自从60年代以来,ARPA就开始为美国的一些大学的计算机专业和一些个人的公司提供资助经费, 从而促进分组交换技术的计算机网络的研究。1968年,ARPAnet网络项目被ARPA立项,开发人员主要为了以安徽新华学院2015届本科毕业论文(设计)下几点努力:网络在出现故障的情况下仍然可以维持正常工作,如果国家发生战争,网络的某些部分遭受攻击而瘫痪无法工作,即使这样网络也能够通过其它完好部分从而维持正常通信。1986年, 世界第一次有了网络也就是NSFnet,他是美国的5个超
14、级计算机被美国的网络技术人员连接了起来,并且实现了地区网络的支持。1988年,NSFnet替代ARPAnet成为网络的主要传输媒介。NSFnet是非常成功的TCP/IP技术。1989年,由于ARPAnet的解散,网络从军用转向民用,从此网络飞速的发展起来。“网站”是如今网络上出现的一种新兴媒介,通过网络使其已经成为一个实时的,大数据的信息传播方式。它主要是通过电脑,以及覆盖全球的网络,它没有国家限制,不分种族,时时刻刻地为人们提供各种信息。目前,人们已近开始把网站融入到自己的生活之中,它是新型的新闻媒体,以“分享、公开、公正、创造、国际化”为特性的文明网络也已逐渐成为了这个时代的标志,人们越来
15、越频繁的通过网络获取各种信息,通过网络在网站上发表自己对自己所处社会以及对未来生活期待。随着网络的普及, 论坛作为互联网上的一种应用, 在网络上扮演了一个很重要的角色。随着互联网技术的飞速发展,论坛中内容越来越多,同时也受到广大网民的喜爱,因此商业网站对论坛建设也逐渐重视起来,他们为网民提供了一个交流的平台,同时在线服务技术也在论坛中发展了起来。1.3研究内容和目标如今BBS系统主要是为注册用户提供一个平台,用户可以通过网络登陆论坛,在论坛上发表帖子及观点、回复帖子、阅读帖子,学习自己想学的知识。C/S结构是所有计算机专业学生都知道的软件体系结构,它是将任务合理分配给客户端和服务器端,通过此方
16、法来降低系统的通讯开销,从而达到充分利用到两端硬件环境的优势。这属于早期的大多数软件系统的设计标准。本系统的目的是研究B/S结构,研究只需通过浏览器就可以实现,在用户前端完成用户可视化界面展示,在服务器端实现主要的功能,形成我们所说的浏览2安徽新华学院2015届本科毕业论文(设计)器一服务器结构。研究B/S结构是如何利用了不断发展的浏览器,结合浏览器所支持的各种语言以及新出现的ActiveX技术, 让用户只需通过操作系统的浏览器就能将原来需要软件才能实现的功能简单的实现,B/S结构在目前也是网络技术中最受欢迎一种结构。 现今Windows操作系统已经很普及浏览器的安装也非常方便, 这种结构也越
17、来越变成软件编成首选的体系结构。课题研究的目标是将所学的知识运用于实践,结合BBS系统实际需要,采用B/S结构来实现BBS的基本功能,如发帖,回帖,用户登录,用户注册等。安徽新华学院2015届本科毕业论文(设计)2开发平台与主要技术2.1开发平台2.1.1 MyEclipseMyEclipse是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于JavaJavaEE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。MyEclipse是一个企业级开发平台工具,它是对EclipselDE的功能进行了扩展,使用M
18、yEclipe可以简单、 方便的实现JavaEE项目的开发、 部署以及开发完成后对软件的整合使我们工作效率得到了很大的提高。MyEclipse简单的说是集成了各种插件的JavaEE,它不但包括JavaEE的各种功能,而且支持各种web开发语言,是一个开发软件和网站的方便快捷的Eclipse插件的集合。由于MyEclipse这些优点,所以系统选用了MyEclipse作为开发工具,这给系统的开发带来了许多的便捷。2.1.2 TomcatJakarta项目中的一个主要项目就是Tomcat它是Apache软件基金会支持,是由Apache、Sun和一些公司及个人共同开发的。 由于有了Sun的参与和支持,
19、 目前的Servlet和JSP规范在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范1。因为Tomcat具有先进的技术和稳定的性能,如今深受Java开发者的亲睐并且开发商大多也使用它,在目前的应用服务器市场广泛使用。目前最新版本是8.0oTomcat属于轻量级的Web应用服务器,它对所有人和公司都是免费的,它被普遍使用在中小型系统和访问量不是很大的网站,JSP程序开发和调试一般选择Tomcat。对于刚开始的接触Tomcat的学习者来说,Apache服务器只要在电脑上做好正确的配置,就可利用它响应页面的请求。事实Tomcat是对Apache服务器的一个扩展,
20、但是他可以自己独立运行,Tomcat是一个单独运行的Apache安徽新华学院2015届本科毕业论文(设计)独立进程。实际上Tomcat是运行JSP页面和Servlet类。另外,Tomcat和其他一些Web应用服务器一样,它也可以处理HTML页面的功能,Tomcat相当于一个Servlet和JSP容器,Tomcat的默认模式就是独立的Servlet容器1。在处理静态HTML的能力Apache服务器要比Tomcat出色。2.1.3 JDKJDK是Java开发人员必须要使用的开发平台。从Java推出到现在,JDK几乎已近被所有Java开发人员所使用。Java平台主要就是JDK,Java运行环境所需要
21、的也是JDK,开发Java所需的工具和Java类基本都存在于JDK中。只有内置了某个版本的JDK这样Java应用服务器才能够运行起来。所以要学会Java就必须掌握JDK。目前开发使用的JDK大多是Sun公司开发的JDK,其实还有其他的JDK,有的公司和组织都开发了属于自己的JDK,但Sun的JDK是运用最广泛的。自从JDK从5.0后力口入了许多强大的功能比如说泛型,JDK版本信息就取消继承以前1.2,1.3,1.4的版本,从5.0,6.0开始了。从6.0开始,程序的开发效率得到了极大地提高,尤其是在可视化应用方面2-4。JDK是使用Java来编写的,在官网中下载的安装包安装后有src.zip的
22、压缩文件,里面包含了所有JDK的源代码。它是一个写Java程序的开发环境。本系统在开发的过程中选用的是JDK1.7版本。2.14MySQLMySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem关系数据库管理系统)应用软件之一1。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据
23、库的最常用标准化语言。它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作安徽新华学院2015届本科毕业论文(设计)为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。2.2主要技术2.2.1 JSPJSP全名为JavaServerPages中文名叫java服务器页面, 其根本是一个简化的Servlet设计, 它是由SunMicrosystems公司倡导、 许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*htm,*html)中插入Jav
24、a程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)o用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行4-5。它实现了Html语法中的java扩张(以%,%形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。JSP是一种动态页面技术, 它的主要目的是将表示逻辑从Servlet中分离出来。2.2.2 MVC模型随着网络的飞速发展,算法越来
25、越复杂,客户端需要的功能越来越强大,这使客户机变得无法满足需求,所以系统和商业分离了。单独形成一部分,这样三层结构产生了。其中层是逻辑上的划分。三层体系结构是将整个系统划分表现层(Presentationlayer、业务逻辑层(Businesslayer、数据持久层(Persistencelayer),三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分,各层与其余层分离,但各层之间存有通信接口6-10。MVC结构出现对网站开发的影响是巨大的,它促进了人们的创新出了各种各样的设计思想,同时也出现了各种方便的开发框架。安徽新华学院2015届本科毕业论文(设计)2.2.3 Stu
26、ts、Hibernate、AJAXStruts可以使Web应用程序混合使用JSP和Servlet的优点来建立可扩展的应用。Struts解决了用JSP或Servlet开发Web应用程序时遇到的万儿难题。 以前没有学习Struts时需要写大量的Servlet代码和许多XML的配置,才可以通过前端页面将数据传输到后端处理后,最后返回请求页面地址8-9。学习Struts后只需要进行少量的配置就可以实现原来的功能, 本系统使用了Struts来控制网页的显示,简单而清晰的条理让开发效率变得更加高效。Struts在Java服务器端实现了MVC设计模式,在创建Web应用程序时能容易地分离表示层和业务数据层,这
27、就解决了JSP带来的问题。在本系统中Hibernate也是一个重要的角色,它使我们后台连接数据库变的方便而且利于扩展, 如果系统想在其他数据库中运行的话, 我们只需在数据库中创建好数据库,然后将Hibernate的配置文件中数据库名称、jar包以及用户名密码进行修改就可以运行了11-14。使用Hibernate我们不需要自己建表我们只需将各个JavaBean字段的关系写入配置文件后,Hibernate就能够自动建表。Hibernate的主要作用就是管理对象之间的关系,然后通过HQL语句对数据库的数据进行管理在以前用户注册只有将数据提交到后台验证数据库中有没有相同的数据, 最后将结果返回到页面上
28、显示才能够知道用户名是否重复,在这个系统中用到了现在较为流行的AJAX技术,这项技术在输入数据后填写下个数据时会触发JS事件,JS就会将请求发个服务器然后取出想要的数据,在填写其他信息时用户就能够知道能否填写某些信息这使服务器和浏览器的数据交换大量减少,让用户感觉到网站响应速度很快。安徽新华学院2015届本科毕业论文(设计)3需求分析3.1项目背景当今网络技术逐渐渗入社会生活各个层面,随着互联网的普及,人们在网上的活动变得越来越丰富,在网上的交流也越来越平凡。BBS论坛分为很多类,一般一个论坛的用户都有相同的爱好,而且论坛对所有人都是不收费的。在论坛中由于用户很多,所以在用户提出一些话题时基本
29、上都有人为你解答和讨论。在论坛里,人们消除了时间空间的限制,用户不必担心个人信息的泄露,论坛中的注册用户都可以发表自己的话题和对其他用户的话题提出自己的看法,所有用户都是平等的,可以随意的讨论自己想讨论的不违法的话题。因此BBS网上论坛系统有着广阔的市场背景。3.2功能概述3.2.1功能结构在本系统中我将其分为3个部分, 分别为: 用户的管理、 版块的管理、 帖子的管理。帖子的管理又分为发表帖子,回复帖子,修改帖子,删除帖子;用户的管理又分为登录,注册,退出,修改信息的操作;版块的管理又分为添加版块,修改版块,删除版块操作。系统的功能结构图如图3.1所示:安徽新华学院2015届本科毕业论文(设
30、计)基于JAVA的BBS论坛图3.1系统功能结构图3.2.2功能描述在本论坛系统中是由两个小系统而组成, 一个是前台用户系统, 另一个是后台管理系统。主要包括:版块的管理、用户的管理、帖子的管理、三个功能模块。管理员在后台版块管理中具有的操作是添加版块,修改版块,删除版块,添加子版块,修改子版块,删除子版块,但普通用户不具有这些操作。管理员在后台用户管理中可以删除用户和添加系统管理员的功能。用户和管理员可以发表帖子,修改帖子,删除帖子,回复帖子的操作。但这些操作都必须在用户登录以后才能进行, 而且每个登录的用户只能修改和删除自己的帖子和回帖,只有管理员可以删除所有人的帖子以及回复。3.3系统用
31、例由参与者(Actor)、用例(UseCase以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。用例图(UserCase是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之问的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用帖子管理用户管理版块管理用户注册用户登录用户退出信息修改安徽新华学院2015届本科毕业论文(设计)例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。BBS论坛系统前台用例:前台是用户登录后发表观点和回复观点
32、,用户之间进行交流,帖子管理的用例图如图3,2所示。BBS交流平台后台用例:后台主要是管理员对后台帖子、版块进行管理维护,后台系统用例图如图3,3所示。10安徽新华学院2015届本科毕业论文(设计)4总体设计4.1数据库设计在软件开发中最重要的就是数据库设计, 一个好的数据库设计能够给开发带来极大的便捷,使程序员只需通过少量的代码就能实现所需的功能,加快开发人员的开发效率, 更快的完成任务。 反之数据库不设计好就会使系统开发的进展变得缓慢,甚至失败。 为了减少数据的冗余, 提高系统运行的效率我们必须设计出一个好的数据库。系统在数据库设计上共设计了五张表,它们分别是:用户表、角色表、版块表、话题
33、表、回贴表。4.1.1 E-R图数据库的E-R图是非常重要的它反映了各字段间的关系,Mysql的可视化工具SQLyog中自带架构设计器, 它是采用图形化来表现的, 很方便的就能将要关联的字段关联起来。并且能够自动创建E-R图,使表与表之间的关系更简单清晰的展现了出来,系统数据库的E-R如图4.1所示t_replly 受 J力飞国rra3fy_idre3fycontEntre5ly_jJLjblsh_tirrHere?ly_nnodify_limeuser_idtopiciidq用吗Jwpiodtcpic_cantenttcpic_pubiisti_tmetcpic_cantenttcpic_p
34、ubiisti_tmetcpic_mtcpic_mododi-i-y_tirny_tirne ejser_idjser_idD5rd_itD5rd_it图4.1数据库E-R图11rg-le_idrofe_naiTic1安徽新华学院2015届本科毕业论文(设计)4.1.2表的设计1.用户表中有用户ID,用户名,密码,头像,注册时间,性别,角色ID;2.角色表中有角色ID,角色名称;3.版块表中有版块ID,父版块ID,版块名称;4.话题表中有话题ID,话题内容,话题标题,发表话题时间,所属用户ID,修改话题时间,所属版块ID;5.回帖表中有回帖ID,回帖内容,修改回帖时间,回帖时间,所属用户ID,
35、用户表主要保存的是用户信息,在用户表里面有一个字段是ROLE_ID它是于角色表关联的。用户表的设计信息如图4.2所示图4.2用户表的设计角色表是用来保存系统用到的角色,系统只有两个角色,一个是admin系统管理员,另一个是view普通用户。角色表的设计信息如图4.3所示。user_headuser_head1_11_1占曰r_r_reretitim me eusergendusergendererFieidFieidvarchar(2C)varchar(varchar(2C)varchar(20)varchar(IGO320)varchar(IGO3datedatetimetimevarcha
36、r(2)int(ivarchar(2)int(i1)1)t_usert_userser_nameser_name12图4.3角色表的设计安徽新华学院2015届本科毕业论文(设计)版块表是存储系统版块信息, 系统只有两级版块, 数据表使用parent_board_id与自身关联来区分版块等级,parent_board_id字段为空时代表一级版块。版块表的设计信息如图4.4所示。t_board|sl/boardjdint(llboard_namevarchar(50)parent_board_idint(ll)图4.4版块表的设计话题表是存储用户发表的话题, 它的board_id字段关联了版块表主
37、要功能是区分属于哪个版块,它的user_id字段关联了用户表主要功能是区分话题属于哪个用户发表的,话题内容字段设为text这使得话题内容可以有较多的信息。话题表的设计信息如图4.5所示。t_reply屏服BQ播.reply_idreply_contentreply_publish_timereply_mcdify_timeser_idtopic_id图4.5话题表的设计回帖表是存储用户话题的回帖, 它的topic_id字段关联了话题表是用来区分该回复属于哪个话题,它的user_id字段关联了用户表主要功能是区分该回复是哪个用户回复的,回帖表的详细信息如图4.5所示。13textd日t已time
38、datetimeint(ll)int(LL)安徽新华学院2015届本科毕业论文(设计)Lreply嚼脂用jo口reply_idreply_contertreply_publish_tinnereply_modify_tinieuser_idtopijid图4.5回帖表的设计4.2时序图我们编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开。这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按照怎么样的顺序、传递什么消息、返回什么消息。这时候用时序图是最好不过的了。时序图主要用于按照交互发生的一系列顺序, 显示对象之间的这些交互他由活
39、动者(Actor)、对象(Object)、消息(Message、生命线(Lifeline)和控制焦点(Focusofcontrol)组成。在UML中,对象表示为一个矩形,其中对象名称标有下划线;消息在时序图中由有标记的箭头表示;生命线由虚线表示,控制焦点由薄薄的矩形表示。图4.6是用户发帖的时序图,可以大致看出本系统的流程。在用户填好需要发表的信息点击发表帖子的按钮后,这时浏览器就会向服务器发送一个请求,服务器在接收到请求以后, 将信息交个Struts的ActionServlet类来处理,ActionServlet会去查询Struts-config.xml配置文件查找出相对应的方法,然后Top
40、icAction类中的对应方法处理,TopicAction类获取浏览器传过来的信息,创建一个Topic对象,接着调用业务层TopicService里的保存帖子的方法,最后调14mt(lL)textdatetimedatetimeint(lL)int(lL)安徽新华学院2015届本科毕业论文(设计)用持久层方法将Topic对象保存到数据库中。最后系统会将处理结果返回。用户就可以看到自己发表的帖子。浏览器ActionServletStruts-config.xmlTopicActicrTopicServiceTopicDaoActioMI调用postTopic创建帖子对象1请求页师*.获取对象保存
41、帖子 A调用持久化毋谒久化到数据库保存结果一返回消缶-安徽新华学院2015届本科毕业论文(设计)5详细设计5.1系统模式MVC模式的代表模型视图控制器模式。这种模式是为了分离软件开发中各模块的耦合。Model(模型):用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。Model”不依赖“View”和“Controller”,也就是说,Model不关心它会被如何显示或是如何被操作。但是Model中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此Model的View必须事先在此Model上注册,从而,View可以了解在数据Model上发生的改变,Model则是由一
42、个实体Bean来实现。View(视图):能够实现数据有目的的显示(理论上,这不是必需的)。在View中一般没进入帖子详情页面 T-图4.6用户发帖时序图15r-响应请求有程序上的逻辑。为了实现View上的刷新功能,View需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。Controller(控制器):起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据Model上的改变。本系统的设计采用了MVC的设计思想,控制器使用了自己较为熟悉的Struts1框架。Model层使用的是JavaBeanffiHibernate框架完
43、成,View层由一般的JSP实现的。5.2控制层的设计本系统使用Struts1框架处理控制层。通常一个“控制器”是一个用户界面组件和模型之间的接口。控制器应细类,做多一点映射的用户界面事件模型的功能。它主要功能是处理用户的请求给服务器,服务器接收到这个请求有权限就会被传递到Struts的ActionServlet里。Struts1在收到浏览器发来的请求以后,会去查找struts-config.xml文件,找到用户请求的Action类, 然后将信息传给Action类。 通过Action类中的方法处理后得到相应的结果最后交给JSP视图,并给返回一个响应给用户,本系统由816安徽新华学院2015届本
44、科毕业论文(设计)个Action类组成控制层,控制层的类图如图5,1所示:TopicAction图5.1控制层类图5.3业务层的设计业务层主要完成系统的业务处理。 当控制层接收到用户的请求就会调用业务层的某个方法,业务层调用持久层将数据保存到数据库或者返回消息给控制层。一般情况下业务层也可以持久化数据将数据存入数据库,但本系统为了使系统能够灵活扩展,所以定义了业务层和持久层。 业务层负责调用方法, 持久层只负责完成数据库的操作。业务层类图如图5,2所示:17UserActionReplyActionBoardAction+login()+loginout()+regist()+adminLog
45、in()+reply()+loadReplyUpdateData()+updateReply()+deleteReply()AJXAAction+execute()+addBoard()+delete()+update()+addChildBoard()+listBoard()+loadUpdateData()+listChildBoard()+search()+listFirstBoard()N 十MappingDispatchActionBBSAction+index()+loadTopic()+postTopic()+loadTopicUpdateData()+updateTopic()
46、+deleteTopic()+getCount()APageAction+initTotalPages()+getCount()TopicDetailAction+showDetail()+getCount()安徽新华学院2015届本科毕业论文(设计)图5.2业务层类图5.4持久层的设计持久层主要包括的方法是对数据库的增删改查。在系统中用户的操作所产生的数据其实是暂时的、随时更新的、系统处理过后这些数据就会消失,所以需要持久层将有用的数据存入数据库,保证需要时可以随时获取。本系统是通过JDBC来完成数据库访问的, 现在不同的数据库厂商都提供了访问数据库的JDBC接口提供了访问各种数据库的接口,
47、在数据库中对象之间都是关系模型,所以在访问数据库时要将每个字段对应起来,由于这一环节容易出错故本系统使用了Hibernate持久层来完成对象和关系的一一对应。增加Hibernate持久层提高了开发的效率, 使软件的体系结构更加清晰, 在代码编写和系统维护方面变得更容易。特别是在大型的应用里边,会更有利。同时,持久化层作为单独的一层,人们可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上层提供服务。从而使得各个企业里做应用开发的开发人员,不必再来做数据持久化的底层实现工作,而是可以直接调用持久化层提供的API。持久层的类图如图5.3所示:18ReplyServiceoTop
48、icServiceoBoardServiceOUserService安徽新华学院2015届本科毕业论文(设计)5.5权限设计在本系统里还对权限进行了简单的设计,前端页面使用了比较方便的jsp标签对权限进行判断从而隐藏和显示修改、删除的两个链接。普通用户只能看见自己发表和回复消息下的删除和修改链接,只可以对自己的帖子进行修改删除。管理员可以看见任何用户的删除链接,可以对任何用户的帖子进行删除。本系统后台采用了过滤器,后台的维护只有管理员可以进入,系统通过MyFilter.Java类完成简单的过滤。当浏览器有请求发出时会先进入过滤器进行处理,首先过滤器会对编码进行设置,将其设置为UTF-8,然后判
49、断用户访问的资源是否公开,如果不是检查用户是否登陆,没有就跳转到登陆页面,如果登陆就判断用户权限,检查用户是否是管理员,如果是,进入页面不是则跳转到无权访问页面。19TopicDAOHibernateImplTopicDAO+add()+findById()+getAll()+findByBoardId()+findByBoardId()+delete()+update()+findByUser()oRoleDAOoReplyDAOHibernateImplo+addReply()+deleteReply()+updateReply()+findAll()+findByR即lyId()+fin
50、dByTopicId()+findByTopicId()ReplyDAOoBoardDAO图5.3持久层类图安徽新华学院2015届本科毕业论文(设计)6系统实现6.1运行环境的搭建第一步:从官网下载安装包将JDK1.7安装到将要运行的电脑里,然后将电脑的环境变量配置好。第二步:下载MySql数据库将数据库安装到电脑上,打开数据库建立数据库名为bbs,右击数据库点击导入一一执行SQL脚本将数据导入数据库。第三步:下载Tomcat7.0压缩包解压。第四步:将bbs.war复制到Tmocat7.0的webapps目录下。第五步:点击Tomcat7.0的bin目录下的startup.bat运行Tomc
51、at,Tomcat会自动解压war包,然后我们就能在浏览器中访问论坛了。6.2模块演示6.2.1后台操作打开浏览器,输入http:/localhost:8080/bbs/manager/index.jsp入后台登陆页面,后台登陆界面如图6.1所示学习者论坛能坛交费平台后门真理司atnd-in将研一meme-佗之幺全军统lUhlUh1 1器5VM5VM2542541M01294BeQNJHffl1M01294BeQNJHfflQQiT2H074MQQiT2H074M图6.1后台登录界面在系统中存在一个管理员为admin,密码也为admin,管理员可以添加管理员也可以修改自己的密码,以及对系统进行
52、管理。输入正确的用户名密码就能够安徽新华学院2015届本科毕业论文(设计)管理后台了,后台主页面如图6.2所示图6.2后台主页面管理员进入后台可以通过页面的菜单选择想要的操作,管理员点击版块管理就会显示所有的版块,点击向下箭头可以展开版块管理选择添加和查询版块,管理员也可以删除和修改版块。点击帖子管理可进入前台对帖子进行管理。点击用户管理,可以查看论坛的用户和对用户进行管理,以及添加新的管理员。版块管理的界面如图6.3所示图6.3版块管理界面21安徽新华学院2015届本科毕业论文(设计)6.2.2前台操作打开浏览器,输入http:/localhost:8080/bbs/index.jsp进入前
53、台主页面,当用户通过访问地址进入主界面后,可以看到论坛的父版块和父版块下的子版块,以及各个子版块最新的帖子和发帖用户名。论坛系统主界面如图6.4所示雄;.讯十人可由左转也西特M M如甲牛1 1时;2424笔记-F啻Mt支二寸UH节量得利运行旅程发帖人FMitre】f4:Jny.:tCTT-i-:i-iy-.;i 茁税录致,不发 MAailrrnJH书:上衽甲feTJiL,l*TyMrW.制晶副t,代如生成苦彳良国T,整)发WAKS=JWAKS=J戳武瘁阪史耳T T;凌帖人fiemi-f;uti*元幅N共忘猊入,自运】,二号”心作丁 1小小虚E解! 戈帕七 三图6.4论坛系统主页面点击某个子版块
54、可以进入查看帖子的页面, 但如果想要发帖或回帖用户必须登录,帖子页面可以看到帖子标题、回复数、以及发帖的作者。用户登录后进入某个版块查看发帖的页面如图6.5所示。这个页面提供分页显示。胡运立演平台i-wgaai-wgaa寰亚塞:wlmint人中心安宝夫出即内杵1:55:牌就费厘S页ft55上一员1T35贲-帖子tr心帕回EI悭新城研IgStr出2日,山州脚厢后田龌admin0fj?:2M.r:eiutsSadminadminDbprihg与Sfrutt工整自=rQ 基于人附;“.孙却用腕DFm而;专比行并就5三0标一如L性强2iQ的出中网旗国Ed;英预一方感更面说!好蛆R有运09-4U15:株
55、张号粉出来agrnnagrnn3第而其贵上一页1T-5跳片到_而图6.5版块详情页面片里名伸帖子!品整修帖旧加开用I II.jjI.jj安徽新华学院2015届本科毕业论文(设计)如果没有账号的用户可以进行注册,注册时系统会对用户所填信息进行检查,正确输入信息才能注册成功。注册成功后登陆系统就可以发帖回帖了。用户注册页面如图6.6所示图6.6用户注册页面用户注册之后可以点击发表话题按钮进入发帖界面发表帖子,用户发帖界面如图6.7所示帖子标题,时手际游不里为空帖于内咨:图6.7用户发帖页面用户发帖过后会跳转到帖子详情页面,用户可以查看、回复帖子以及修改和删除自己的帖子和回复,帖子详情页面如图6.8
56、所示安徽新华学院2015届本科毕业论文(设计)标题标题: :SpineAJFjoinpointSpineAJFjoinpoint理不到参数求解!理不到参数求解!目标对象加展类,用JQinpoinJQinpoin联收到的参数为空,其他类能正常获取。目标对象方法publicpublicMipStringjString?inodify(MopStrinfMipStringjString?inodify(MopStringDfiObjectquery=ncwBa$icD5Object()query.put(DfiObjectquery=ncwBa$icD5Object()query.put(ididH
57、 H resMapresMapJ Jget(get(r rt tldldM M););UBUt1ectseti-iei(UBUt1ectseti-iei(;s=nebasiEUBUbect()s=nebasiEUBUbect(); ;&etFields,putAll(rescap);&etFields,putAll(rescap);Writeilesultwr-getDBCoIlectian(),updateMulti(queryWriteilesultwr-getDBCoIlectian(),updateMulti(querynewnewE ETesblap.clearsTesblap.cl
58、ears;ifif(nr(nrL LgetN()getN()G G)(/0)(/0 -failjre1success-failjre1successresMap.put(resMap.put(H,H,stitestiteH,H,f f*=*=1/);1/);图6.8帖子详情页面如果有用户回复自己的帖子,用户进入帖子详情页面就可以看到所有用户的回复内容,用户也可以自己选择回复哪个的用户,帖子内容展示页面如图6.9所4MlM4MlM时,或能豆前曝天大励意奥果粒 h 到杆豌际.JlTMbinriJg.JlTMbinriJg.即曷干IfiIfi显示4 4棚揭氐说我在依费,赛峨1 1寝了-依了xar*x
59、ar*本也无4 4孑事立安不整,,眄可依,也冉样的世融/寻出二甘KtluJSwHP-与相什也管置?国郑飞i i标连*轴HtiqnHtiqn等全胃问询而归啜有施shutswrishutswri”是不易这个原国T TIW-2O15-M-2SIW-2O15-M-2SJ|J|后都细病又鸣N N编优1 1茸值跟1m1mEllEllLKi-R.i,.I二】t#l恰-l黄鼎皿机干到克云*国会第交了,kmt:E 里百总 3 匚口岑包昌三错了朝潮伟由关主*注阳时间;2015-04-232015-04-23用户名士admiadmin n性别:勇3 同”1 1:”用户行;fidrnin性剧,我4 4W14W14/U
60、154MUJ图6.9帖子详情页面安徽新华学院2015届本科毕业论文(设计)7测试现在测试越来越成为系统开发中的重要环节,越来越受到人们的重视,随着系统开发规模的增大、复杂程度的增加,以寻找系统中的错误为目的的测试工作显得更加困难。然而,为了尽可能多地找出程序中的错误,产生出高质量的项目产品,加强对测试工作的组织和管理就显得尤为重要。从我们网站的生存周期看,测试往往是指对程序的测试,这样做的优点是被测对象明确,测试的可操作性有错误,测试的质量就难以保证。即使测试后产生错误,此时,修改的代价是相当昂贵的。因此,较理想的做法是对软件的开发过程。按照软件工程各个阶段形成的结果,分别进行严格的审查。7.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度生态农业地产合作开发合同书
- 二零二五年度出租车座套定制与品牌推广合同3篇
- 二零二五版电力设备质检员招聘与职责协议书3篇
- 个性化仓储解决方案服务外包协议范本版A版
- 2025年度企业员工心理健康培训服务合同范本8篇
- 中美洲2024年原材料供应协议
- 养殖场动物疫病防治服务合同(2025年度)3篇
- 2025版围栏施工安全风险评估与应急预案合同3篇
- 2025年度买卖合同担保条款修订版及风险防范策略
- 二零二五年度供暖设施安全检测与暖气安装合同样本
- 智慧校园信息化建设项目组织人员安排方案
- 浙教版七年级上册数学第4章代数式单元测试卷(含答案)
- 一病一品成果护理汇报
- AQ-T 1009-2021矿山救护队标准化考核规范
- 盐酸埃克替尼临床疗效、不良反应与药代动力学的相关性分析的开题报告
- 消防设施安全检查表
- 组合结构设计原理 第2版 课件 第6、7章 钢-混凝土组合梁、钢-混凝土组合剪力墙
- 建筑公司资质常识培训课件
- GB/T 26316-2023市场、民意和社会调查(包括洞察与数据分析)术语和服务要求
- 春节值班安全教育培训
- 带状疱疹护理查房
评论
0/150
提交评论