基于java的bbs论坛的设计与实现本科毕业论文_第1页
基于java的bbs论坛的设计与实现本科毕业论文_第2页
基于java的bbs论坛的设计与实现本科毕业论文_第3页
基于java的bbs论坛的设计与实现本科毕业论文_第4页
基于java的bbs论坛的设计与实现本科毕业论文_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 本科毕业论文(设计)题目:基于JAVA的BBS论坛系统的设计与实现 姓 名: 完圆圆 学 号: 1142151221 专 业: 计算机科学与技术 院 系: 信息工程学院 指导老师: 朱珍元 职称学历: 讲师/硕士 完成时间: 2015年5月 教务处制安徽新华学院本科毕业论文(设计)独创承诺书本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果。据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。与我一同

2、工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意。毕业论文(设计)作者签名: 日期: 基于JAVA的BBS论坛系统的设计与实现摘 要在如今的时代论坛已经成为互联网上的一个重要平台,它主要的功能是为用户提供一个互相交流、互相学习、互相帮助的平台。用户在论坛上可以获得各种服务,发表信息,讨论话题,聊天等等。它使人与人之间的沟通、交流变得更加容易,尤其是在IT领域,我们只有能够很好的交流,技术才会一步一步的提升。因此,掌握如何设计并开发一个论坛有着重要而且深远的意义。本文基于JAVA技术的网上论坛系统的设计和实现。设计包括数据库设计,系统架构设计,以及前端用户界面设计。系统中普通用户可以

3、完成用户的登录,退出,发帖,跟帖,注册,修改本人帖子,删除本人帖子,修改密码等功能。管理员可以对版块进行维护,对帖子和用户进行管理。系统采用了MVC设计模式,程序上业务逻辑、控制逻辑和表现逻辑上实现了分离。系统结构清晰,具有良好的可读性、可扩展性和可维护性。该系统使用了Struts框架,表现层运用了JSP网页技术,页面用到了CSS以及JavaScript技术。在文字方面利用了CKEditor框架。注册页面通过AJAX异步传输技术来完成用户名的验证。系统使用了MyEclipse开发工具,运用Hibernate连接后台MySQL数据库,界面设计人性化,操作简单。关键字:论坛;Struts框架;Hi

4、bernate框架;JAVA技术;MySQL数据库Design and implementation of JAVAbased on theBBSForumAbstractIn todays era of the forum has become an important platform on the Internet, its main function is to provide a mutual exchange, mutual learning, mutual help platform for users. Users can get all kinds of informatio

5、n services, in the BBS platform release information discussions, chat and so on. It makes the communication between people, communication becomes easier, especially in the field of IT, we were only able to communicate well, technology will be promoted step by step. Therefore, how to design and has i

6、mportant and far-reaching significance in the development of a forum.This forum is the design and implementation of online forum system based on JAVA technology. The design includes the system architecture design, database design, as well as the front-end user interface design. Common user system ca

7、n complete the user login, exit, post, reply, registration, modify the post, delete my post, modify passwords and other functions. The administrator can manage the board, management of Posts and users.The system uses the MVC design pattern, the program realizes the separation of the business logic,

8、logic and presentation logic control. The system structure is clear, has good readability, expansibility and maintainability. The system uses Struts framework, presentation layer using JSP technology Webpage, page used the CSS and JavaScript technology. Using the CKEditor framework in the text. The

9、registration page to complete user verification by the asynchronous transmission technology AJAX. The system uses MyEclipse development tools, use Hibernate to connect MySQL database, interface design, user-friendly, simple operation.Keywords: BBS;Struts Frame;Hibernate Frame;JAVA Technology;DBMySQL

10、目 录 TOC o 1-3 h z u HYPERLINK l _Toc419124140 1 绪 论 PAGEREF _Toc419124140 h 1 HYPERLINK l _Toc419124141 1.1 课题开发背景及意义 PAGEREF _Toc419124141 h 1 HYPERLINK l _Toc419124142 1.2 国内外现状 PAGEREF _Toc419124142 h 1 HYPERLINK l _Toc419124143 1.3 研究内容和目标 PAGEREF _Toc419124143 h 2 HYPERLINK l _Toc419124144 2 开发

