BBS论坛设计文档DOC.doc

上传人:牧羊曲112 文档编号:4740608 上传时间:2023-05-12 格式:DOC 页数:23 大小:424.50KB
返回 下载 相关 举报
BBS论坛设计文档DOC.doc_第1页
第1页 / 共23页
BBS论坛设计文档DOC.doc_第2页
第2页 / 共23页
BBS论坛设计文档DOC.doc_第3页
第3页 / 共23页
BBS论坛设计文档DOC.doc_第4页
第4页 / 共23页
BBS论坛设计文档DOC.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《BBS论坛设计文档DOC.doc》由会员分享,可在线阅读,更多相关《BBS论坛设计文档DOC.doc(23页珍藏版)》请在三一办公上搜索。

1、目 录第1章 绪 论- 4 -第2章 系统分析- 5 -2.1 需求分析- 5 -2.2 可行性分析- 5 -第3章 系统总体设计- 7 -3.1 系统目标- 7 -3.2 系统功能结构- 7 -3.2.1 前台功能结构- 7 -3.2.2 后台功能结构- 8 -3.3 系统流程图- 8 -3.4 系统开发环境- 9 -3.4.1 开发环境- 9 -3.4.2 系统平台体系结构的选择- 10 -3.4.3 JSP语言- 10 -第4章 数据库设计124.1 数据库分析124.2 数据库概念设计12第5章 系统详细设计与实现155.1 前台设计155.1.1 前台页面设计与实现155.1.2 前

2、台显示概述165.1.3 查看首页面的论坛类别175.1.4 查看某版面中根贴列表及回帖内容185.1.5 发表帖子模块设计205.2 后台设计245.2.1 后台页面设计与实现24结 论25第1章 绪 论随着互联网日益深入社会生活,BBS开发技术发展至今,从CGI,ASP,到PHP已经日趋成熟,功能也更加丰富,但携着Sun公司的Java技术所实现的“一次编写,到处运行”的优势,继承这一衣钵的JSP技术越来越受到人们的注视。BBS作为一种对外的展示窗口,进行内外信息交流,已成为大众的广泛需要。为了进行更好的交流,用户想就自己的专业和爱好能和其他的用户进行及时专业的交流,这就有了论坛,这样以来我

3、们就可以在网络这个虚拟的空间中方便地实现交流,BBS论坛是我们在这个地球村中生活的重要交流工具。所以我选择使用JSP开发BBS论坛这一课题作为毕业设计。Java是未来的主流开发技术,具有很多优势。JSP则是Java在InternetIntranet Web上的重要应用技术,得到了广泛的支持和承认,它可以和各种Java技术完好地结合在一起,从而实现非常复杂的应用。本网站使用JSP + ACCESS在Dreamweaver系统开发的,从而创建一个更为稳定,高效,安全的运行环境。本文主要实现了基于B/S模式的一种JSP论坛的设计与实现,主要功能是实现客户端和服务器端的动态交互。BBS论坛系统最基本的

4、功能首先是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和主题的加复者信息民,系统还需要提供用户注册和登录的功能。只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。根据用户的需求及以上的分析, BBS论坛需要具备以下功能:显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子、进入后台、论坛类别管理、版面管理、用户管理和用户注册。设计BBS论坛系统所要考虑的问题主要有如何通过资源文件显示文字和使用静态代码块。设计中力求界面友好、简洁,易于操作。代码部分尽量避免

5、逻辑错误,算法设计简单合理,尽量使程序具有较好的可读性,有利于其他的设计者对程序的阅读;力求对数据库操作的安全与稳定,尽量避免数据库操作异常,并要保证查询的快速无误。保证程序的逻辑结构,编程时注意多使用通用方法(函数和过程)。第2章 系统分析2.1 需求分析1功能性需求开发BBS论坛系统的目的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的社区。因此,BBS论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和主题的加复者信息民,系统还需要提供用户注册和登录的功能。只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题

