基于JSP+ajax的BBS系统设计与实现.docx
《基于JSP+ajax的BBS系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于JSP+ajax的BBS系统设计与实现.docx(44页珍藏版)》请在冰点文库上搜索。
![基于JSP+ajax的BBS系统设计与实现.docx](https://file1.bingdoc.com/fileroot1/2023-5/31/11c719ef-c873-4648-b41f-02af97801eae/11c719ef-c873-4648-b41f-02af97801eae1.gif)
基于JSP+ajax的BBS系统设计与实现
摘要
在二十一世纪,地球因为互联网的存在,早已变成一个村落。
人们在互联网世界里尽情的遨游,享受着Internet带来的无限乐趣。
我们习惯了上网看新闻、去论坛看帖、网上购物、撰写自己的网络日志等等。
当然,最离不开的,还是各种搜索引擎,帮我们找到想要的信息。
总之,互联网已经成为我们的一种生活方式,一个巨大的知识库。
这篇设计论文,围绕如何构建网上论坛系统展开研究。
网上论坛系统是最常见的网络形式,其主要功能是给网友一个交流的平台,大家畅所欲言,互相学习和帮助。
论文分为六个部分。
从系统的需求分析开始,一直到系统详细设计、系统测试与维护,详细论述了系统的整个开发过程。
本系统基于B/S模式,采用流行的JSP+JavaBean+后台数据库三层架构。
在设计过程中,将页面显示与功能逻辑实现分离开来,提高了代码的重用,有利于日后系统的维护和升级。
本系统设计完成后可实现简单的看帖、发帖功能,经作者测试可在多个平台使用。
关键词:
BBS系统;B/S模式;JavaBean;帖子
Abstract
Inthe21th,theEarthbecomesavillage,BecausethepresenceoftheInternet.PeopletravelingaroundinInternetworld,andenjoythemselvesinit.Weusedtowatchnews,browsetopicsinwebforum,goshoppingonE-businesswebsit,writeourblogandsoon.Ofcourse,Themostnecessaryarenumbersofsearchingengineswhichhelpusfindthedesiredinformation.Inaword,Internetturnstoatypeofourlifestyle,ahugerepository.
Thisdissertationfocusingonhowtobuildasimpleonlineforumsystem.Onlineforumsystemisoneofthemostcommonformofnetwork,anditsmainfunctionisgivingInternetusersaplatformtoexchange,communicating,learningandhelpingeachother.Thedissertationincludesixparts,whichBeginningwithsystemdesiringanalysisandendofsystemtest,andmakeadetailedanalysisofthewholedevelopment.Thedevelopmentoftheforum includingtheinterfaceoffrontandmanagementsystemsofbackground.ThesystembasedontheB/Smodel,usingthepopularThree-tierModel(JSP+JavaBean+database).Inthedesignprocess,Iseparatethedisplayofpagesfromthefunctionallogic,inordertomakethesystemisconducivetothemaintenanceandupgrading.Afterthecompletionofthedesign,theforumcanrealizeasimplefunctionofwatch/posttopic,andruninanumberofplatforms.
Keywords:
Webforumsystem,B/Smode,JavaBean,Topic
第一章概述
进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。
传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。
而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。
本文讨论的是一个基于Web的通用BBS网站,它具有BBS网站应该具有的所有功能。
1.1国内外发展趋势
大约是从1991年开始,国内开始了第一个BBS站。
经过长时间的发展,直到1995年,随着计算机及其外设的大幅降价,BBS才逐渐被人们所认识。
1996年更是以惊人的速度发展起来。
国内的BBS站,按其性质划分,可以分为2种:
一种是商业BBS站,如新华龙讯网;另一种是业余BBS站,如天堂资讯站。
由于使用商业BBS站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。
多数业余BBS站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络ChinaFidoNet(中国惠多网)。
于是,各地的用户都可以通过本地的业余BBS站与远在异地的网友互通信息。
这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。
由于业余BBS站拥有这种优势,所以使用者都更乐意加入。
这里“业余”2字,并不是代表这种类型的BBS站的服务和技术水平是业余的,而是指这类BBS站的性质。
一般BBS站都是由志愿者开发的。
他们付出的不仅是金钱,更多的是精力。
其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平。
1.2研究的目的和意义
随着网络的普及,BBS收到广大的网民的欢迎。
许多的商业网站也对论坛重视起来,纷纷在自己的网站上开辟论坛,最为网民的交流平台,同事,在线技术和在线服务也在论坛中开展起来,在web2.0的时代,在论坛中也引入了许多web2.0的技术和思想。
由此可见,论坛系统是一种很值得掌握的程序。
本系统引入struts技术和ajax技术来创建一个动态且响应灵敏的Web应用程序,具有很大的实践意义。
Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。
由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。
Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
Ajax这个概念的最早提出者JesseJamesGarrett认为:
Ajax是AsynchronousJavaScriptandXML的缩写。
Ajax并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在一在同共的协作中发挥各自的作用,它包括:
使用XHTML和CSS标准化呈现;
使用DOM实现动态显示和交互;
使用XML和XSLT进行数据交换与处理;
使用XMLHttpRequest进行异步数据读取;
最后用JavaScript绑定和处理所有数据;
ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。
并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。
在实现系统的过程中,不断应用这些技术,能够促进深刻理解软件工程思想,熟练掌握说学的知识,并且能够推进对领域知识的熟悉程度。
因此,不管是在理论研究方面,还是在软件开发实践方面,在选择这个课题上都有深刻的意义。
第二章系统分析
2.1系统可行性分析
2.1.1应用可行性
Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。
ARPA计划尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。
随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。
到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统。
从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。
最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的一个研究小组着手开发一种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。
于是由TimBernersLee领导的小组开发出了一种主从、分布式的网络服务系统,这就是WWW,俗称“万维网”。
所谓WWW其实就是连上Web服务器访问资源,取得的内容就是所谓的“主页”(HomePage)。
进入的网页通常不会只有一页,而是整个网站的内容。
“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。
它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。
目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自已对社会对生活的理解和建议。
2.1.2技术可行性分析
BBS系统就是提供给注册用户一个平台,会员用户可以通过Internet接入,登录本系统,在这个平台上发表文章、阅读文章、回复文章等等。
此类系统通常有以下四种类型的操作用户:
匿名用户、普通用户、版面管理员、超级管理员。
每类用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。
与之相应,此类系统通常应具有以下功能:
用户注册、用户登录、发表文章、阅读文章、回复文章、分页查找、主题查找、作者查找、个人资料维护、找回密码、版面管理、版主管理、用户管理、友情链接管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到客户端浏览器。
这就是所谓的B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。
早期的软件系统多以此作为首选设计标准。
B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓N-Tier结构。
B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(JavaScript)和axjax技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
随着Windowsxp/Windows2008将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
将应用程序分成好几个离散逻辑组件,就是多层式结构(N-Tier)应用程序。
最常见的选择是分成三个部分:
表示层、事务逻辑层和数据层(3-Tier),不过也有其它的组合。
多层式结构应用程序,在一开始是解决某些与传统客户端/服务器(主从式)应用程序相关的问题,但是随着Web的出现,此结构已经成为主导新程序之开发的结构。
下面就是3-Tier结构各层功能以及经常采用的技术作个简介:
表示层主要运行于客户端浏览器,采用Script(脚本)语言编写。
HTML、JavaScript、jsp是此类应用系统中展示层最常用的脚本编制语言,结合CCS以及ActiveX技术,能设计出交互相当灵活功能又相当强大的客户端网页。
事务逻辑层设计通常有个选择:
COM或COM+组件、DBMS中所执行的预存程序。
将程序代码的一部分,建立成执行于数据库管理系统(DBMS)中的预存程序,使数据与程序代码储存在相同的位置,有助于最佳化执行效率,但是,预存程序都依赖于特定的数据库系统,在编写和侦错方面都相当复杂,只适宜于大型的商业应用系统。
以COM对象的方式,编写中间层(MiddleTier)事务逻辑,可以使用全功能的语言,来产生经过编译的执行程序,执行效率也相当高,此外,在COM对象中包装事务逻辑,还可以清楚地将此程序代码与网页内含的展示程序代码分隔,这样可以使应用程序更易于维护,但是,COM对象的部署也有一定的麻烦,新编写的组件对象,只有在服务器重新启动后才能被应用程序调用。
用jsp网页设计事务逻辑相对来说比较简单,但是,,jsp网页中的程序代码也是难以维护的,因为事务逻辑程序代码与建立使用者接口的展示程序代码彼此混杂在一起。
数据层较为灵活,视系统规模可选择Sybase、Oracle、MySQL、SQLserver或者MSAccess。
综上所述,结合本系统实际需要,本BBS系统采用B/S结构,mvc解决方案,MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。
MVC应用程序总是由这三个部分组成。
Event(事件)导致Controller改变Model或View,或者同时改变两者。
只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。
类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。
MVC模式最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。
smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC模式作为开发Web应用的架构模式。
MVC模式是一种架构模式,其实需要其他模式协作完成。
在J2EE模式目录中,通常采用servicetoworker模式实现,而servicetoworker模式可由集中控制器模式,派遣器模式和PageHelper模式组成。
而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中。
MVC模式是一个复杂的架构模式,其实现也显得非常复杂。
但是,我们已经终结出了很多可靠的设计模式,多种设计模式结合在一起,使MVC模式的实现变得相对简单易行。
Views可以看作一棵树,显然可以用CompositePattern来实现。
Views和Models之间的关系可以用ObserverPattern体现。
Controller控制Views的显示,可以用StrategyPattern实现。
Model通常是一个调停者,可采用MediatorPattern来实现。
因此,本系统事务逻辑层设计采用jsp网页;至于数据层,本系统采用最基本的mysql数据库系统,视需要,系统作较小的改动就可以移植到其它大型数据库系统。
本系统要求客户端支持IE4.0以上或与之兼容的浏览器软件,客户端硬件最低要求对应于IE4.0的硬件平台要求。
服务器端要求支持jsp以及mysql数据库。
本系统的开发环境和开发工具为:
Windowsxp,jsp,eclipse,Mysql。
2.2需求分析
2.2.1系统的综合要求
1、系统界面要求
系统的初始界面假定用户是匿名登录,用户可以通过初始界面提供的统一的用户登录接口,登录进入各自的操作界面
2、系统功能要求
本系统应具有通常BBS网站应该具有的所有功能,包括用户注册、用户登录、匿名登录、发表文章、阅读文章、回复别人的文章、分页查找、主题查找、作者查找、多种方式排序、个人资料修改、在线人数统计等,此外,用户在发表贴子时,能输入带格式文本,用户在发表或回复一篇贴子时,能获得相应的积分,其积分能反应此用户在本论坛的活跃程度。
本系统操作用户按不同级别依次可分为:
匿名用户、普通会员用户、版主会员用户、超级用户。
高级别的用户可以继承低级别用户的公用功能。
同时,各级别用户具有一定的只有以本级别身分登录才具有的私有功能。
匿名用户功能要求---通用功能:
查看各版面文章、查看系统版主列表、查看系统会员列表;私有功能:
注册为系统正式会员、会员找回遗失密码、登录为正式会员。
普通会员功能要求---通用功能:
发表或回复贴子、个人资料维护、退出或重新以匿名身分登录;私有功能:
申请为版面版主、注销会员资格。
版主会员功能要求---通用功能:
贴子管理、张贴公告、友情链接管理
超级用户功能要求---通用功能:
论坛基本设定、版面管理、版主会员管理、普通会员管理
3、系统性能要求
对于贴子查看、发表贴子以及回复贴子这类频繁发生的系统操作,要采取适当的技术优化这类数据操作,以提高数据存取效率。
4、安全性保密性可靠性等其它方面的要求
高级别用户的所有管理操作要有针对低级别用户的身分识别功能,以防止低级别的用户越权执行高级别用户才具有的操作功能。
2.2.2系统的数据要求
根据系统的功能需求,本系统管理和维护以下几种数据元素(实体Entity):
会员、管理员、论坛、论坛版面、贴子、友情链接、日志。
1、会员实体
会员用户包含这样一些基本属性:
用户名、用户密码、用户密码提示问题、用户密码提示问题答案、用户EMAIL、用户真名、性别、出生年月日、主页URL、联系方式、证件名称、证件号码、积分。
其中,用户名为用户唯一标志,不允许重名。
积分为此用户在本论坛发表文章以及文章被其它用户关注程度所累积的分数,作为衡量此用户在本论坛活跃程度的一个标志。
2、管理员
管理员实际上派生于会员用户,意味着只有会员用户才有资格申请本论坛各版面的管理权限,因此,他除了包含会员用户所有的基本属性以外,还应包含以下几个属性:
申请管理版面、申请理由、申请被批准状态。
一个管理员可以管理几个版面,一个版面可以由几个管理员管理,所以,应该有一个管理员序号来唯一标志这个实体。
另外,管理员也分为两类,一类是超级管理员,具有管理和维护本论坛所有数据信息的权限,另一类是普通版主,只能管理与某版面相关的数据信息,可以用申请管理版面以及申请被批准状态来区分这两类管理员,如果申请管理版面为零用申请被批准通过,则此会员就为超级管理员,如果申请管理版面在本论坛存在且申请被批准通过,则此会员就为版主管理员,否则,此会员仍为普通会员。
3、论坛
论坛基本信息比较稳定,只能为超级管理员所维护,此实体包括以下一些基本属性:
论坛名称、论坛版权信息、论坛公告、公告内容。
4、版面
论坛版面包含这样一些基本属性:
中文名称、英文名称、版面简介、版面公告。
此外,论坛版面实体与管理员实体有联系,与贴子实体也有联系。
5、贴子
贴子包含以下一些基本属性:
所属版面,作者,标题,贴子类型,所属主贴,回复数量,点击次数,标题图像,贴子内容,贴子书写时间,最后一次更新贴子时间。
贴子包括两种类型:
主贴和回复。
贴子序号为此贴子唯一标志。
6、友情链接
友情链接实体包含以下一些基本属性:
添加本链接管理员,链接名,链接URL,链接说明。
一个管理员可以添加多条友情链接。
除超级管理员外,已添加的友情链接只能由添加作者修改或删除。
链接名,链接URL不可重复,可作主键。
7、日志
日志包括以下一些基本属性:
登录会员,登录IP,登录时间,退出时间。
本系统实体之间主要有以下几类联系(Relation):
用户与论坛版面之间存在管理联系(M:
N)、用户与贴子之间(1:
M)、用户与友情链接(1:
M)、用户与日志(1:
M)、论坛版面与贴子(1:
M)
几个基本实体-联系图(ER图)如下:
(图转下页)
2.2.3系统的逻辑模型
系统逻辑模型数据流简要说明:
1、匿名用户与信息处理系统之间
系统的输入数据流:
注册资料、登录数据、找回密码数据
系统的输出数据流:
用户遗失密码、某篇贴子内容、会员列表、版主列表、版面列表、人气贴子列表、热门话题列表
加工逻辑:
注册加工、登录加工、用户找回密码加工
2、会员用户与信息处理系统之间
系统的输入数据流:
版主资格申请、注册资料修改、发表贴子、回复贴子
系统的输出数据流:
某篇贴子内容、会员列表、版主列表、版面列表、人气贴子列表、热门话题列表
加工逻辑:
版主资格申请、注册资料修改、发表贴子,回复贴
3、版主与信息处理系统之间
系统的输入数据流:
注册资料修改、发表贴子、回复贴子、友情链接维护、发布公告、管理版面贴子维护
系统的输出数据流:
某篇贴子内容、会员列表、版主列表、版面列表、人气贴子列表、热门话题列表
加工逻辑:
注册资料修改、发表贴子、回复贴子、友情链接维护、发布公告、管理版面贴子维护
4、超级会员与信息处理系统之间
系统的输入数据流:
注册资料修改、发表贴子、回复贴子、友情链接维护、添加版面、论坛基本信息维护、论坛所有贴子维护、版主申请批复
系统的输出数据流:
某篇贴子内容、会员列表、版主列表、版面列表、人气贴子列表、热门话题列表
加工逻辑:
注册资料修改、发表贴子、回复贴子、友情链接维护、添加版面、论坛基本信息维护、论坛所有贴子维护、版主申请批复
第三章系统设计
3.1系统概要设计
3.1.1数据库的设计
通过功能说明,我们可以将论坛的制作分为四大部分:
(1)会员注册和登陆模块:
这个模块的功能,就是新来网友可以填写注册资料,通过审核后便成为本论坛的正式会员,并可以以会员身份登陆论坛。
(2)版块及文章显示模块:
显示论坛的各大版块和所有会员最新发表的一些文章主题。
(3)发表文章模块:
为会员提供发表文章的地方,以及回复主题等。
(4)论坛管理模块:
版主以上职务可以进行对文章处理,置顶,加精华,删除等,还有就是管理员对论坛进行综合管理。
了解了具体的功能需求后,就可以按模块的开始论坛的设计了。
当然,这些模块的只是在功能上对论坛结构的划分,实际上并不能够完全的把他们独立出来
进行设计。
对于这种较小的应用,也没有必要进行完全的模块化设计,在良好的规划下直接写程序代码或许来的更为简单一些。
3.1.2具体表的说明
(1)管理员表