11、平台与主要技术 PAGEREF _Toc419124144 h 4 HYPERLINK l _Toc419124145 2.1 开发平台 PAGEREF _Toc419124145 h 4 HYPERLINK l _Toc419124146 PAGEREF _Toc419124146 h 4 HYPERLINK l _Toc419124147 PAGEREF _Toc419124147 h 4 HYPERLINK l _Toc419124148 PAGEREF _Toc419124148 h 5 HYPERLINK l _Toc419124149 2.14 MySQL PAGEREF _Toc

12、419124149 h 5 HYPERLINK l _Toc419124150 2.2 主要技术 PAGEREF _Toc419124150 h 6 HYPERLINK l _Toc419124151 PAGEREF _Toc419124151 h 6 HYPERLINK l _Toc419124152 模型 PAGEREF _Toc419124152 h 6 HYPERLINK l _Toc419124153 、Hibernate、AJAX PAGEREF _Toc419124153 h 7 HYPERLINK l _Toc419124154 3 需求分析 PAGEREF _Toc41912

13、4154 h 8 HYPERLINK l _Toc419124155 3.1 项目背景 PAGEREF _Toc419124155 h 8 HYPERLINK l _Toc419124156 3.2 功能概述 PAGEREF _Toc419124156 h 8 HYPERLINK l _Toc419124157 功能结构 PAGEREF _Toc419124157 h 8 HYPERLINK l _Toc419124158 功能描述 PAGEREF _Toc419124158 h 9 HYPERLINK l _Toc419124159 3.3 系统用例 PAGEREF _Toc41912415

14、9 h 9 HYPERLINK l _Toc419124160 4 总体设计 PAGEREF _Toc419124160 h 11 HYPERLINK l _Toc419124161 4.1 数据库设计 PAGEREF _Toc419124161 h 11 HYPERLINK l _Toc419124162 图 PAGEREF _Toc419124162 h 11 HYPERLINK l _Toc419124163 表的设计 PAGEREF _Toc419124163 h 12 HYPERLINK l _Toc419124164 4.2 时序图 PAGEREF _Toc419124164 h

15、14 HYPERLINK l _Toc419124165 5 详细设计 PAGEREF _Toc419124165 h 16 HYPERLINK l _Toc419124166 5.1 系统模式 PAGEREF _Toc419124166 h 16 HYPERLINK l _Toc419124167 5.2 控制层的设计 PAGEREF _Toc419124167 h 16 HYPERLINK l _Toc419124168 5.3 业务层的设计 PAGEREF _Toc419124168 h 17 HYPERLINK l _Toc419124169 5.4 持久层的设计 PAGEREF _T

16、oc419124169 h 18 HYPERLINK l _Toc419124170 5.5 权限设计 PAGEREF _Toc419124170 h 19 HYPERLINK l _Toc419124171 6 系统实现 PAGEREF _Toc419124171 h 20 HYPERLINK l _Toc419124172 6.1 运行环境的搭建 PAGEREF _Toc419124172 h 20 HYPERLINK l _Toc419124173 6.2 模块演示 PAGEREF _Toc419124173 h 20 HYPERLINK l _Toc419124174 后台操作 PAG

17、EREF _Toc419124174 h 20 HYPERLINK l _Toc419124175 前台操作 PAGEREF _Toc419124175 h 22 HYPERLINK l _Toc419124176 7 测 试 PAGEREF _Toc419124176 h 25 HYPERLINK l _Toc419124177 7.1 测试方案 PAGEREF _Toc419124177 h 25 HYPERLINK l _Toc419124178 单元测试 PAGEREF _Toc419124178 h 25 HYPERLINK l _Toc419124179 7.2 测试用例 PAGE