6、信息。根据用户的需求及以上的分析,BBS论坛需要具备前台功能和后台功能。(1)系统前台功能:显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子(2)系统后台功能:进入后台、论坛类别管理、版面管理、用户管理、用户注册。2非功能性需求(1)平台限制:基于 Windows xp及以上操作系统,Tomcat6.0以上版本,Access数据库。(2)操作方式:全部操作都可以基于浏览器进行。2.2 可行性分析可行性分析是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进

7、行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。1技术可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该BBS论坛管理系统采用了流行的JSP语言和当前新兴的Browser/Server(浏览器/服务器)模式进行开发。三层的B/S体系结构具有许多传统Client/Server(客户机/服务器)体系结构不具备的优点,而且又紧密的结合了Internet/Intranet(国际互联网/企业内部互联网)技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。数据库服务器选用

8、ACCESS数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台能满足此系统的需要。2经济可行性主要是对项目的经济效益进行评估,本系统模拟的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的社区。但实际只是用于个人的毕业设计,只是模拟,也不存在资金的流动,故在经济上是可行的。3社会可行性随着Internet技术的快速发展,BBS论坛已成为人们彼此沟通、交流信息的主要

9、方式。在论坛上,人们可以对某一领域提出自己遇到的问题,随后,论坛上的其他人会根据自己的学识、经验发表意见或提出问题的方法。BBS论坛接近了人们之间的距离,它早已成为人们网上生活的必备工具。所以说BBS论坛对当今社会是相当重要的。第3章 系统总体设计3.1 系统目标对于典型的数据库管理系统,尤其是对像论坛这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应满足以下几个目标: 1采用人机对话的操作方式,界面设计美观友好,信息查看灵活、方便、快捷、准确,数据存储安全可靠。2全面展示系统内所有分类的帖子,并进行分页显示。3为用户提供一个方便、快捷的主题信息查看功

10、能。4实现在线发表帖子。5提供登录模块,主要用开管理员登录系统和发表帖子时留下发表者的信息。6用户随时都可以查看自己发表的帖子。7对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。8系统最大限度地实现了易维护性和易操作性。9系统运行稳定安全可靠。3.2 系统功能结构3.2.1 前台功能结构用户访问论坛首页面后,可进行查看版面下根贴信息、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根贴信息、用户注册等功能。用户在此BBS论坛中通过注册成为该网站的真正用户并成功登录系统后,可进行发表帖子、回复帖子、查看自己发表的帖子等操作。前台功能结构图如图3.1所示。查看版面下根贴查看精华帖子

11、搜索跟贴查看跟贴内容用户登录用户注册用户注销发表帖子回复帖子查看自己发表的帖子BBS论坛前台图3.1 BBS前台功能结构图3.2.2 后台功能结构若用户的权限为管理员,则可进入后台,可进行论坛类别的管理、版面管理和用户管理的操作。后台功能结构图如图3.2所示。类别管理版面管理用户管理退出管理BBS论坛后台图3.2 BBS后台功能结构图3.3 系统流程图1BBS论坛的系统后台流程图如图3.3所示。类别管理版面管理用户管理是否登录是否成功进入后台后台首页用户登录管理员图3.3 BBS论坛系统后台流程图2BBS论坛的系统前台流程图如图3.4所示。查看精华帖子搜索根贴查看版面下根贴查看根贴内容发表帖子

12、回复帖子提前帖子删除帖子置顶帖子置为精华贴删除回复帖查看自己发表的根贴用户注册是否管理员、版主、帖子发表者是否登录是否登录提示无权操作游客访问是是否是否否前台首页用户登录成功是图3.4 BBS论坛的系统前台流程图3.4 系统开发环境3.4.1 开发环境在开发此论坛的时候,需要具备下面的软件环境服务器端: 操作系统:Windows XP。 Web服务器:Tomcat 6.0及以上版本。 Java开发包:JDK 1.6。 数据库:ACCESS。 浏览器:IE6.0及以上版本。 分辨率:最佳效果为1024768像素。客户端: 浏览器:IE8.0。 分辨率:最佳效果为1024768像素。3.4.2 系

