BBS论坛系统本科毕业设计论文.docx
《BBS论坛系统本科毕业设计论文.docx》由会员分享,可在线阅读,更多相关《BBS论坛系统本科毕业设计论文.docx(49页珍藏版)》请在冰豆网上搜索。
BBS论坛系统本科毕业设计论文
毕业设计论文
BBS论坛系统
BBSForumSystem
摘要
随着Internet技术的快速发展,人与人之间交流方式逐渐增多。
网络视频、网络聊天、博客已成为人们彼此沟通、交流信息的主要方式。
此外,为了方便人们在某一专业领域探讨问题和发表意见,Internet上还出现了在线论坛。
在论坛上,人们可以对某一领域提出自己遇到的问题,即发表某一主题,随后,论坛上的其他人会根据自己的学识、经验发表意见或提出问题的方法。
开发BBS论坛系统的目的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的网上社区。
因此,BBS论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。
此外,为了记录主题的发表者和主题的回复者信息,系统还需要提供用户注册和登录的功能。
只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。
本论坛系统是基于是Struts1.2+SQLServer2000实现的,它具有使用方便、操作灵活、运行稳定、安全可靠等特点。
关键词 在线论坛,BBS,网上社区,Struts
Abstract
WiththerapiddevelopmentofInternettechnology,meansofcommunicationbetweenpeopleisgraduallyincreasing.Video,webchat,bloghavebecomethemainformsofexchanginginformationwitheachother.Inaddition,inordertoallowpeopleinaprofessionalfieldtoprobeintoquestionsandmakecomments,Interneton-lineforumshaveemerged.Attheforum,peoplecanputforwardtheirownparticularproblemsencounteredinthefield,asubjectthatisissued,thentherestoftheforum,makingcommentsorraiseproblemsbasedontheirknowledgeandexperience.
BBSforumsystemaimstoprovideacommunicationplatformfortheuser,forthemajorityofuserstoexchangeexperiencesandexploreissuesofcommunity.Therefore,BBSforumsystemisthemostbasicfunctionofthefirstkeynote,followedbyotherofficerstoexpresstheirviewsonthetheme.Inaddition,inordertorecordthereleaseofthethemeandthethemeoftherespondentsinformationsystemsalsoneedtoprovideusersregistrationandloginfunction.Onlyregistereduserscanlogonandreleasepublicationsandreplytotopics,visitors(tourists)canonlyviewtopicinformation.
ThisforumsystemisbasedonaStruts1.2+SQLServer2000implementation,itisconvenient,flexibleoperation,stable,safeandreliable.
KeyWords OnlineForum,BBS,OnlineCommunity,Struts
第1章绪论
随着互联网日益深入社会生活,BBS开发技术发展至今,从CGI,ASP,到PHP已经日趋成熟,功能也更加丰富,但携着Sun公司的Java技术所实现的“一次编写,到处运行”的优势,继承这一衣钵的JSP技术越来越受到人们的注视。
BBS作为一种对外的展示窗口,进行内外信息交流,已成为大众的广泛需要。
为了进行更好的交流,用户想就自己的专业和爱好能和其他的用户进行及时专业的交流,这就有了论坛,这样以来我们就可以在网络这个虚拟的空间中方便地实现交流,BBS论坛是我们在这个地球村中生活的重要交流工具。
所以我选择使用JSP开发BBS论坛这一课题作为毕业设计。
Java是未来的主流开发技术,具有很多优势。
JSP则是Java在Internet/IntranetWeb上的重要应用技术,得到了广泛的支持和承认,它可以和各种Java技术完好地结合在一起,从而实现非常复杂的应用。
本网站使用JSP+SQLServer2000在MyEclipse系统开发的,从而创建一个更为稳定,高效,安全的运行环境。
本文主要实现了基于B/S模式的一种JSP论坛的设计与实现,主要功能是实现客户端和服务器端的动态交互。
BBS论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。
此外,为了记录主题的发表者和主题的加复者信息民,系统还需要提供用户注册和登录的功能。
只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。
根据用户的需求及以上的分析,BBS论坛需要具备以下功能:
显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子、进入后台、论坛类别管理、版面管理、用户管理和用户注册。
设计BBS论坛系统所要考虑的问题主要有如何通过资源文件显示文字和使用静态代码块。
设计中力求界面友好、简洁,易于操作。
代码部分尽量避免逻辑错误,算法设计简单合理,尽量使程序具有较好的可读性,有利于其他的设计者对程序的阅读;力求对数据库操作的安全与稳定,尽量避免数据库操作异常,并要保证查询的快速无误。
保证程序的逻辑结构,编程时注意多使用通用方法(函数和过程)。
第2章系统分析
2.1需求分析
1.功能性需求
开发BBS论坛系统的目的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的社区。
因此,BBS论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。
此外,为了记录主题的发表者和主题的加复者信息民,系统还需要提供用户注册和登录的功能。
只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。
根据用户的需求及以上的分析,BBS论坛需要具备前台功能和后台功能。
(1)系统前台功能:
显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子
(2)系统后台功能:
进入后台、论坛类别管理、版面管理、用户管理、用户注册。
2.非功能性需求
(1)平台限制:
基于WindowsXP,不需要安装其他软件。
(2)操作方式:
全部操作都可以基于浏览器进行。
2.2可行性分析
可行性分析是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
1.技术可行性
技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。
该BBS论坛管理系统采用了流行的JSP语言和当前新兴的Browser/Server(浏览器/服务器)模式进行开发。
三层的B/S体系结构具有许多传统Client/Server(客户机/服务器)体系结构不具备的优点,而且又紧密的结合了Internet/Intranet(国际互联网/企业内部互联网)技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。
数据库服务器选用SQLServer2000数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。
它的灵活性、安全性和易用性为数据库编程提供了良好的条件。
因此,系统的软件开发平台已成熟可行。
硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台能满足此系统的需要。
2.经济可行性
主要是对项目的经济效益进行评估,本系统模拟的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的社区。
但实际只是用于个人的毕业设计,只是模拟,也不存在资金的流动,故在经济上是可行的。
3.社会可行性
随着Internet技术的快速发展,BBS论坛已成为人们彼此沟通、交流信息的主要方式。
在论坛上,人们可以对某一领域提出自己遇到的问题,随后,论坛上的其他人会根据自己的学识、经验发表意见或提出问题的方法。
BBS论坛接近了人们之间的距离,它早已成为人们网上生活的必备工具。
所以说BBS论坛对当今社会是相当重要的。
第3章系统总体设计
3.1系统目标
对于典型的数据库管理系统,尤其是对像论坛这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。
本系统在设计时应满足以下几个目标:
1.采用人机对话的操作方式,界面设计美观友好,信息查看灵活、方便、快捷、准确,数据存储安全可靠。
2.全面展示系统内所有分类的帖子,并进行分页显示。
3.为用户提供一个方便、快捷的主题信息查看功能。
4.实现在线发表帖子。
5.提供登录模块,主要用开管理员登录系统和发表帖子时留下发表者的信息。
6.用户随时都可以查看自己发表的帖子。
7.对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。
8.系统最大限度地实现了易维护性和易操作性。
9.系统运行稳定安全可靠。
3.2系统功能结构
3.2.1前台功能结构
用户访问论坛首页面后,可进行查看版面下根贴信息、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根贴信息、用户注册等功能。
用户在此BBS论坛中通过注册成为该网站的真正用户并成功登录系统后,可进行发表帖子、回复帖子、查看自己发表的帖子等操作。
前台功能结构图如图3.1所示。
图3.1BBS前台功能结构图
3.2.2后台功能结构
若用户的权限为管理员,则可进入后台,可进行论坛类别的管理、版面管理和用户管理的操作。
后台功能结构图如图3.2所示。
图3.2BBS后台功能结构图
3.3系统流程图
1.BBS论坛的系统后台流程图如图3.3所示。
图3.3BBS论坛系统后台流程图
2.BBS论坛的系统前台流程图如图3.4所示。
图3.4BBS论坛的系统前台流程图
3.4系统开发环境
3.4.1开发环境
在开发此论坛的时候,需要具备下面的软件环境
服务器端:
●操作系统:
WindowsXP。
●Web服务器:
Tomcat6.0。
●Java开发包:
JDK1.6。
●数据库:
SQLServer2000。
●浏览器:
IE6.0。
●分辨率:
最佳效果为1024×768像素。
客户端:
●浏览器:
IE6.0。
●分辨率:
最佳效果为1024×768像素。
3.4.2系统平台体系结构的选择
在应用开发领域中,目前系统平台的体系结构主要有两种,即C/S(Client/Server)结构和B/S(Brower/Server)结构。
C/S结构,即大家熟知的客户机和服务器结构。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
B/S结构,即浏览器和服务器结构。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。
由于没能提供用户
真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用,而且代价高,效率低。
B/S结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
因此本系统采用了B/S结构。
3.4.3JSP语言
JSP(JavaServerPages)是由Sun公司倡导,许多别的公司参与一起创建的一种新动态网页技术标准,类似其他技术标准。
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片断(Scriptlet)和JSP标签,构成了JSP网页(*.jsp)Servlet/JSPContainer收到客户端发出的请求时,首先执行其中的程序片断,软后将执行结果以HTML格式响应给客户端,其中程序片断可以是:
操作数据库,重新定向网页以及发送E-Mail等等,这些都是建立动态网站所需要的功能。
所有程序操作都在服务器端运行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP称为Server-sideLanguage。
所以被许多人认为是未来最有发展前途的动态网站技术之一。
语言优势如下:
1.将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。
使用JSP标识或者小脚本来生成页面上的动态内容。
生成的内容的逻辑被封装在标识和JavaBeans组件中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面而不影响内容的生成。
2.一次编写,到处运行
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,到处运行”的特点,随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,但并不影响当前的应用。
3.JSP的平台适应性更广
这是JSP比ASP的优越之处,几乎所有的平台都支持Java,它们可以在任何平台下通行无阻。
虽然NT的OS占据了很大的市场的份额,但在服务器方面UNIX的优势仍然很大.从一个平台移植到另一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标注的字节码与平台无关。
4.健壮的存储管理和安全性
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译为JavaServlet,JSP页面就具有Java技术的所有优点,包括健壮的存储管理和安全性。
3.4.4SQLServer2000数据库
SQLServer2000是Microsoft公司推出的基于Client/Server模式的新一代大型关系数据库管理系统。
它功能强大、操作简便,广泛应用于数据库后台系统。
SQLServer2000代表着下一代Microsoft.NETEnterpriseServers(企业分布式服务器)数据库的发展趋势。
它在电子商务、数据仓库和数据库解决方案等应用中起着重要的核心作用。
后台使用DBMS为MicrosoftSQLServer2000。
MicrosoftSQLServer2000能提供超大型系统所需的数据库服务。
大型服务器可能有成千上万的用户同时连接到SQLServer2000实例。
SQLServer2000为这些环境提供了全面的保护,具有防止问题发生的安全措施,例如,可以防止多个用户试图同时更新相同的数据。
SQLServer2000还在多个用户之间有效地分配可用资源,比如内存、网络带宽和磁盘I/O。
超大型Internet站点可将其数据分开存放在多台服务器上,从而使处理负荷分散到多台计算机上,使站点能为成千上万的并发用户提供服务。
可以在一台计算机上运行多个SQLServer2000实例。
大型Web站点和企业级数据处理系统通常会生成大量的数据库处理,超出了一台计算机的支持能力。
在这些大型系统中,数据库服务由组成数据库服务层的一组数据库服务器提供。
SQLServer2000不支持采用平衡负荷的聚集形式建立数据库服务层,但支持跨自主服务器组分存数据的机制。
尽管每个服务器需分开管理,但组内的各个服务器可共同分担数据库处理负荷。
共享同一工作负荷的一组自主服务器称为服务器联合体。
3.4.5JDBC技术
数据库通信接口采用JDBC(JavaDatabaseConnectivity,Java数据库连接)。
JDBC是一组API,定义了用来访问数据库源的标准JAVA类库,使用这种类库可以使用一种标准的方法、方便地访问数据库资源。
JDBC是用于执行SQL语句的Java应用程序接口,由一组用Java语言编写的类与接口组成,在JSP中将使用JDBC来访问数据库。
JDBC是一种规范,它让各数据库厂商为Java程序员提供标准的数据库访问类和接口,这样就使得独立于DBMS的Java应用程序的开发工具和产品成为可能。
JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无须对特定的数据库的特点有过多的了解,从而大大简化了和加快了开发过程。
一般的Java开发工具都带有JDBC-ODBC桥驱动程序,这样,只要是能够使用ODBC访问的数据库系统,也就能够使用JDBC访问了。
有趣的是,不同于ODBC是OpenDatabaseConnectivity的简称,JDBC并不是JavaDatabaseConnecivity的简称,而是SUN的注册商标,至少官方说法是这样的。
JDBCAPI为访问不同的数据库提供了一种统一途径,像ODBC一样,JDBC
为开发者屏蔽了一些细节问题。
另外,JDBC对数据库的访问也具有平台无关性。
第4章数据库设计
4.1数据库分析
数据库的设计,在程序的开发中起着至关重要的作用,它往往决定了在后面的开发中进行怎样的程序编码。
一个合理、有限的数据库设计可降低程序的复杂性,使程序开发的过程更为容易。
本系统是一个中型的供求信息网站,考虑到开发成本、用户信息量客户需求等问题,决定采用MicrosoftSQLServer2000作为项目中的数据库。
MicrosoftSQLServer是一种客户/服务器模式的关系型数据库,它具有很强的数据完整性、可伸缩性、可管理性、可编程性;具有均衡与完备的功能;具有较低的价格与性能比。
SQLServer数据库可以大容量地存储数据,并对数据进行合理地逻辑布局,应用数据库对象可以对数据进行复杂地操作。
SQLServer2000也提供了JDBC编程接口,这样可以非常方便地应用Java来操作数据库。
4.2数据库概念设计
E-R模型是对现实世界的一种抽象。
它的主要成分是实体、联系和属性。
使用这三种成分,我们可以建立许多应用环境的E-R模型。
现在划出本系统所使用的数据库实体,它们分别为根贴实体、回复贴实体、版面实体、类别实体和用户实体。
下面将介绍几个关键实体的E-R图。
1.根贴实体
根据实体包括编号、所属版面、标题、内容、发布者、发布时间、表情、对贴子进行操作的时间、是否为置顶贴子、被置顶的时间、是否为精华贴子和被设置为精华贴子的时间等属性。
其中是否为置顶贴子与是否为精华贴子属性分别用来标识贴子是否被设置为置顶或是精华贴子,1表示“是”,0表示“否”。
根贴实体的E-R图如图4.1所示。
图4.1根贴实体E-R图
2.回复贴实体
回复贴实体包括编号、根贴ID、标题、内容、回复者、回帖时间和表情属性。
回复贴实体的E-R图如图4.2所示。
图4.2回复贴实体E-R图
3.版面实体
版面实体包括编号、所属类别ID、版面名称、版主和版面公告属性。
版面实体E-R图如图4.3所示。
图4.3回复帖子信息实体图
4.论坛类别实体
论坛类别实体包括编号、类别名称和介绍属性。
论坛类别实体的E-R图如图4.4所示。
图4.4论坛类别实体E-R图
ER模型的“联系”用于刻画实体之间的关联。
一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。
若有联系,进一步确定是1:
n,m:
n,还是1:
1等。
还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系等等。
本系统的ER模型如图4.5所示:
图4.5ER模型图
4.3数据库逻辑设计
根据数据库概念设计,可以创建与实体对应的数据表。
本系统中所包含的数据表的结构图如图4.6所示。
图4.6db_luntan数据库所包含的数据表结构图
本系统共包含3个数据表,下面分别介绍这些表的结构。
1.tb_bbs(根贴信息表)
根贴信息表用来保存发布的全部根贴信息,该表的结构如表4.1所示。
表4.1tb_bbs表的结构
字段名
数据类型
是否为空
是否主键
默认值
描述
bbs_id
int(4)
No
Yes
帖子ID(自动编号)
bbs_boardID
int
(2)
Yes
((-1))
帖子所属版面的ID
bbs_title
varchar(70)
Yes
NULL
帖子标题
bbs_content
varchar(2000)
Yes
NULL
帖子内容
bbs_sender
varchar(20)
Yes
NULL
帖子的发布者
bbs_sendTime
datetime(8)
Yes
NULL
帖子的发布时间
bbs_face
varchar(8)
Yes
NULL
帖子表情
bbs_opTime
datetime(8)
Yes
NULL
对帖子进行操作的时间
bbs_isTop
varchar
(1)
Yes
(0)
是否为置顶帖子
bbs_toTopTime
datetime
Yes
NULL
帖子被置顶的时间
bbs_isGood
varchar
(1)
Yes
(0)
是否为精华帖子
bbs_toGoodTime
datetime(8)
Yes
NULL
帖子被置精华帖子时间
2.tb_board(版面信息表)
版面信息表用来保存论坛中的版面信息,该表的结构如表4.2所示。
表4.2tb_board表的结构