18、REF _Toc419124179 h 26 HYPERLINK l _Toc419124180 8 总结与展望 PAGEREF _Toc419124180 h 28 HYPERLINK l _Toc419124181 致 谢 PAGEREF _Toc419124181 h 29 HYPERLINK l _Toc419124182 参考文献 PAGEREF _Toc419124182 h 301 绪 论1.1 课题开发背景及意义Java属于一种面向对象的程序语言,由于能够跨平台的优点,使得Java从开发以来发展特别迅速,尤其是在网络方面的发展。网上论坛系统是网络常见的一个应用,用于网络用户的信

19、息交流。如:JAVA开发者论坛。用户可以通过系统,在论坛里发布自己的一些想法,本论坛其他的用户可以对这个想法进行评论或发表自己的想法。为了把所学的JAVA知识在实际中得到运用,同时深刻的去体会网络的运作,故选择了基于JAVA的BBS论坛系统作为毕业设计。1.2 国内外现状自从进入二十一世纪,计算机网络应用迅速发展,网络应用系统将向更深和更宽的方向发展。以前的应用软件正在消失在我们眼前,取而代之的是支持在线、支持各种信息传输(多媒体)的新生代网络应用,在目前网络软件大概存在着两种不同的派系,一种就是客户端服务器的C/S结构网络系统,这种软件的结构严谨,能够高效率运行,给服务器端压力小。,安全性较

20、好等优点,在局域网中被广泛运用。另一种就是本毕业设计采用的,就是浏览器服务器的的B/S结构网络系统,它的特点是用户的操作系统只需要有浏览器软件作为媒介,它的优点是加快了软件开发的速度,客户端的限制变小、也消除了地域的限制,减少了网络传输量,局域网可以方便使用,而且网络上也能使用,而且只需较小的投资就能得到较好的效果,用户方不需要对服务器进行投资,因此受到了越来越多单位的喜爱。网络最早是美国国防部高级研究计划局的前身ARPA建立的ARPAnet,网络于1969年在美国投入使用。自从60年代以来,ARPA就开始为美国的一些大学的计算机专业和一些个人的公司提供资助经费,从而促进分组交换技术的计算机网

21、络的研究。1968年,ARPAnet网络项目被ARPA立项,开发人员主要为了以下几点努力:网络在出现故障的情况下仍然可以维持正常工作,如果国家发生战争,网络的某些部分遭受攻击而瘫痪无法工作,即使这样网络也能够通过其它完好部分从而维持正常通信。1986年,世界第一次有了网络也就是NSFnet,他是美国的5个超级计算机被美国的网络技术人员连接了起来,并且实现了地区网络的支持。1988年,NSFnet替代ARPAnet成为网络的主要传输媒介。NSFnet是非常成功的TCP/IP技术。1989年,由于ARPAnet的解散,网络从军用转向民用,从此网络飞速的发展起来。“网站”是如今网络上出现的一种新兴媒

22、介,通过网络使其已经成为一个实时的,大数据的信息传播方式。它主要是通过电脑,以及覆盖全球的网络,它没有国家限制,不分种族,时时刻刻地为人们提供各种信息。目前,人们已近开始把网站融入到自己的生活之中,它是新型的新闻媒体,以“分享、公开、公正、创造、国际化”为特性的文明网络也已逐渐成为了这个时代的标志,人们越来越频繁的通过网络获取各种信息,通过网络在网站上发表自己对自己所处社会以及对未来生活期待。随着网络的普及,论坛作为互联网上的一种应用,在网络上扮演了一个很重要的角色。随着互联网技术的飞速发展,论坛中内容越来越多,同时也受到广大网民的喜爱,因此商业网站对论坛建设也逐渐重视起来,他们为网民提供了一