13、统平台体系结构的选择在应用开发领域中,目前系统平台的体系结构主要有两种,即C/S(Client/Server)结构和B/S(Brower/Server)结构。C/S结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。B/S结构,即浏览器和服务器结构。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架

14、构管理软件更是方便、快捷、高效。传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用,而且代价高,效率低。B/S结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,用通用浏览器就实现了原来需要复杂专用软件才

15、能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。因此本系统采用了B/S结构。3.4.3 JSP语言JSP(JavaServer Pages)是由Sun公司倡导,许多别的公司参与一起创建的一种新动态网页技术标准,类似其他技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片断(Scriptlet)和JSP标签,构成了JSP网页(*.jsp)Servlet/JSP Container收到客户端发出的请求时,首先执行其中的程序片断,软后将执行结果以HTML格式响应给客户端,其中程序片断可以是:操作数据库,重新定向网页以及发送E-Mail等等,这些都是建立

16、动态网站所需要的功能。所有程序操作都在服务器端运行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP称为Server-side Language。所以被许多人认为是未来最有发展前途的动态网站技术之一。语言优势如下:1将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成的内容的逻辑被封装在标识和JavaBeans组件中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面而不影响内容的生成。2一次编写,到处运行 作为Java平台的一部分,JSP拥有

17、Java编程语言“一次编写,到处运行”的特点,随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,但并不影响当前的应用。3JSP的平台适应性更广 这是JSP比ASP的优越之处,几乎所有的平台都支持Java,它们可以在任何平台下通行无阻。虽然NT的OS占据了很大的市场的份额,但在服务器方面UNIX的优势仍然很大.从一个平台移植到另一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标注的字节码与平台无关。4健壮的存储管理和安全性 由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译为Java Servlet

18、,JSP页面就具有Java技术的所有优点,包括健壮的存储管理和安全性。第4章 数据库设计4.1 数据库分析数据库的设计,在程序的开发中起着至关重要的作用,它往往决定了在后面的开发中进行怎样的程序编码。一个合理、有限的数据库设计可降低程序的复杂性,使程序开发的过程更为容易。本系统是一个中型的供求信息网站,考虑到开发成本、用户信息量客户需求等问题,决定采用ACCESS作为项目中的数据库。ACCESS是一种客户/服务器模式的关系型数据库,它具有很强的数据完整性、可伸缩性、可管理性、可编程性;具有均衡与完备的功能;具有较低的价格与性能比。ACCESS可对数据进行简单操作,并对数据进行合理地逻辑布局,应

19、用数据库对象可以对数据进行逻辑运算。ACCESS也提供了JDBC编程接口,这样可以非常方便地应用Java来操作数据库。4.2 数据库概念设计E-R模型是对现实世界的一种抽象。它的主要成分是实体、联系和属性。使用这三种成分,我们可以建立许多应用环境的E-R模型。现在划出本系统所使用的数据库实体,它们分别为根贴实体、回复贴实体、版面实体、类别实体和用户实体。下面将介绍几个关键实体的E-R图。1根贴实体根据实体包括编号、所属版面、标题、内容、发布者、发布时间、表情、对贴子进行操作的时间、是否为置顶贴子、被置顶的时间、是否为精华贴子和被设置为精华贴子的时间等属性。其中是否为置顶贴子与是否为精华贴子属性

