基于JAVA的BBS论坛的设计与实现Word格式.docx
《基于JAVA的BBS论坛的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《基于JAVA的BBS论坛的设计与实现Word格式.docx(30页珍藏版)》请在冰豆网上搜索。
![基于JAVA的BBS论坛的设计与实现Word格式.docx](https://file1.bdocx.com/fileroot1/2023-2/2/ab8e1319-da01-4c02-8b60-4d9f30e24d81/ab8e1319-da01-4c02-8b60-4d9f30e24d811.gif)
据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。
与我一同工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意。
毕业论文(设计)作者签名:
日期:
摘要
在如今的时代论坛已经成为互联网上的一个重要平台,它主要的功能是为用户提供一个互相交流、互相学习、互相帮助的平台。
用户在论坛上可以获得各种服务,发表信息,讨论话题,聊天等等。
它使人与人之间的沟通、交流变得更加容易,尤其是在IT领域,我们只有能够很好的交流,技术才会一步一步的提升。
因此,掌握如何设计并开发一个论坛有着重要而且深远的意义。
本文基于JAVA技术的网上论坛系统的设计和实现。
设计包括数据库设计,系统架构设计,以及前端用户界面设计。
系统中普通用户可以完成用户的登录,退出,发帖,跟帖,注册,修改本人帖子,删除本人帖子,修改密码等功能。
管理员可以对版块进行维护,对帖子和用户进行管理。
系统采用了MVC设计模式,程序上业务逻辑、控制逻辑和表现逻辑上实现了分离。
系统结构清晰,具有良好的可读性、可扩展性和可维护性。
该系统使用了Struts框架,表现层运用了JSP网页技术,页面用到了CSS以及JavaScript技术。
在文字方面利用了CKEditor框架。
注册页面通过AJAX异步传输技术来完成用户名的验证。
系统使用了MyEclipse开发工具,运用Hibernate连接后台MySQL数据库,界面设计人性化,操作简单。
关键字:
论坛;
Struts框架;
Hibernate框架;
JAVA技术;
MySQL数据库
DesignandimplementationofJAVA
basedonthe
BBS
Forum
Abstract
Intoday'
seraoftheforumhasbecomeanimportantplatformontheInternet,itsmainfunctionistoprovideamutualexchange,mutuallearning,mutualhelpplatformforusers.Userscangetallkindsofinformationservices,intheBBSplatformreleaseinformationdiscussions,chatandsoon.Itmakesthecommunicationbetweenpeople,communicationbecomeseasier,especiallyinthefieldofIT,wewereonlyabletocommunicatewell,technologywillbepromotedstepbystep.Therefore,howtodesignandhasimportantandfar-reachingsignificanceinthedevelopmentofaforum.
ThisforumisthedesignandimplementationofonlineforumsystembasedonJAVAtechnology.Thedesignincludesthesystemarchitecturedesign,databasedesign,aswellasthefront-enduserinterfacedesign.Commonusersystemcancompletetheuserlogin,exit,post,reply,registration,modifythepost,deletemypost,modifypasswordsandotherfunctions.Theadministratorcanmanagetheboard,managementofPostsandusers.
ThesystemusestheMVCdesignpattern,theprogramrealizestheseparationofthebusinesslogic,logicandpresentationlogiccontrol.Thesystemstructureisclear,hasgoodreadability,expansibilityandmaintainability.ThesystemusesStrutsframework,presentationlayerusingJSPtechnologyWebpage,pageusedtheCSSandJavaScripttechnology.UsingtheCKEditorframeworkinthetext.TheregistrationpagetocompleteuserverificationbytheasynchronoustransmissiontechnologyAJAX.ThesystemusesMyEclipsedevelopmenttools,useHibernatetoconnectMySQLdatabase,interfacedesign,user-friendly,simpleoperation.
Keywords:
BBS;
StrutsFrame;
HibernateFrame;
JAVATechnology;
DBMySQL
1绪论
1.1课题开发背景及意义
Java属于一种面向对象的程序语言,由于能够跨平台的优点,使得Java从开发以来发展特别迅速,尤其是在网络方面的发展。
网上论坛系统是网络常见的一个应用,用于网络用户的信息交流。
如:
JAVA开发者论坛。
用户可以通过系统,在论坛里发布自己的一些想法,本论坛其他的用户可以对这个想法进行评论或发表自己的想法。
为了把所学的JAVA知识在实际中得到运用,同时深刻的去体会网络的运作,故选择了基于JAVA的BBS论坛系统作为毕业设计。
1.2国内外现状
自从进入二十一世纪,计算机网络应用迅速发展,网络应用系统将向更深和更宽的方向发展。
以前的应用软件正在消失在我们眼前,取而代之的是支持在线、支持各种信息传输(多媒体)的新生代网络应用,在目前网络软件大概存在着两种不同的派系,一种就是客户端——服务器的C/S结构网络系统,这种软件的结构严谨,能够高效率运行,给服务器端压力小。
,安全性较好等优点,在局域网中被广泛运用。
另一种就是本毕业设计采用的,就是浏览器——服务器的的B/S结构网络系统,它的特点是用户的操作系统只需要有浏览器软件作为媒介,它的优点是加快了软件开发的速度,客户端的限制变小、也消除了地域的限制,减少了网络传输量,局域网可以方便使用,而且网络上也能使用,而且只需较小的投资就能得到较好的效果,用户方不需要对服务器进行投资,因此受到了越来越多单位的喜爱。
网络最早是美国国防部高级研究计划局的前身ARPA建立的ARPAnet,网络于1969年在美国投入使用。
自从60年代以来,ARPA就开始为美国的一些大学的计算机专业和一些个人的公司提供资助经费,从而促进分组交换技术的计算机网络的研究。
1968年,ARPAnet网络项目被ARPA立项,开发人员主要为了以下几点努力:
网络在出现故障的情况下仍然可以维持正常工作,如果国家发生战争,网络的某些部分遭受攻击而瘫痪无法工作,即使这样网络也能够通过其它完好部分从而维持正常通信。
1986年,世界第一次有了网络也就是NSFnet,他是美国的5个超级计算机被美国的网络技术人员连接了起来,并且实现了地区网络的支持。
1988年,NSFnet替代ARPAnet成为网络的主要传输媒介。
NSFnet是非常成功的TCP/IP技术。
1989年,由于ARPAnet的解散,网络从军用转向民用,从此网络飞速的发展起来。
“网站”是如今网络上出现的一种新兴媒介,通过网络使其已经成为一个实时的,大数据的信息传播方式。
它主要是通过电脑,以及覆盖全球的网络,它没有国家限制,不分种族,时时刻刻地为人们提供各种信息。
目前,人们已近开始把网站融入到自己的生活之中,它是新型的新闻媒体,以“分享、公开、公正、创造、国际化”为特性的文明网络也已逐渐成为了这个时代的标志,人们越来越频繁的通过网络获取各种信息,通过网络在网站上发表自己对自己所处社会以及对未来生活期待。
随着网络的普及,论坛作为互联网上的一种应用,在网络上扮演了一个很重要的角色。
随着互联网技术的飞速发展,论坛中内容越来越多,同时也受到广大网民的喜爱,因此商业网站对论坛建设也逐渐重视起来,他们为网民提供了一个交流的平台,同时在线服务技术也在论坛中发展了起来。
1.3研究内容和目标
如今BBS系统主要是为注册用户提供一个平台,用户可以通过网络登陆论坛,在论坛上发表帖子及观点、回复帖子、阅读帖子,学习自己想学的知识。
C/S结构是所有计算机专业学生都知道的软件体系结构,它是将任务合理分配给客户端和服务器端,通过此方法来降低系统的通讯开销,从而达到充分利用到两端硬件环境的优势。
这属于早期的大多数软件系统的设计标准。
本系统的目的是研究B/S结构,研究只需通过浏览器就可以实现,在用户前端完成用户可视化界面展示,在服务器端实现主要的功能,形成我们所说的浏览器—服务器结构。
研究B/S结构是如何利用了不断发展的浏览器,结合浏览器所支持的各种语言以及新出现的ActiveX技术,让用户只需通过操作系统的浏览器就能将原来需要软件才能实现的功能简单的实现,B/S结构在目前也是网络技术中最受欢迎一种结构。
现今Windows操作系统已经很普及浏览器的安装也非常方便,这种结构也越来越变成软件编成首选的体系结构。
课题研究的目标是将所学的知识运用于实践,结合BBS系统实际需要,采用B/S结构来实现BBS的基本功能,如发帖,回帖,用户登录,用户注册等。
2开发平台与主要技术
2.1开发平台
2.1.1MyEclipse
MyEclipse是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发。
MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
MyEclipse是一个企业级开发平台工具,它是对EclipseIDE的功能进行了扩展,使用MyEclipe可以简单、方便的实现JavaEE项目的开发、部署以及开发完成后对软件的整合使我们工作效率得到了很大的提高。
MyEclipse简单的说是集成了各种插件的JavaEE,它不但包括JavaEE的各种功能,而且支持各种web开发语言,是一个开发软件和网站的方便快捷的Eclipse插件的集合。
由于MyEclipse这些优点,所以系统选用了MyEclipse作为开发工具,这给系统的开发带来了许多的便捷。
2.1.2Tomcat
Jakarta项目中的一个主要项目就是Tomcat它是Apache
软件基金会支持,是由Apache、Sun和一些公司及个人共同开发的。
由于有了Sun的参与和支持,目前的Servlet和JSP规范在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范[1]。
因为Tomcat具有先进的技术和稳定的性能,如今深受Java开发者的亲睐并且开发商大多也使用它,在目前的应用服务器市场广泛使用。
目前最新版本是8.0。
Tomcat属于轻量级的Web应用服务器,它对所有人和公司都是免费的,它被普遍使用在中小型系统和访问量不是很大的网站,JSP程序开发和调试一般选择Tomcat。
对于刚开始的接触Tomcat的学习者来说,Apache服务器只要在电脑上做好正确的配置,就可利用它响应页面的请求。
事实Tomcat是对Apache服务器的一个扩展,但是他可以自己独立运行,Tomcat是一个单独运行的Apache独立进程。
实际上Tomcat是运行JSP页面和Servlet类。
另外,Tomcat和其他一些Web应用服务器一样,它也可以处理HTML页面的功能,Tomcat相当于一个Servlet和JSP容器,Tomcat的默认模式就是独立的Servlet容器[1]。
在处理静态HTML的能力Apache服务器要比Tomcat出色。
2.1.3JDK
JDK是Java开发人员必须要使用的开发平台。
从Java推出到现在,JDK几乎已近被所有Java开发人员所使用。
Java平台主要就是JDK,Java运行环境所需要的也是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的压缩文件,里面包含了所有JDK的源代码。
它是一个写Java程序的开发环境。
本系统在开发的过程中选用的是JDK1.7版本。
2.14MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。
MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一[1]。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
2.2主要技术
2.2.1JSP
JSP全名为JavaServerPages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行[4-5]。
它实现了Html语法中的java扩张(以<
%,%>
形式)。
JSP与Servlet一样,是在服务器端执行的。
通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
JSP是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
2.2.2MVC模型
随着网络的飞速发展,算法越来越复杂,客户端需要的功能越来越强大,这使客户机变得无法满足需求,所以系统和商业分离了。
单独形成一部分,这样三层结构产生了。
其中‘层’是逻辑上的划分。
三层体系结构是将整个系统划分表现层(Presentationlayer)、业务逻辑层(Businesslayer)、数据持久层(Persistencelayer),三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分,各层与其余层分离,但各层之间存有通信接口[6-10]。
MVC结构出现对网站开发的影响是巨大的,它促进了人们的创新出了各种各样的设计思想,同时也出现了各种方便的开发框架。
2.2.3Stuts、Hibernate、AJAX
Struts可以使Web应用程序混合使用JSP和Servlet的优点来建立可扩展的应用。
Struts解决了用JSP或Servlet开发Web应用程序时遇到的万儿难题。
以前没有学习Struts时需要写大量的Servlet代码和许多XML的配置,才可以通过前端页面将数据传输到后端处理后,最后返回请求页面地址[8-9]。
学习Struts后只需要进行少量的配置就可以实现原来的功能,本系统使用了Struts来控制网页的显示,简单而清晰的条理让开发效率变得更加高效。
Struts在Java服务器端实现了MVC设计模式,在创建Web应用程序时能容易地分离表示层和业务数据层,这就解决了JSP带来的问题。
在本系统中Hibernate也是一个重要的角色,它使我们后台连接数据库变的方便而且利于扩展,如果系统想在其他数据库中运行的话,我们只需在数据库中创建好数据库,然后将Hibernate的配置文件中数据库名称、jar包以及用户名密码进行修改就可以运行了[11-14]。
使用Hibernate我们不需要自己建表我们只需将各个JavaBean字段的关系写入配置文件后,Hibernate就能够自动建表。
Hibernate的主要作用就是管理对象之间的关系,然后通过HQL语句对数据库的数据进行管理
在以前用户注册只有将数据提交到后台验证数据库中有没有相同的数据,最后将结果返回到页面上显示才能够知道用户名是否重复,在这个系统中用到了现在较为流行的AJAX技术,这项技术在输入数据后填写下个数据时会触发JS事件,JS就会将请求发个服务器然后取出想要的数据,在填写其他信息时用户就能够知道能否填写某些信息这使服务器和浏览器的数据交换大量减少,让用户感觉到网站响应速度很快。
3需求分析
3.1项目背景
当今网络技术逐渐渗入社会生活各个层面,随着互联网的普及,人们在网上的活动变得越来越丰富,在网上的交流也越来越平凡。
BBS论坛分为很多类,一般一个论坛的用户都有相同的爱好,而且论坛对所有人都是不收费的。
在论坛中由于用户很多,所以在用户提出一些话题时基本上都有人为你解答和讨论。
在论坛里,人们消除了时间空间的限制,用户不必担心个人信息的泄露,论坛中的注册用户都可以发表自己的话题和对其他用户的话题提出自己的看法,所有用户都是平等的,可以随意的讨论自己想讨论的不违法的话题。
因此BBS网上论坛系统有着广阔的市场背景。
3.2功能概述
3.2.1功能结构
在本系统中我将其分为3个部分,分别为:
用户的管理、版块的管理、帖子的管理。
帖子的管理又分为发表帖子,回复帖子,修改帖子,删除帖子;
用户的管理又分为登录,注册,退出,修改信息的操作;
版块的管理又分为添加版块,修改版块,删除版块操作。
系统的功能结构图如图3.1所示:
图3.1系统功能结构图
3.2.2功能描述
在本论坛系统中是由两个小系统而组成,一个是前台用户系统,另一个是后台管理系统。
主要包括:
版块的管理、用户的管理、帖子的管理、三个功能模块。
管理员在后台版块管理中具有的操作是添加版块,修改版块,删除版块,添加子版块,修改子版块,删除子版块,但普通用户不具有这些操作。
管理员在后台用户管理中可以删除用户和添加系统管理员的功能。
用户和管理员可以发表帖子,修改帖子,删除帖子,回复帖子的操作。
但这些操作都必须在用户登录以后才能进行,而且每个登录的用户只能修改和删除自己的帖子和回帖,只有管理员可以删除所有人的帖子以及回复。
3.3系统用例
由参与者(Actor)、用例(UseCase)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。
用例图(UserCase)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。
用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。
BBS论坛系统前台用例:
前台是用户登录后发表观点和回复观点,用户之间进行交流,帖子管理的用例图如图3.2所示。
图3.2帖子管理用例图
BBS交流平台后台用例:
后台主要是管理员对后台帖子、版块进行管理维护,后台系统用例图如图3.3所示。
图3.3系统后台用例图
4总体设计
4.1数据库设计
在软件开发中最重要的就是数据库设计,一个好的数据库设计能够给开发带来极大的便捷,使程序员只需通过少量的代码就能实现所需的功能,加快开发人员的开发效率,更快的完成任务。
反之数据库不设计好就会使系统开发的进展变得缓慢,甚至失败。
为了减少数据的冗余,提高系统运行的效率我们必须设计出一个好的数据库。
系统在数据库设计上共设计了五张表,它们分别是:
用户表、角色表、版块表、话题表、回贴表。
4.1.1E-R图
数据库的E-R图是非常重要的它反映了各字段间的关系,Mysql的可视化工具SQLyog中自带架构设计器,它是采用图形化来表现的,很方便的就能将要关联的字段关联起来。
并且能够自动创建E-R图,使表与表之间的关系更简单清晰的展现了出来,系统数据库的E-R如图4.1所示
图4.1数据库E-R图
4.1.2表的设计
1.用户表中有用户ID,用户名,密码,头像,注册时间,性别,角色ID;
2.角色表中有角色ID,角色名称;
3.版块表中有版块ID,父版块ID,版块名称;
4.话题表中有话题ID,话题内容,话题标题,发表话题时间,所属用户ID,修改话题时间,所属版块ID;
5.回帖表中有回帖ID,回帖内容,修改回帖时间,回帖时间,所属用户ID,所属话题ID
用户表主要保存的是用户信息,在用户表里面有一个字段是ROLE_ID它是于角色表关联的。
用户表的设计信息如图4.2所示。
图4.2用户表的设计
角色表是用来保存系统用到的角色,系统只有两个角色,一个是admin系统管理员,另一个是view普通用户。
角色表的设计信息如图4.3所示。
图4.3角色表的设计
版块表是存储系统版块信息,系统只有两级版块,数据表使用parent_board_id与自身关联来区分版块等级,parent_board_id字段为空时代表一级版块。
版块表的设计信息如图4.4所示。
图4.4版块表的设计
话题表是存储用户发表的话题,