23、个交流的平台,同时在线服务技术也在论坛中发展了起来。1.3 研究内容和目标如今BBS系统主要是为注册用户提供一个平台,用户可以通过网络登陆论坛,在论坛上发表帖子及观点、回复帖子、阅读帖子,学习自己想学的知识。C/S结构是所有计算机专业学生都知道的软件体系结构,它是将任务合理分配给客户端和服务器端,通过此方法来降低系统的通讯开销,从而达到充分利用到两端硬件环境的优势。这属于早期的大多数软件系统的设计标准。本系统的目的是研究B/S结构,研究只需通过浏览器就可以实现,在用户前端完成用户可视化界面展示,在服务器端实现主要的功能,形成我们所说的浏览器服务器结构。研究B/S结构是如何利用了不断发展的浏览器

24、,结合浏览器所支持的各种语言以及新出现的ActiveX技术,让用户只需通过操作系统的浏览器就能将原来需要软件才能实现的功能简单的实现,B/S结构在目前也是网络技术中最受欢迎一种结构。现今Windows操作系统已经很普及浏览器的安装也非常方便,这种结构也越来越变成软件编成首选的体系结构。课题研究的目标是将所学的知识运用于实践,结合BBS系统实际需要,采用B/S结构来实现BBS的基本功能,如发帖,回帖,用户登录,用户注册等。2 开发平台与主要技术2.1 开发平台 MyEclipseMyEclipse是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、J

25、ava EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。MyEclipse是一个企业级开发平台工具,它是对EclipseIDE的功能进行了扩展,使用MyEclipe可以简单、方便的实现JavaEE项目的开发、部署以及开发完成后对软件的整合使我们工作效率得到了很大的提高。MyEclipse简单的说是集成了各种插件的JavaEE,它不但包括JavaEE的各种功能,而且支持各种web开发语言,是一个开发软件和网站的方便快捷的Eclipse插件的集合。由于MyEclipse这些优点,所以系统选用了MyEclipse作为开发工具,这给系统的开

26、发带来了许多的便捷。 TomcatJakarta项目中的一个主要项目就是Tomcat它是Apache软件基金会支持,是由Apache、Sun和一些公司及个人共同开发的。由于有了Sun 的参与和支持,目前的Servlet 和JSP 规范在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范1。因为Tomcat具有先进的技术和稳定的性能,如今深受Java开发者的亲睐并且开发商大多也使用它,在目前的应用服务器市场广泛使用。目前最新版本是8.0。Tomcat属于轻量级的Web应用服务器,它对所有人和公司都是免费的,它被普遍使用在中小型系统和访问量不是很大的

27、网站,JSP程序开发和调试一般选择Tomcat。对于刚开始的接触Tomcat的学习者来说,Apache 服务器只要在电脑上做好正确的配置,就可利用它响应页面的请求。事实Tomcat 是对Apache 服务器的一个扩展,但是他可以自己独立运行,Tomcat是一个单独运行的Apache 独立进程。实际上Tomcat 是运行JSP 页面和Servlet类。另外,Tomcat和其他一些Web应用服务器一样,它也可以处理HTML页面的功能,Tomcat相当于一个Servlet和JSP容器,Tomcat的默认模式就是独立的Servlet容器1。在处理静态HTML的能力Apache服务器要比Tomcat出色

28、。 JDKJDK是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

29、.0,6.0开始了。从6.0开始,程序的开发效率得到了极大地提高,尤其是在可视化应用方面2-4。JDK是使用Java来编写的,在官网中下载的安装包安装后有src.zip的压缩文件,里面包含了所有JDK的源代码。它是一个写Java程序的开发环境。本系统在开发的过程中选用的是JDK1.7版本。2.14 MySQLMySQL是一个关系型数据库管理系统,由瑞典 MySQLAB 公司开发,目前属于 Oracle 公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管

30、理系统) 应用软件之一1。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。2.2 主要技术JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Mi

31、crosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。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和script

32、lets,来封装产生动态网页的处理逻辑。JSP是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。模型随着网络的飞速发展,算法越来越复杂,客户端需要的功能越来越强大,这使客户机变得无法满足需求,所以系统和商业分离了。单独形成一部分,这样三层结构产生了。其中层是逻辑上的划分。三层体系结构是将整个系统划分表现层(Presentation layer)、业务逻辑层(Business layer)、数据持久层(Persistence layer),三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分,各层与其余层分离,但各层之间存有通信接口6-10。MVC结构出现