20、分别用来标识贴子是否被设置为置顶或是精华贴子,1表示“是”,0表示“否”。根贴实体的E-R图如图4.1所示。根贴内容标题所属版面编号表情发布者发布时间是否为置顶帖子被置顶的时间图4.1 根贴实体E-R图2回复贴实体回复贴实体包括编号、根贴ID 、标题、内容、回复者、回帖时间和表情属性。回复贴实体的E-R图如图4.2所示。回复贴内容标题根贴ID编号表情回复者回帖时间间图4.2 回复贴实体E-R图3版面实体版面实体包括编号、所属类别ID、版面名称、版主和版面公告属性。版面实体E-R图如图4.3所示。版面版主版面名称所属类别ID编号版面公告图4.3 回复帖子信息实体图4论坛类别实体论坛类别实体包括编

21、号、类别名称和介绍属性。论坛类别实体的E-R图如图4.4所示。论坛类别介绍类别名称编号图4.4 论坛类别实体E-R图ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:n,m:n,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系等等。本系统的ER模型如图4.5所示:主题帖子所属回复帖子对应版块1nm1用户管理员浏览管理mnmn图4.5 ER模型图第5章 系统详细设计与实现5.1 前台设计由于前台功能模块较

22、多,而各模块的实现过程都是类似的,所以对于系统前台,现在只介绍系统重点设计。5.1.1 前台页面设计与实现本系统中所有页面都采用了一种页面框架,该页面框架采用一分栏结构,分为4个区域:页头、功能栏、内容显示区和页尾。网站前台首页面的运行结果如图5.1所示。 实现前台页面的设计需要分别创建实现各区域的JSP文件,如实现页头的top.jsp、实现数据的check.jsp、页尾文件check.jsp和首页面中需要在内容显示区显示的default.jsp等JSP文件。下面主要介绍前台框架页面indexTemp.jsp的实现,实现页面显示代码如下:图5.1 前台首页面运行结果5.1.2 前台显示概述论坛

23、的前台显示主要包括:首页面的论坛类别显示、某版面下根贴的列表显示、我的帖子的列表显示、精华帖子的列表显示、搜索后根帖的列表显示和根贴与回复贴内容的详细显示。其中在根贴的列表显示系列中,我的帖子、精华帖子和搜索这3个功能的实现是相似的,最终都是生成一个查询SQL语句,并通过执行该SQL语句获取一个符合条件的信息集合,然后返回页面进行显示。不同的是它们生成SQL语句的方式,列表显示我的帖子,需要获取当前登录用户的用户名,然后生成查询SQL语句;列表显示精华贴,要执行的是一个固定、已知的SQL语句;列表显示搜索到的根贴,需要从页面表单中获取条件和搜索关键安后,才能生成SQL语句。不仅如此,这3种功能

24、的页面信息显示也是相同的,不同的是通过Struts标签输出信息时所引用的对象不同。现在介绍首页面论坛类别显示、某版面下根贴的列表显示和根贴与回复贴内容的详细显示。5.1.3 查看首页面的论坛类别该页面的实现效果是:分类显示论坛类别,并以超链接形式显示属于该论坛类别中所有版面名称并显示当前版面的版主和一些帖子的相关信息,如图5.2所示。图5.2 首页面的论坛类别显示效果图在首页面中显示论坛类别时,首先通过Struts中的logic标签库中的iterate标签遍历存储在session范围的List集合对象,该List集合对象是在处理用户访问论坛首页面时的请求处理类中实现的,其中存储的是封装了论坛类

25、别信息的ActionForm;然后再使用bean标签库中的write标签输出从难从List集合对象中遍历出的ActionForm中的属性信息,即可实现论坛类别的显示。在页面中实现输出论坛类别的关键代码如下:/省略了输出论坛类别信息的代码/省略了输出版面信息的代码5.1.4 查看某版面中根贴列表及回帖内容该显示实现的效果是:显示某个版面中所有的根贴。该显示方式将单独显示版面中的置顶帖子和其他帖子。对于置顶帖子的显示,将按照帖子被置顶的时间进行降序排列;对于其他帖子的显示,将按照帖子被操作的时间进行降序排列。每条根贴显示其状态、标题、回复数、发表者和最后回复信息,如图5.3所示。图5.3显示跟帖及

