基于java的在线论坛的设计与实现毕业设计论文.docx
《基于java的在线论坛的设计与实现毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于java的在线论坛的设计与实现毕业设计论文.docx(49页珍藏版)》请在冰豆网上搜索。
基于java的在线论坛的设计与实现毕业设计论文
基于java的在线论坛的设计与实现
摘要
为了方便大家的沟通和获取信息,特构建一个在线论坛系统。
该系统以Internet为平台,采用B/S架构,使用Java作为后台开发语言,前台页面采用JSP做显示,同时使用Tiles标签,EL表达式,JavaScript和Ajax等更加方便的实现动态显示数据,底层数据库采用Mysql5.0。
系统采用MVC模式设计,Struts1.0的Action作为控制器,使用Hibernate3.0进行数据持久化,从而提高开发效率和系统反应速度。
系统对于游客、普通用户、版主、管理员等角色提供了用户注册、登录、浏览帖子及其评论,发帖、回复帖子、引用帖子,帖子管理,后台管理等操作,并对于不同的角色有不同的权限。
系统采用富文本编辑器编辑帖子和回复,能够发送图片、附件、视频、Flash等,使我们的交流更加丰富多彩。
并且系统具有附件上传,站内信,用户相片设置、主题更改等功能。
系统最终实现了一个基于信息交流的中小型在线论坛。
关键词:
在线论坛;Struts;Hibernate;JSP
ABSTRACT
Tofacilitatethecommunicationandaccesstoinformation,particularlyonbuildingaOnlineForumSystem.ThesystemusesInternetasaplatform,theuseofB/Sstructure,usingtheJavaprogramminglanguage,thepagedisplayusingJSPtodowhileusingtheTilestags,ELexpressions,JavaScript,andAjaxandsomoreconvenientfordynamicdisplaydata,theunderlyingdatabaseByMysql5.0.SystemusestheMVCmodeldesign,Struts1.0ofActionasacontroller,theuseofpersistentdataHibernate3.0toimprovedevelopmentefficiencyandsystemresponsespeed.Systemfortourists,ordinaryusers,moderators,administratorsandotherrolesprovided:
userregistration,loginandposttheircomments,post,replytopost,referencepost,postmanagement,operationsmanagementbackground,andthedifferentroleshavedifferentpermissions.Systemusesarichtexteditortoeditpostsandreplies,cansendpictures,accessories,video,flash,tomakeourcommunicationmorecolorful.Andthesystemhastheattachmentupload,stationinformation,photosusersettings,thethemechangesandotherfunctions.Finallyimplementedasystembasedonsmallandmediumonlineforumforinformationexchange.
Keywords:
OnlineForum;Struts;Hibernate;JSP
一、绪论
1.1选题背景及意义
在二十一世纪,地球因为互联网的存在,早已变成一个村落。
人们在互联网世界里尽情的遨游,享受着Internet带来的无限乐趣。
我们习惯了上网看新闻、去论坛看帖、网上购物、撰写自己的网络日志、网上聊天,视频等等。
当然搜索引擎也成为了一个重要的角色,它帮我们找到想要的信息。
总之,互联网已经成为我们的一种生活方式,一个巨大的知识库。
本篇设计论文,围绕如何构建在线论坛系统展开研究。
在线论坛系统(BBS)是各种信息交流和传布的场所,它不同于电视报纸等传统的媒体,任何人都可以随便的在BBS上发表自己的言论,不受任何限制。
除了可以发表文字信息外可以上传和转贴图片、音乐、Flash,可以选择字号、颜色,还可以选择有趣的表情图案。
只要几分钟的注册(甚至不需要)你就能畅游BBS,从中享受无穷的乐趣。
本系统就是基于以上功能的一个BBS,旨在为广大网民提供了一个交流平台,能够在这里畅所欲言,发表自己的看法、观点,同时能够结交朋友为生活增添乐趣。
1.2国内外研究现状
国外研究现状
1978年在美国芝加哥开发出一套基于8080芯片的CBBS/Chicago(ComputerizedBulletinBoardSystem/Chicago),这是最早的一套BBS系统。
在这之后随着苹果机的问世,出现了基于苹果机的BulletinBoardSystem和大众信息系统(People,sMessageSystem)2种BBS系统。
1981年IBM个人计算机诞生时,但并没有自己的BBS系统。
而是直到1982年,BussLane才用Basic语言为IBM个人计算机编写了一个原型程序。
在1983年通过CapitalPCUserGroup(CPCUG)的CommunicationSpecialInterestGroup会员的努力,改写出了个人计算机系统的BBS。
经ThomasMach整理后,终于完成了个人计算机的第1版BBS系统——RBBS-PC[1]。
这套BBS系统的最大特色是开源,从而有利于日后的修改和维护。
在这以后的BBS系统时都以此为框架,所以RBBS-PC赢得了BBS鼻祖的美称。
但在当时,也没有解决站与站之间的通讯。
1984年美国的TomJonning开发了一套具有电子功能的电子公告版FIDO。
由于该软件具有站际连线和自动互传信息的功能,所以站际间彼此可以在一个共同的预定时间传送电子邮件,使得BBS网络化有了一线生机。
BBS发展至今,目前世界上主要BBS系统有FidoNet、EggNet、AlterNet和RBBS-Net等等[2]。
国内研究现状
从1991年开始,国内出现了第一个BBS站。
国内的BBS站,按其性质划分,可以分为2种:
一种是商业BBS站,如新华龙讯网;另一种是业余BBS站,如天堂资讯站。
从1998年开始,BBS的影响力逐渐突显出来。
国内很多年轻人开始不太看电视和报纸,获得信息的主要途径转向网络。
在BBS上,大家可以对自己所看到的、听到的、想到的任何一件事做出评论,谁也不知道自己的帖子可能会获得成千上万的人的支持。
2006年7月CNNIC发布的最新统计表明,43.2%的中国网民经常使用BBS论坛,论坛社区应用首次超过即时通讯IM,成为仅次于收发Email的互联网基本应用。
而今,BBS上的帖子阅读量几十万余次已经算不上什么惊天动地的大事了。
BBS论坛已由原来的娱乐性交流工具转化成了一种新兴媒体:
网络媒体。
我们的网络媒体在不断发展,不断变革。
在不断前进的社会中不断增强其影响力与引导力[3]。
现在大部分论坛都是基于B/S结构实现的。
论坛也常被简称为BBS(BulletinBoardSystem)。
随着中国网络的普及和计算机及其外设的大幅度降价,Internet这个概念逐渐深入人心。
中国网民的数量呈几何级数量增长,BBS的普及程度也直追Email。
每个网站几乎都拥有自己的BBS或者BBS链接,BBS社区提供给用户的服务是全面而且非常友好的,用户在社区中可以根据自己的喜好设置不同的显示风格,根据自己的需求定制各种服务。
通过论坛更加快捷的了解企业员工的信息,而建立会员服务的基础是建系论坛管理系统。
通过应用该系统可以实现用户与用户间的交流、企业与企业间的信息交互,利用网络经济而又快捷地与外界进行各种信息沟通,取得更有用的信息资源。
目前,国内的BBS站正向着个性化和专业化的方向发展。
具有代表性的论坛网站有:
新浪论坛、DISCUZ论坛、CCTV论坛、天涯社区、猫扑社区、西祠胡同、人人网等等
1.3在线论坛的发展趋势
Web2.0的时代已经到来,Web2.0与传统的万维网之间最主要的区别就是用户和用户、产品供应商和企业之间更大的协作。
Web1.0时代,论坛社区基本满足网民信息生活的需求,Web2.0时代论坛社区呈现出巨大的商业价值。
当论坛用户数量达到引爆点后,社区流量将开始飞快成长,远远大于Web1.0网站的流量增长速度[3]。
伴随着Web2.0时代的到来,BBS将朝着以下两个方面发展:
BBS论坛系统将朝协同平台发展。
现在动态网站出现一门新技术单点登录。
用户可以通过统一身份认证登录系统。
通过论坛平台外调其他应用系统的功能接口,完成应用系统的服务。
论坛平台还可以集成消息中心,如手机短息、邮件、站内信等等。
使BBS系统上升为一个交流平台,同时也是一个协同系统。
BBS论坛系统也将朝着图形化方向发展。
图形虚拟社区可以非常具体和形象化的模拟整个现实社区的生活,并且具备无限的可扩充性。
在论坛中你甚至可以找到和现实生活完全对应的建筑。
通过一根网线就可以把远在天南海北的朋友聚到一起。
试想,你可以通过外形的不同来区分不同社区的朋友而不是通过ID。
你甚至可以通过外形的不同来猜测对方的性格,这些都是传统虚拟社区所不具备的特点。
二、系统可行性分析
2.1系统开发目标
通过开发该系统完成在线论坛系统的基本功能。
包括用户注册、登录、发帖、回复等基本功能,以及版主对帖子的置顶、置精华、屏蔽等操作和管理员对用户、模块、版主的管理。
同时系统对于游客、普通用户、版主、管理员必须有不同的权限控制。
要求系统能有效、安全、可靠和无误的完成上述操作,并要求界面要简单明了,美观,易于操作,服务器程序利于维护。
系统实现后,能部署到学校网络平台中方便同学们交流与学习。
2.2系统可行性分析
2.2.1技术可行性分析
本网站采用Mysql进行后台数据库的管理、操作和维护,用JSP进行前台界面设计,用Java程序语言完成后台数据库的接口、数据的录入、查询、浏览等功能,采用Eclipse作为开发平台,采用Tomcat作为Web应用服务器。
根据Java简单易用、完全面向对象、具有平台无关性且安全可靠的特点与Eclipse强大的方便的开发工具,以及他们当前的广泛实际应用,充分说明本网站在技术方面可行。
2.2.2经济可行性分析
经济可行性分析(能否赢利)是从经济的角度分析网站系统的规划方案有无实现的可能和开发的价值;分析网站系统所带来的经济效益是否超过开发和维护网站所需要的费用。
学校已搭建健全的网络硬件设施,开发在线论坛所采用的工具MyEclipse,Mysql,Tomcat都是开源的。
所以完成在线论坛的经济可行性完全没有问题。
2.2.3开发环境可行性
网站开发需要装有windows98系统以上的电脑一台,这样的配置在当今已经不能成为难题,而开发工具都为开源软件,都可以在网上下载。
所以开发环境可行性是没有任何问题的。
2.3开发环境和相关技术介绍
1.JSP技术介绍
JSP是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病——脚本级执行(现今PHP4也已经在Zend的支持下,实现编译运行)。
Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和JavaApplet之外,又有新的硕果,就是Jsp——JavaServerPage。
JSP可以在Servlet和JavaBean的支持下,完成功能强大的站点程序。
JSP与Microsoft的ASP、PHP技术非常相似。
ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,这是他们最明显的区别。
此外,ASP、PHP与JSP还有一个更为本质的区别:
两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。
在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生[4]。
事实证明,JavaServlet是一种开发Web应用的理想构架。
JSP以Servlet技术为基础,又在许多方面作了改进。
利用跨平台运行的JavaBean组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。
JSP必将成为其它动态网页技术的有力竞争者。
2.Struts框架介绍
Struts通过提供一个控制器ActionServlet实现了MVC架构,这个控制器可以用来管理JSP页面和其他表现层之间的流程,Strust通过使用ActionForward和ActionMapping来保证表现层之外的控制流决策来实现MVC模式。
JSP可以引用一个逻辑目标,控制器组件在运行时提供准确的URL,从而实现页面的控制。
Struts组件的功能即其对应经典的MVC组件职责。
①ActionForward类:
用于用户指向或者视图选择。
②ActionForm类:
状态改变的数据的封装类,是一个JavaBean。
③ActionMapping类:
状态改变事件的映射类。
④ActionServlet类:
控制器,接受用户请求和状态改变,并发出视图选择控制器的一部分、与模型交互、执行状态改变或状态查询,以及告诉Action及ActionServlet下一个选择的视图。
从视图层来看,Struts有自己的JSTL标签扩展,主要包括如下3中标签。
HTML标签(struts-html.tld):
扩展HTMLForm的JSP标记。
Bean标签(struts-bean.tld):
扩展处理JavaBean的JSP标记。
Logic标签(struts-logic.tld):
扩展测试属性值得JSP标记。
3.Hibernate框架介绍
Hibernate是一个开放源码的ORM持久层框架。
作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发[5]。
简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。
用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。
4.Tomcat介绍
目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位[6]。
Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。
你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。
编译以后,访问将会很快。
Tomcat也具有传统的Web服务器的功能:
处理Html页面。
但是与Apache相比,它的处理静态Html的能力就不如Apache。
我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。
Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越多小型应用网站采用Tomcat作为服务器。
5.Mysql数据库介绍
MySQL数据库是一个较小型的数据库系统,同时是一个多用户、多线程强壮的SQL数据库服务器,并提供免费的安装软件。
由于它对平台环境要求不高,安装方便,适合中小型系统的开发。
三、系统需求分析
3.1系统功能需求
本系统开发的总体目标是实现一个基于Struts+Hibernate的在线论坛。
在该系统中有四类用户:
游客、普通用户、版主和管理员。
因此系统针对这四类角色提出以下需求:
游客的需求:
用户注册,查看帖子,查看帖子回复。
普通用户的需求:
用户登录,发表帖子,回复帖子,查看公告,对自己发表或回复的帖子进行修改或删除。
版主的需求:
具有普通用户的所有功能,对本讨论区的所有帖子可以进行置顶、置精华、屏蔽、取消置顶、取消屏蔽、取消置精华和删除等操作。
管理员的需求:
具有普通用户的所有功能,对所有帖子可以修改或删除,修改用户的个人信息或删除用户,修改和删除公告,添加、修改和删除版块,添加和删除版主。
3.2系统UML建模
3.2.1系统用例图的建立
系统管理的用例如图3.1所示:
图3.1系统管理用例图
管理员管理会员和版块的用例如图3.2所示
图3.2管理员用例图
系统用户的用例如图3.3所示
图3.3用户用例图
3.2.2时序图的建立
会员发贴、回帖的时序图如图3.4所示。
会员首先使用自己的账号和密码登陆系统,登录模块将会把用户的ID保存系统的缓存中,并展现论坛的分类模块给会员。
会员此时可以按照兴趣进入不同的主题讨论区,查看主题文章,并发表新文章和回复新帖,还可以浏览其他类别的主题讨论区。
图3.4会员发贴、回帖的时序图
注册用户浏览论坛注册的时序图如图3.5所示。
未注册的用户首先进入论坛浏览帖子,但不能发贴和回帖。
后进入注册页面填写注册信息,等候会员管理模块验证并把新用户的信息添加到数据库,返回注册成功,用户可继续浏览帖子。
图3.5注册的时序图
论坛管理员管理会员的时序图如图3.6所示。
管理员在提交ID给会员管理模块后,可以对会员进行维护(添加、删除或修改)。
管理员首先输入自己的账号和密码登录系统,此时会将管理员的ID保存在系统缓存中并提交给会员管理模块。
在操作会员的页面中,管理员会根据需要对每个会员进行增删等操作,并将其信息提交给数据库。
数据库会对其进行处理,并更新会员信息,至此管理员管理会员操作成功。
图3.6管理会员时序图
论坛管理员管理论坛分类的时序图如图3.7所示。
管理员使用自己的账号和密码登录后,将管理员的ID保存在系统的缓存中并提交给论坛类别管理模块。
在显示论坛类别管理的页面中,将显示处理类别相关信息给管理员,管理员在该页面中进行增删等操作后,提交操作的ID给数据库模块处理。
数据库模块执行操作后更细结果,并提示更新成功。
最后提示处理成功给管理员。
图3.7管理论坛时序图
论坛管理员管理帖子的时序图如图3.8所示。
管理在帖子模块可以对会员发表的帖子进行维护(删除),还可以对帖子进行一些额外的智能操作,比如置顶帖子、设置精华帖子等。
更改完成后,都要经过数据库的处理,并更新数据,才能成功。
图3.8管理帖子时序图
3.3系统性能需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:
(1)系统处理的准确性和及时性:
系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息处理的需求。
(2)系统的开放性和系统的可扩充性:
在线论坛系统在开发过程中,应该充分考虑以后的可扩充性,要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
3.4数据需求
用户必须先注册后再登录进入系统,系统用户的数据包括用户名、用户密码、用户类型。
用户名在整个系统中是唯一的;用户浏览帖子时,数据应当包括用户名、帖子序号。
用户根据某一主题可以发表帖子,发表帖子需要的数据包括用户名、版块编号、版块分类名、发表帖子标题、发表帖子内容、发表帖子类型。
用户回复帖子的数据包括用户名、回复帖子序号、回复的内容、版块编号、版块分类名;管理员进入后台管理时,需要数据包括管理员ID、管理员密码、管理员的类型。
管理员根据权限的不同分为普通管理员和超级管理员;版主进去后台管理时,需要的数据包括版主名、版主密码、子版块名、版块编号。
数据录入和处理的准确性和实时性也非常重要。
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。
数据的输入来源是手工输入。
手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。
在系统中,数据的输入往往是大量的,因此系统要能迅速的处理数据。
四、系统功能模块分析与设计
4.1系统结构分析
图4.1系统结构图
4.2系统流程分析
通过对系统需求分析可以对论坛总体流程做一个分析说明:
按照角色划分,首先普通游客进入论坛主页面,可以随意浏览帖子,查看留言,但是不能发表帖子和发表留言,接下来如果普通游客想进一步发表帖子或者发表留言,可以通过用户注册按钮点击进入用户注册界面进行新用户的注册。
注册成功之后,此游客就成为本系统的普通用户,享受普通用户的权限(普通用户查询个人信息、用户发表帖子、用户发表留言、用户查看帖子、用户查看留言)。
其次本系统的管理员可以通过主页面的管理员登陆进入后台管理系统,包括用户管理、公告的管理、版块的管理。
管理员可以设置版块管理员,版块管理员可以在前台对帖子的置顶,置精华,屏蔽等操作
前台业务模块的状态图如图4.2所示
图4.2前台业务模块的状态图
后台会员管理的状态图如图4.3所示
图4.3后台会员管理的状态图
后台论坛分类管理的状态图如图4.4所示
图4.4后台论坛分类管理的状态图
后台帖子管理的状态图如图4.5所示
图4.5后台帖子管理的状态图
4.3系统功能模块设计
根据系统流程分析,以及针对系统游客、普通用户、版主、管理员等角色划分以下功能模块:
用户注册:
根据用户输入的注册信息,系统进行错误检测,并返回信息提示用户。
用户登录:
提供登录界面,验证用户名和密码,判断是否为合法用户。
信息显示:
可以查看讨论区的文章,以及回复的帖子的内容。
信息操作:
可以发表主题帖子、回复帖子、修改帖子、删除帖子、置顶帖子、置精华帖,屏蔽帖子等。
并对不同的用户给予不同的权限。
后台管理:
修改用户个人信息、设置版主、删除用户、添加版块、公告管理。
系统功能模块图如图4.6所示
图4.6系统功能模块图
五、系统数据库设计
5.1数据库需求分析
根据系统的需求,数据库中需要创建以下数据表。
①用户信息表:
用于存放注册用户的资料以及用户登录情况。
②帖子模块信息表:
论坛的主要模块,和模块信息的描述。
③帖子信息表:
记录用户发布帖子的信息。
④公告表:
用于记录论坛公告。
⑤用户类型表:
用于用户的类型,如管理员,普通用户,模块管理员。
5.2实体关系分析
5.21实体模型分析
E-R模型是对现实世界的一种抽象。
它的主要成分是实体、联系和属性。
使用这三种成分,我们可以建立许多应用环境的ER模型。
本系统的实体和属性的定义如下:
用户表(用户ID、用户密码、用户昵称、性别、用户电子邮箱、用户级别、用户留言、心情、QQ、公司、图片、图片路径、