33、对网站开发的影响是巨大的,它促进了人们的创新出了各种各样的设计思想,同时也出现了各种方便的开发框架。Struts可以使Web应用程序混合使用JSP和Servlet的优点来建立可扩展的应用。Struts解决了用JSP或Servlet开发Web应用程序时遇到的万儿难题。以前没有学习Struts时需要写大量的Servlet代码和许多XML的配置,才可以通过前端页面将数据传输到后端处理后,最后返回请求页面地址8-9。学习Struts后只需要进行少量的配置就可以实现原来的功能,本系统使用了Struts来控制网页的显示,简单而清晰的条理让开发效率变得更加高效。Struts在Java服务器端实现了MVC设计

34、模式,在创建Web应用程序时能容易地分离表示层和业务数据层,这就解决了JSP带来的问题。在本系统中Hibernate也是一个重要的角色,它使我们后台连接数据库变的方便而且利于扩展,如果系统想在其他数据库中运行的话,我们只需在数据库中创建好数据库,然后将Hibernate的配置文件中数据库名称、jar包以及用户名密码进行修改就可以运行了11-14。使用Hibernate我们不需要自己建表我们只需将各个JavaBean字段的关系写入配置文件后,Hibernate就能够自动建表。Hibernate的主要作用就是管理对象之间的关系,然后通过HQL语句对数据库的数据进行管理在以前用户注册只有将数据提交到

35、后台验证数据库中有没有相同的数据,最后将结果返回到页面上显示才能够知道用户名是否重复,在这个系统中用到了现在较为流行的AJAX技术,这项技术在输入数据后填写下个数据时会触发JS事件,JS就会将请求发个服务器然后取出想要的数据,在填写其他信息时用户就能够知道能否填写某些信息这使服务器和浏览器的数据交换大量减少,让用户感觉到网站响应速度很快。3 需求分析3.1 项目背景当今网络技术逐渐渗入社会生活各个层面,随着互联网的普及,人们在网上的活动变得越来越丰富,在网上的交流也越来越平凡。BBS论坛分为很多类,一般一个论坛的用户都有相同的爱好,而且论坛对所有人都是不收费的。在论坛中由于用户很多,所以在用户

36、提出一些话题时基本上都有人为你解答和讨论。在论坛里,人们消除了时间空间的限制,用户不必担心个人信息的泄露,论坛中的注册用户都可以发表自己的话题和对其他用户的话题提出自己的看法,所有用户都是平等的,可以随意的讨论自己想讨论的不违法的话题。因此BBS网上论坛系统有着广阔的市场背景。3.2 功能概述在本系统中我将其分为3个部分,分别为:用户的管理、版块的管理、帖子的管理。帖子的管理又分为发表帖子,回复帖子,修改帖子,删除帖子;用户的管理又分为登录,注册,退出,修改信息的操作;版块的管理又分为添加版块,修改版块,删除版块操作。系统的功能结构图如图3.1所示:基于JAVA的BBS论坛帖子管理删除版块修改

37、版块添加版块信息修改用户退出用户登录用户注册删除帖子修改帖子发表帖子版块管理用户管理图3.1 系统功能结构图在本论坛系统中是由两个小系统而组成,一个是前台用户系统,另一个是后台管理系统。主要包括:版块的管理、用户的管理、帖子的管理、三个功能模块。管理员在后台版块管理中具有的操作是添加版块,修改版块,删除版块,添加子版块,修改子版块,删除子版块,但普通用户不具有这些操作。管理员在后台用户管理中可以删除用户和添加系统管理员的功能。用户和管理员可以发表帖子,修改帖子,删除帖子,回复帖子的操作。但这些操作都必须在用户登录以后才能进行,而且每个登录的用户只能修改和删除自己的帖子和回帖,只有管理员可以删除