26、回帖的详细显示效果图(1) 显示根贴信息的关键代码如下【主题】/省略了显示发贴者其他信息的代码【表情】/省略了显示根贴其他信息的代码回复该帖 将帖子提前 /省略了显示生成其他链接的代码(2) 显示回复贴的关键代码如下$(page.currentP-1)*page.perR+(idind+1) 楼【回复主题】 $answerMapanswererName.userName【表情】回复时间:/省略了显示回复帖子其他信息的代码5.1.5 发表帖子模块设计发表帖子主要是为了互相讨论话题而设置的功能,它是论坛系统中的主要功能。通常情况下,需要在论坛中注册一个用户名,然后成功登录,用户

27、才能在论坛中发表帖子。发表帖子页面的运行结果如图5.4所示。图5.4发表帖子页面的运行结果图用户发表帖子的流程图如图5.6所示。开始是否登录用户登录发贴页面填写贴子信息提交表单表单验证发表帖子是否失败成功图5.5 发表帖子的流程图发表帖子模块的实现过程如下:(1)首先创建一个用来封装根贴信息的ActionForm,该ActionForm继承ValidatorForm类,并覆盖了Validate()方法,其关键代码如下:public class BbsForm extends ValidatorForm private String bbsId;private String bbsBoardID

28、;private String bbsTitle;private String bbsContent;private String bbsSender;private String bbsFace=face0.gif;private String bbsSendTime;private String bbsAnswerNum;private String bbsLastUpdateUser;private String bbsLastUpdateTime;private String bbsOpTime;private String bbsIsTop;private String bbsToT

29、opTime;private String bbsIsGood;private String bbsToGoodTime;public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) String validate=request.getParameter(validate);if(validate=null|validate.equals()|!validate.equals(yes)return null;elsereturn super.validate(mapping, request);

30、/省略了属性的setXXX()与getXXX()方法(2)创建发表帖子的页面。在该页面中,需要用户输入的信息有根贴标题、根贴表情的根贴内容,根贴表情在ActionForm类中被设置了face().gif默认值,所以在设置表单验证时,无须设置该表单字段的验证规则。在发表页面中还需要通过Struts标签输出表单验证失败后的提示信息,发表帖子页面的关键代码如下:【主题】【表情】【内容】html:textarea property=bbsContent rows=15 cols=79(3)在validation.xml文件中编写验证发表帖子表单的验证代码,关键代码如下: - - - maxlength

31、 35 - - maxlength 1000 (4)配置Struts配置文件。在该文件中配置发表帖子表单被提交后的请求处理,配置代码如下: 通过上面的配置,当提交发表帖子页面的表单后,会先进行表单验证,验证成功后,则调用mefhod请求参数指定的com.yxq.action.BbsAction类中的方法处理表单。(5)在BbsAction类中创建处理发表帖子表单的方法。在发表帖子页面的代码中已经指定了处理表单的方法为addBbs(),在该方法中主要实现的是获取表单数据,然后生成向数据表中插入记录的SQL语句,最后执行该SQL语句完成发表帖子操作。addBbs()方法的关键代码如下:BbsFor

32、m bbsForm=(BbsForm)form;StringboardId=(String)session.getAttribute(boardId);String bbsTitle=Change.HTMLChange(bbsForm.getBbsTitle();String bbsContent=Change.HTMLChange(bbsForm.getBbsContent();String bbsSender=(UserForm)session.getAttribute(logoner).getUserName();String bbsSendTime=Change.dateTimeChange(new Date();String bbsFace=bbsForm.getBbsFace();String bbsOpTime=bbsSendTime;String bbsIsTop=0;String bbsToTopTime=;String bbsIsGood=0;String bbsToGoodTime=;String sql=insert into tb_bbs values(?,?,?,?,?,?,?,?,?,?,?);Objectparams=boardId,bbsTitle,bbsContent

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号