38、所有人的帖子以及回复。3.3 系统用例由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。BBS论坛系统前台用例:前台是用户登录后发表观点和回复观点,用户之间进行交流,帖子管理的用例图如图3.2所示。图

39、3.2 帖子管理用例图BBS交流平台后台用例:后台主要是管理员对后台帖子、版块进行管理维护,后台系统用例图如图3.3所示。图3.3 系统后台用例图4 总体设计4.1 数据库设计在软件开发中最重要的就是数据库设计,一个好的数据库设计能够给开发带来极大的便捷,使程序员只需通过少量的代码就能实现所需的功能,加快开发人员的开发效率,更快的完成任务。反之数据库不设计好就会使系统开发的进展变得缓慢,甚至失败。为了减少数据的冗余,提高系统运行的效率我们必须设计出一个好的数据库。系统在数据库设计上共设计了五张表,它们分别是:用户表、角色表、版块表、话题表、回贴表。数据库的E-R图是非常重要的它反映了各字段间的

40、关系,Mysql的可视化工具SQLyog中自带架构设计器,它是采用图形化来表现的,很方便的就能将要关联的字段关联起来。并且能够自动创建E-R图,使表与表之间的关系更简单清晰的展现了出来,系统数据库的E-R如图4.1所示图4.1 数据库E-R图1.用户表中有用户ID,用户名,密码,头像,注册时间,性别,角色ID;2.角色表中有角色ID,角色名称;3.版块表中有版块ID,父版块ID,版块名称;4.话题表中有话题ID,话题内容,话题标题,发表话题时间,所属用户ID,修改话题时间,所属版块ID;5.回帖表中有回帖ID,回帖内容,修改回帖时间,回帖时间,所属用户ID,所属话题ID用户表主要保存的是用户信

41、息,在用户表里面有一个字段是ROLE_ID它是于角色表关联的。用户表的设计信息如图4.2所示。图4.2 用户表的设计角色表是用来保存系统用到的角色,系统只有两个角色,一个是admin系统管理员,另一个是view普通用户。角色表的设计信息如图4.3所示。图4.3 角色表的设计版块表是存储系统版块信息,系统只有两级版块,数据表使用parent_board_id与自身关联来区分版块等级,parent_board_id字段为空时代表一级版块。版块表的设计信息如图4.4所示。图4.4 版块表的设计话题表是存储用户发表的话题,它的board_id字段关联了版块表主要功能是区分属于哪个版块,它的user_i

42、d字段关联了用户表主要功能是区分话题属于哪个用户发表的,话题内容字段设为text这使得话题内容可以有较多的信息。话题表的设计信息如图4.5所示。图4.5 话题表的设计回帖表是存储用户话题的回帖,它的topic_id字段关联了话题表是用来区分该回复属于哪个话题,它的user_id字段关联了用户表主要功能是区分该回复是哪个用户回复的,回帖表的详细信息如图4.5所示。图4.5 回帖表的设计4.2 时序图我们编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开。这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按照怎么样的顺序、传递什么消息、

43、返回什么消息。这时候用时序图是最好不过的了。时序图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互他由活动者(Actor)、对象(Object)、消息(Message)、生命线(Lifeline)和控制焦点(Focusofcontrol)组成。在UML中,对象表示为一个矩形,其中对象名称标有下划线;消息在时序图中由有标记的箭头表示;生命线由虚线表示,控制焦点由薄薄的矩形表示。图4.6是用户发帖的时序图,可以大致看出本系统的流程。在用户填好需要发表的信息点击发表帖子的按钮后,这时浏览器就会向服务器发送一个请求,服务器在接收到请求以后,将信息交个Struts的ActionServlet类来

44、处理,ActionServlet会去查询Struts-config.xml配置文件查找出相对应的方法,然后TopicAction类中的对应方法处理,TopicAction类获取浏览器传过来的信息,创建一个Topic对象,接着调用业务层TopicService里的保存帖子的方法,最后调用持久层方法将Topic对象保存到数据库中。最后系统会将处理结果返回。用户就可以看到自己发表的帖子。图4.6 用户发帖时序图5 详细设计5.1 系统模式MVC模式的代表模型视图控制器模式。这种模式是为了分离软件开发中各模块的耦合。Model(模型): 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“M

45、odel”不依赖“View”和“Controller”,也就是说, Model 不关心它会被如何显示或是如何被操作。但是 Model 中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此 Model 的 View 必须事先在此 Model 上注册,从而,View 可以了解在数据 Model 上发生的改变,Model 则是由一个实体Bean来实现。View(视图):能够实现数据有目的的显示(理论上,这不是必需的)。在 View 中一般没有程序上的逻辑。为了实现 View 上的刷新功能,View 需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。C

46、ontroller(控制器):起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据 Model 上的改变。本系统的设计采用了MVC的设计思想,控制器使用了自己较为熟悉的Struts1框架。Model层使用的是JavaBean和Hibernate框架完成,View层由一般的JSP实现的。5.2 控制层的设计本系统使用Struts1框架处理控制层。通常一个“控制器”是一个用户界面组件和模型之间的接口。控制器应细类,做多一点映射的用户界面事件模型的功能。它主要功能是处理用户的请求给服务器,服务器接收到这个请求有权限就会被传递到Struts的Action

47、Servlet里。Struts1在收到浏览器发来的请求以后,会去查找struts-config.xml文件,找到用户请求的Action类,然后将信息传给Action类。通过Action类中的方法处理后得到相应的结果最后交给JSP视图,并给返回一个响应给用户,本系统由8个Action类组成控制层,控制层的类图如图5.1所示:图5.1 控制层类图5.3 业务层的设计业务层主要完成系统的业务处理。当控制层接收到用户的请求就会调用业务层的某个方法,业务层调用持久层将数据保存到数据库或者返回消息给控制层。一般情况下业务层也可以持久化数据将数据存入数据库,但本系统为了使系统能够灵活扩展,所以定义了业务层和

48、持久层。业务层负责调用方法,持久层只负责完成数据库的操作。业务层类图如图5.2所示:图5.2 业务层类图5.4 持久层的设计持久层主要包括的方法是对数据库的增删改查。在系统中用户的操作所产生的数据其实是暂时的、随时更新的、系统处理过后这些数据就会消失,所以需要持久层将有用的数据存入数据库,保证需要时可以随时获取。本系统是通过JDBC来完成数据库访问的,现在不同的数据库厂商都提供了访问数据库的JDBC接口提供了访问各种数据库的接口,在数据库中对象之间都是关系模型,所以在访问数据库时要将每个字段对应起来,由于这一环节容易出错故本系统使用了Hibernate持久层来完成对象和关系的一一对应。增加Hi

49、bernate持久层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。特别是在大型的应用里边,会更有利。同时,持久化层作为单独的一层,人们可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上层提供服务。从而使得各个企业里做应用开发的开发人员,不必再来做数据持久化的底层实现工作,而是可以直接调用持久化层提供的API。持久层的类图如图5.3所示:图5.3 持久层类图5.5 权限设计在本系统里还对权限进行了简单的设计,前端页面使用了比较方便的jsp标签对权限进行判断从而隐藏和显示修改、删除的两个链接。普通用户只能看见自己发表和回复消息下的删除和修改链

50、接,只可以对自己的帖子进行修改删除。管理员可以看见任何用户的删除链接,可以对任何用户的帖子进行删除。本系统后台采用了过滤器,后台的维护只有管理员可以进入,系统通过MyFilter.Java类完成简单的过滤。当浏览器有请求发出时会先进入过滤器进行处理,首先过滤器会对编码进行设置,将其设置为UTF-8,然后判断用户访问的资源是否公开,如果不是检查用户是否登陆,没有就跳转到登陆页面,如果登陆就判断用户权限,检查用户是否是管理员,如果是,进入页面不是则跳转到无权访问页面。6 系统实现6.1 运行环境的搭建第一步:从官网下载安装包将JDK1.7安装到将要运行的电脑里,然后将电脑的环境变量配置好。第二步:

51、下载MySql数据库将数据库安装到电脑上,打开数据库建立数据库名为bbs,右击数据库点击导入执行SQL脚本将数据导入数据库。第三步:下载Tomcat7.0压缩包解压。6.2 模块演示打开浏览器,输入 HYPERLINK :/localhost:8080/bbs/manager/index.jsp :/localhost:8080/bbs/manager/index.jsp进入后台登陆页面,后台登陆界面如图6.1所示图6.1后台登录界面在系统中存在一个管理员为admin,密码也为admin,管理员可以添加管理员也可以修改自己的密码,以及对系统进行管理。输入正确的用户名密码就能够管理后台了,后台主

52、页面如图6.2所示图6.2后台主页面管理员进入后台可以通过页面的菜单选择想要的操作,管理员点击版块管理就会显示所有的版块,点击向下箭头可以展开版块管理选择添加和查询版块,管理员也可以删除和修改版块。点击帖子管理可进入前台对帖子进行管理。点击用户管理,可以查看论坛的用户和对用户进行管理,以及添加新的管理员。版块管理的界面如图6.3所示图6.3 版块管理界面打开浏览器,输入 HYPERLINK :/localhost:8080/bbs/index.jsp :/localhost:8080/bbs/index.jsp进入前台主页面,当用户通过访问地址进入主界面后,可以看到论坛的父版块和父版块下的子版

53、块,以及各个子版块最新的帖子和发帖用户名。论坛系统主界面如图6.4所示图6.4 论坛系统主页面点击某个子版块可以进入查看帖子的页面,但如果想要发帖或回帖用户必须登录,帖子页面可以看到帖子标题、回复数、以及发帖的作者。用户登录后进入某个版块查看发帖的页面如图6.5所示。这个页面提供分页显示。图6.5版块详情页面如果没有账号的用户可以进行注册,注册时系统会对用户所填信息进行检查,正确输入信息才能注册成功。注册成功后登陆系统就可以发帖回帖了。用户注册页面如图6.6所示图6.6 用户注册页面用户注册之后可以点击发表话题按钮进入发帖界面发表帖子,用户发帖界面如图6.7所示图6.7 用户发帖页面用户发帖过

54、后会跳转到帖子详情页面,用户可以查看、回复帖子以及修改和删除自己的帖子和回复,帖子详情页面如图6.8所示图6.8 帖子详情页面如果有用户回复自己的帖子,用户进入帖子详情页面就可以看到所有用户的回复内容,用户也可以自己选择回复哪个的用户,帖子内容展示页面如图6.9所示图6.9 帖子详情页面7 测 试现在测试越来越成为系统开发中的重要环节,越来越受到人们的重视,随着系统开发规模的增大、复杂程度的增加,以寻找系统中的错误为目的的测试工作显得更加困难。然而,为了尽可能多地找出程序中的错误,产生出高质量的项目产品,加强对测试工作的组织和管理就显得尤为重要。从我们网站的生存周期看,测试往往是指对程序的测试

55、,这样做的优点是被测对象明确,测试的可操作性有错误,测试的质量就难以保证。即使测试后产生错误,此时,修改的代价是相当昂贵的。因此,较理想的做法是对软件的开发过程。按照软件工程各个阶段形成的结果,分别进行严格的审查。7.1 测试方案测试前我们需要查看大量的有关资料,我首先将自己项目中需要测试的功能进行了一一列举,然后再次熟悉了自己的系统编写了测试内容和测试通过的准则,做好测试前的准备。为了保证测试的质量我对系统进行了单元测试,从而保证代码的质量。单元测试不仅能保证项目进度还能优化我们的设计,如果我们为了将来能更方便地编写测试代码,我们就会尽可能得将业务代码设计成更容易测试的代码,慢慢地开发者就会发现,自己设计的程序耦合度也越来越低。每个单元程序的输入输出,业务内容和异常情况都

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论