收藏 分享(赏)

基于JAVA的BBS论坛的设计与实现-本科毕业论文.doc

上传人:精品资料 文档编号:7767726 上传时间:2019-05-25 格式:DOC 页数:39 大小:2.06MB
下载 相关 举报
基于JAVA的BBS论坛的设计与实现-本科毕业论文.doc_第1页
第1页 / 共39页
基于JAVA的BBS论坛的设计与实现-本科毕业论文.doc_第2页
第2页 / 共39页
基于JAVA的BBS论坛的设计与实现-本科毕业论文.doc_第3页
第3页 / 共39页
基于JAVA的BBS论坛的设计与实现-本科毕业论文.doc_第4页
第4页 / 共39页
基于JAVA的BBS论坛的设计与实现-本科毕业论文.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

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

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

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

4、,运用 Hibernate 连接后台MySQL 数据库,界面设计人性化,操作简单。关键字:论坛;Struts 框架;Hibernate 框架;JAVA 技术;MySQL 数据库安徽新华学院 2015 届本科毕业论文(设计)Design and implementation of JAVA based on the BBS ForumAbstractIn todays era of the forum has become an important platform on the Internet, its main function is to provide a mutual exchang

5、e, mutual learning, mutual help platform for users. Users can get all kinds of information 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 commu

6、nicate well, technology will be promoted step by step. Therefore, how to design and has important 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 desig

7、n, database design, as well as the front-end user interface design. Common user system can 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

8、 uses the MVC design pattern, the program realizes the separation of the business logic, 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, pa

9、ge used the CSS and JavaScript technology. Using the CKEditor framework in the text. The 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-frie

10、ndly, simple operation.Keywords: 安徽新华学院 2015 届本科毕业论文(设计)BBS;StrutsFrame;HibernateFrame;JAVATechnology;DBMySQL目录1 绪 论 11.1 课题开发背景及意义 11.2 国内外现状 11.3 研究内容和目标 22 开发平台与主要技术 42.1 开发平台 42.1.1 MyEclipse42.1.2 Tomcat42.1.3 JDK52.14 MySQL52.2 主要技术 62.2.1 JSP62.2.2 MVC 模型 62.2.3 Stuts、Hibernate、AJAX73 需求分析 83

11、.1 项目背景 83.2 功能概述 83.2.1 功能结构 83.2.2 功能描述 9安徽新华学院 2015 届本科毕业论文(设计)3.3 系统用例 94 总体设计 114.1 数据库设计 114.1.1 E-R 图 114.1.2 表的设计 124.2 时序图 145 详细设计 165.1 系统模式 165.2 控制层的设计 165.3 业务层的设计 175.4 持久层的设计 185.5 权限设计 196 系统实现 206.1 运行环境的搭建 206.2 模块演示 206.2.1 后台操作 206.2.2 前台操作 227 测 试 257.1 测试方案 257.1.1 单元测试 257.2

12、测试用例 268 总结与展望 28安徽新华学院 2015 届本科毕业论文(设计)致 谢 29参考文献 30安徽新华学院 2015 届本科毕业论文(设计)01 绪 论1.1 课题开发背景及意义Java 属于一种面向对象的程序语言,由于能够跨平台的优点,使得 Java 从开发以来发展特别迅速,尤其是在网络方面的发展。网上论坛系统是网络常见的一个应用,用于网络用户的信息交流。如:JAVA 开发者论坛。用户可以通过系统,在论坛里发布自己的一些想法,本论坛其他的用户可以对这个想法进行评论或发表自己的想法。为了把所学的 JAVA 知识在实际中得到运用,同时深刻的去体会网络的运作,故选择了基于 JAVA 的

13、 BBS 论坛系统作为毕业设计。1.2 国内外现状自从进入二十一世纪,计算机网络应用迅速发展,网络应用系统将向更深和更宽的方向发展。以前的应用软件正在消失在我们眼前,取而代之的是支持在线、支持各种信息传输(多媒体)的新生代网络应用,在目前网络软件大概存在着两种不同的派系,一种就是客户端服务器的 C/S 结构网络系统,这种软件的结构严谨,能够高效率运行,给服务器端压力小。,安全性较好等优点,在局域网中被广泛运用。另一种就是本毕业设计采用的,就是浏览器服务器的的 B/S 结构网络系统,它的特点是用户的操作系统只需要有浏览器软件作为媒介,它的优点是加快了软件开发的速度,客户端的限制变小、也消除了地域

14、的限制,减少了网络传输量,局域网可以方便使用,而且网络上也能使用,而且只需较小的投资就能得到较好的效果,用户方不需要对服务器进行投资,因此受到了越来越多单位的喜爱。网络最早是美国国防部高级研究计划局的前身 ARPA 建立的 ARPAnet,网络于 1969 年在美国投入使用。自从 60 年代以来,ARPA 就开始为美国的一些大学的计算机专业和一些个人的公司提供资助经费,从而促进分组交换技术的计算机网络的研究。1968 年,ARPAnet 网络项目被 ARPA 立项,开发人员主要安徽新华学院 2015 届本科毕业论文(设计)1为了以下几点努力:网络在出现故障的情况下仍然可以维持正常工作,如果国家

15、发生战争,网络的某些部分遭受攻击而瘫痪无法工作,即使这样网络也能够通过其它完好部分从而维持正常通信。1986 年,世界第一次有了网络也就是 NSFnet,他是美国的 5 个超级计算机被美国的网络技术人员连接了起来,并且实现了地区网络的支持。1988 年,NSFnet 替代 ARPAnet 成为网络的主要传输媒介。NSFnet 是非常成功的 TCP/IP技术。1989 年,由于 ARPAnet 的解散,网络从军用转向民用,从此网络飞速的发展起来。“网站”是如今网络上出现的一种新兴媒介,通过网络使其已经成为一个实时的,大数据的信息传播方式。它主要是通过电脑,以及覆盖全球的网络,它没有国家限制,不分

16、种族,时时刻刻地为人们提供各种信息。目前,人们已近开始把网站融入到自己的生活之中,它是新型的新闻媒体,以“分享、公开、公正、创造、国际化”为特性的文明网络也已逐渐成为了这个时代的标志,人们越来越频繁的通过网络获取各种信息,通过网络在网站上发表自己对自己所处社会以及对未来生活期待。随着网络的普及,论坛作为互联网上的一种应用,在网络上扮演了一个很重要的角色。随着互联网技术的飞速发展,论坛中内容越来越多,同时也受到广大网民的喜爱,因此商业网站对论坛建设也逐渐重视起来,他们为网民提供了一个交流的平台,同时在线服务技术也在论坛中发展了起来。1.3 研究内容和目标如今 BBS 系统主要是为注册用户提供一个

17、平台,用户可以通过网络登陆论坛,在论坛上发表帖子及观点、回复帖子、阅读帖子,学习自己想学的知识。C/S 结构是所有计算机专业学生都知道的软件体系结构,它是将任务合理分配给客户端和服务器端,通过此方法来降低系统的通讯开销,从而达到充分利用到两端硬件环境的优势。这属于早期的大多数软件系统的设计标准。本系统的目的是研究 B/S 结构,研究只需通过浏览器就可以实现,在用户前端完成用户可视化界面展示,在服务器端实现主要的功能,形成我们所说的安徽新华学院 2015 届本科毕业论文(设计)2浏览器服务器结构。研究 B/S 结构是如何利用了不断发展的浏览器,结合浏览器所支持的各种语言以及新出现的 Active

18、X 技术,让用户只需通过操作系统的浏览器就能将原来需要软件才能实现的功能简单的实现,B/S 结构在目前也是网络技术中最受欢迎一种结构。现今 Windows 操作系统已经很普及浏览器的安装也非常方便,这种结构也越来越变成软件编成首选的体系结构。课题研究的目标是将所学的知识运用于实践,结合 BBS 系统实际需要,采用 B/S 结构来实现 BBS 的基本功能,如发帖,回帖,用户登录,用户注册等。安徽新华学院 2015 届本科毕业论文(设计)32 开发平台与主要技术2.1 开发平台2.1.1MyEclipseMyEclipse 是在 eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开

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

20、些优点,所以系统选用了 MyEclipse 作为开发工具,这给系统的开发带来了许多的便捷。2.1.2TomcatJakarta 项目中的一个主要项目就是 Tomcat 它是 Apache 软件基金会支持,是由 Apache、 Sun 和一些公司及个人共同开发的。由于有了 Sun 的参与和支持,目前的 Servlet 和 JSP 规范在 Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和 JSP 2.0 规范 1。因为 Tomcat 具有先进的技术和稳定的性能,如今深受 Java 开发者的亲睐并且开发商大多也使用它,在目前的应用服务器市场广泛使用。目前最新版本是 8

21、.0。Tomcat 属于轻量级的 Web 应用服务器,它对所有人和公司都是免费的,它被普遍使用在中小型系统和访问量不是很大的网站,JSP 程序开发和调试一般选择 Tomcat。对于刚开始的接触 Tomcat 的学习者来说,Apache 服务器只要在电脑上做好正确的配置,就可利用它响应页面的请求。事实 Tomcat 是对Apache 服务器的一个扩展,但是他可以自己独立运行,Tomcat 是一个单独运安徽新华学院 2015 届本科毕业论文(设计)4行的 Apache 独立进程。实际上 Tomcat 是运行 JSP 页面和 Servlet 类。另外,Tomcat 和其他一些 Web 应用服务器一样

22、,它也可以处理 HTML 页面的功能,Tomcat 相当于一个 Servlet 和 JSP 容器,Tomcat 的默认模式就是独立的 Servlet容器 1。在处理静态 HTML 的能力 Apache 服务器要比 Tomcat 出色。2.1.3JDKJDK 是 Java 开发人员必须要使用的开发平台。从 Java 推出到现在,JDK几乎已近被所有 Java 开发人员所使用。Java 平台主要就是 JDK,Java 运行环境所需要的也是 JDK,开发 Java 所需的工具和 Java 类基本都存在于 JDK 中。只有内置了某个版本的 JDK 这样 Java应用服务器才能够运行起来。所以要学会 J

23、ava 就必须掌握 JDK。目前开发使用的 JDK 大多是 Sun 公司开发的 JDK,其实还有其他的 JDK,有的公司和组织都开发了属于自己的 JDK,但 Sun 的 JDK 是运用最广泛的。自从 JDK 从 5.0 后加入了许多强大的功能比如说泛型,JDK 版本信息就取消继承以前 1.2,1.3,1.4的版本,从 5.0,6.0 开始了。从 6.0 开始,程序的开发效率得到了极大地提高,尤其是在可视化应用方面 2-4。JDK 是使用 Java 来编写的,在官网中下载的安装包安装后有 src.zip 的压缩文件,里面包含了所有 JDK 的源代码。它是一个写 Java 程序的开发环境。本系统在

24、开发的过程中选用的是 JDK1.7 版本。2.14 MySQLMySQL 是一个关系型数据库管理系统,由瑞典 MySQLAB 公司开发,目前属于 Oracle 公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一 1。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。它分为社区

25、版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 安徽新华学院 2015 届本科毕业论文(设计)5MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。2.2 主要技术2.2.1 JSPJSP 全名为 Java Server Pages,中文名叫 java 服务器页面,其根本是一个简化的 Servlet 设计,它是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似 ASP 技术,它是在传统的网页HTML 文件(*.htm,*.ht

26、ml)中插入 Java 程序段(Scriptlet)和 JSP 标记(tag) ,从而形成 JSP 文件,后缀名为 (*.jsp)。 用 JSP 开发的 Web 应用是跨平台的,既能在Linux 下运行,也能在其他操作系统上运行 4-5。它实现了 Html 语法中的 java 扩张(以 形式)。JSP 与 Servlet 一样,是在服务器端执行的。通常返回给客户端的就是一个 HTML 文本,因此客户端只要有浏览器就能浏览。JSP 技术使用 Java 编程语言编写类 XML 的 tags 和 scriptlets,来封装产生动态网页的处理逻辑。JSP 是一种动态页面技术,它的主要目的是将表示逻辑

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

28、计思想,同时也出现了各种方便的开发框架。安徽新华学院 2015 届本科毕业论文(设计)62.2.3 Stuts、Hibernate、AJAXStruts 可以使 Web 应用程序混合使用 JSP 和 Servlet 的优点来建立可扩展的应用。Struts 解决了用 JSP 或 Servlet 开发 Web 应用程序时遇到的万儿难题。以前没有学习 Struts 时需要写大量的 Servlet 代码和许多 XML 的配置,才可以通过前端页面将数据传输到后端处理后,最后返回请求页面地址 8-9。学习 Struts后只需要进行少量的配置就可以实现原来的功能,本系统使用了 Struts 来控制网页的显示

29、,简单而清晰的条理让开发效率变得更加高效。Struts 在 Java 服务器端实现了 MVC 设计模式,在创建 Web 应用程序时能容易地分离表示层和业务数据层,这就解决了 JSP 带来的问题。在本系统中 Hibernate 也是一个重要的角色,它使我们后台连接数据库变的方便而且利于扩展,如果系统想在其他数据库中运行的话,我们只需在数据库中创建好数据库,然后将 Hibernate 的配置文件中数据库名称、 jar 包以及用户名密码进行修改就可以运行了 11-14。使用 Hibernate 我们不需要自己建表我们只需将各个 JavaBean 字段的关系写入配置文件后,Hibernate 就能够自

30、动建表。Hibernate 的主要作用就是管理对象之间的关系,然后通过 HQL 语句对数据库的数据进行管理在以前用户注册只有将数据提交到后台验证数据库中有没有相同的数据,最后将结果返回到页面上显示才能够知道用户名是否重复,在这个系统中用到了现在较为流行的 AJAX 技术,这项技术在输入数据后填写下个数据时会触发JS 事件, JS 就会将请求发个服务器然后取出想要的数据,在填写其他信息时用户就能够知道能否填写某些信息这使服务器和浏览器的数据交换大量减少,让用户感觉到网站响应速度很快。安徽新华学院 2015 届本科毕业论文(设计)73 需求分析3.1 项目背景当今网络技术逐渐渗入社会生活各个层面,

31、随着互联网的普及,人们在网上的活动变得越来越丰富,在网上的交流也越来越平凡。BBS 论坛分为很多类,一般一个论坛的用户都有相同的爱好,而且论坛对所有人都是不收费的。在论坛中由于用户很多,所以在用户提出一些话题时基本上都有人为你解答和讨论。在论坛里,人们消除了时间空间的限制,用户不必担心个人信息的泄露,论坛中的注册用户都可以发表自己的话题和对其他用户的话题提出自己的看法,所有用户都是平等的,可以随意的讨论自己想讨论的不违法的话题。因此 BBS 网上论坛系统有着广阔的市场背景。3.2 功能概述3.2.1 功能结构在本系统中我将其分为 3 个部分,分别为:用户的管理、版块的管理、帖子的管理。帖子的管

32、理又分为发表帖子,回复帖子,修改帖子,删除帖子;用户的管理又分为登录,注册,退出,修改信息的操作;版块的管理又分为添加版块,修改版块,删除版块操作。系统的功能结构图如图 3.1 所示:安徽新华学院 2015 届本科毕业论文(设计)8基于 JAVA的 BBS 论坛帖子管理删除版块修改版块添加版块信息修改用户退出用户登录用户注册删除帖子修改帖子发表帖子版块管理用户管理图 3.1 系统功能结构图3.2.2 功能描述在本论坛系统中是由两个小系统而组成,一个是前台用户系统,另一个是后台管理系统。主要包括:版块的管理、用户的管理、帖子的管理、三个功能模块。管理员在后台版块管理中具有的操作是添加版块,修改版

33、块,删除版块,添加子版块,修改子版块,删除子版块,但普通用户不具有这些操作。管理员在后台用户管理中可以删除用户和添加系统管理员的功能。用户和管理员可以发表帖子,修改帖子,删除帖子,回复帖子的操作。但这些操作都必须在用户登录以后才能进行,而且每个登录的用户只能修改和删除自己的帖子和回帖,只有管理员可以删除所有人的帖子以及回复。3.3 系统用例由参与者(Actor)、用例( Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及安徽新华学院 2015 届本科毕

34、业论文(设计)9它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。BBS 论坛系统前台用例:前台是用户登录后发表观点和回复观点,用户之间进行交流,帖子管理的用例图如图 3.2 所示。普 通 用 户浏 览 器发 表 帖 子修 改 自 己 贴 子删 除 自 己 帖 子回 复 帖 子包 括包 括包 括包 括图 3.2 帖子管理用例图BBS 交流平台后台用例:后台主要是管理员对后台帖子、版块进行管理维护,后台系统用例图如图 3.

35、3 所示。管 理 员包 括版 块 管 理包 括帖 子 管 理包 括添 加 版 块包 括删 除 版 块包 括 发 表 帖 子包 括 修 改 自 己 帖 子包 括删 除 帖 子修 改 版 块包 括用 户 管 理包 括删 除 用 户添 加 管 理 员包 括包 括图 3.3 系统后台用例图安徽新华学院 2015 届本科毕业论文(设计)104 总体设计4.1 数据库设计在软件开发中最重要的就是数据库设计,一个好的数据库设计能够给开发带来极大的便捷,使程序员只需通过少量的代码就能实现所需的功能,加快开发人员的开发效率,更快的完成任务。反之数据库不设计好就会使系统开发的进展变得缓慢,甚至失败。为了减少数据的

36、冗余,提高系统运行的效率我们必须设计出一个好的数据库。系统在数据库设计上共设计了五张表,它们分别是:用户表、角色表、版块表、话题表、回贴表。4.1.1 E-R 图数据库的 E-R 图是非常重要的它反映了各字段间的关系, Mysql 的可视化工具 SQLyog 中自带架构设计器,它是采用图形化来表现的,很方便的就能将要关联的字段关联起来。并且能够自动创建 E-R 图,使表与表之间的关系更简单清晰的展现了出来,系统数据库的 E-R 如图 4.1 所示图 4.1 数据库 E-R 图安徽新华学院 2015 届本科毕业论文(设计)114.1.2 表的设计1.用户表中有用户 ID,用户名,密码,头像,注册

37、时间,性别,角色 ID;2.角色表中有角色 ID,角色名称;3.版块表中有版块 ID,父版块 ID,版块名称;4.话题表中有话题 ID,话题内容,话题标题,发表话题时间,所属用户ID,修改话题时间,所属版块 ID;5.回帖表中有回帖 ID,回帖内容,修改回帖时间,回帖时间,所属用户ID,所属话题 ID用户表主要保存的是用户信息,在用户表里面有一个字段是 ROLE_ID 它是于角色表关联的。用户表的设计信息如图 4.2 所示。图 4.2 用户表的设计角色表是用来保存系统用到的角色,系统只有两个角色,一个是 admin 系统管理员,另一个是 view 普通用户。角色表的设计信息如图 4.3 所示。

38、图 4.3 角色表的设计安徽新华学院 2015 届本科毕业论文(设计)12版块表是存储系统版块信息,系统只有两级版块,数据表使用parent_board_id 与自身关联来区分版块等级,parent_board_id 字段为空时代表一级版块。版块表的设计信息如图 4.4 所示。图 4.4 版块表的设计话题表是存储用户发表的话题,它的 board_id 字段关联了版块表主要功能是区分属于哪个版块,它的 user_id 字段关联了用户表主要功能是区分话题属于哪个用户发表的,话题内容字段设为 text 这使得话题内容可以有较多的信息。话题表的设计信息如图 4.5 所示。图 4.5 话题表的设计回帖表

39、是存储用户话题的回帖,它的 topic_id 字段关联了话题表是用来区分该回复属于哪个话题,它的 user_id 字段关联了用户表主要功能是区分该回复是哪个用户回复的,回帖表的详细信息如图 4.5 所示。安徽新华学院 2015 届本科毕业论文(设计)13图 4.5 回帖表的设计4.2 时序图我们编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开。这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按照怎么样的顺序、传递什么消息、返回什么消息。这时候用时序图是最好不过的了。时序图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互他

40、由活动者(Actor)、对象( Object)、消息(Message)、生命线(Lifeline)和控制焦点(Focusofcontrol )组成。在 UML 中,对象表示为一个矩形,其中对象名称标有下划线;消息在时序图中由有标记的箭头表示;生命线由虚线表示,控制焦点由薄薄的矩形表示。图 4.6 是用户发帖的时序图,可以大致看出本系统的流程。在用户填好需要发表的信息点击发表帖子的按钮后,这时浏览器就会向服务器发送一个请求,服务器在接收到请求以后,将信息交个 Struts 的 ActionServlet 类来处理,ActionServlet 会去查询 Struts-config.xml 配置文件

41、查找出相对应的方法,然后TopicAction 类中的对应方法处理,TopicAction 类获取浏览器传过来的信息,创建一个 Topic 对象,接着调用业务层 TopicService 里的保存帖子的方法,最后安徽新华学院 2015 届本科毕业论文(设计)14调用持久层方法将 Topic 对象保存到数据库中。最后系统会将处理结果返回。用户就可以看到自己发表的帖子。浏 览 器 ActionServlet Struts-config.xml TopicAction TopicService TopicDao请 求 页 面 获 取 对 象Action对 象调 用 postTopic创 建 帖 子

42、对 象保 存 帖 子 调 用 持 久 化 方 法 持 久 化 到 数 据 库返 回 消 息保 存 结 果进 入 帖 子 详 情 页 面响 应 请 求图 4.6 用户发帖时序图安徽新华学院 2015 届本科毕业论文(设计)155 详细设计5.1 系统模式MVC 模式的代表模型视图控制器模式。这种模式是为了分离软件开发中各模块的耦合。Model(模型): 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“Model”不依赖“View”和“Controller ”,也就是说, Model 不关心它会被如何显示或是如何被操作。但是 Model 中数据的变化一般会通过一种刷新机制被公布。为了

43、实现这种机制,那些用于监视此 Model 的 View 必须事先在此 Model 上注册,从而,View 可以了解在数据 Model 上发生的改变,Model 则是由一个实体 Bean 来实现。View(视图):能够实现数据有目的的显示(理论上,这不是必需的)。在 View 中一般没有程序上的逻辑。为了实现 View 上的刷新功能,View 需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。Controller(控制器 ):起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据 Model 上的改变。本系统的设计采用了

44、MVC 的设计思想,控制器使用了自己较为熟悉的Struts1 框架。 Model 层使用的是 JavaBean 和 Hibernate 框架完成,View 层由一般的 JSP 实现的。5.2 控制层的设计本系统使用 Struts1 框架处理控制层。通常一个“控制器”是一个用户界面组件和模型之间的接口。控制器应细类,做多一点映射的用户界面事件模型的功能。它主要功能是处理用户的请求给服务器,服务器接收到这个请求有权限就会被传递到 Struts 的 ActionServlet 里。Struts1 在收到浏览器发来的请求以后,会去查找 struts-config.xml 文件,找到用户请求的 Acti

45、on 类,然后将信息传给 Action 类。通过 Action 类中的方法处理后得到相应的结果最后交给 JSP 视图,并给返回一个响应给用户,本系统安徽新华学院 2015 届本科毕业论文(设计)16由 8 个 Action 类组成控制层,控制层的类图如图 5.1 所示:AJXAAction+execute()UserAction+login()+loginout()+regist()+adminLogin()BBSAction+index()ReplyAction+reply()+loadReplyUpdateData()+updateReply()+deleteReply()TopicDet

46、ailAction+showDetail()+getCount()PageAction+initTotalPages()+getCount()TopicAction+loadTopic()+postTopic()+loadTopicUpdateData()+updateTopic()+deleteTopic()+getCount()BoardAction+addBoard()+delete()+update()+addChildBoard()+listBoard()+loadUpdateData()+listChildBoard()+search()+listFirstBoard()Mappi

47、ngDispatchAction图 5.1 控制层类图5.3 业务层的设计业务层主要完成系统的业务处理。当控制层接收到用户的请求就会调用业务层的某个方法,业务层调用持久层将数据保存到数据库或者返回消息给控制层。一般情况下业务层也可以持久化数据将数据存入数据库,但本系统为了使系统能够灵活扩展,所以定义了业务层和持久层。业务层负责调用方法,持久层只负责完成数据库的操作。业务层类图如图 5.2 所示:安徽新华学院 2015 届本科毕业论文(设计)17TopicServiceImpl+addTopic()+deleteTopic()+getByBoardId()+getByTopicId()+getB

48、yTopicId()+updateTopic()+getByBoardId()+getByUser()UserServiceImpl+addUser()+deleteUser()+findAll()+findByUserId()+findByUserName()+updateUser()+findByUserName()+findAdminByRoleName()+findUserByFenye()ReplyServiceImpl+addReply()+deleteReply()+findByReplyId()+findByTopicId()+updateReply()BoardService

49、Impl+addBoard()+deleteBoard()+getBoardById()+getBoardByName()+updateBoard()+getChildBoard()+getAll()+getFirstBoardAll()TopicServiceUserServiceReplyServiceBoardService图 5.2 业务层类图5.4 持久层的设计持久层主要包括的方法是对数据库的增删改查。在系统中用户的操作所产生的数据其实是暂时的、随时更新的、系统处理过后这些数据就会消失,所以需要持久层将有用的数据存入数据库,保证需要时可以随时获取。本系统是通过 JDBC 来完成数据库访问的,现在不同的数据库厂商都提供了访问数据库的 JDBC 接口提供了访问各种数据库的接口,在数据库中对象之间都是关系模型,所以在访问数据库时要将每个字段对应起来,由于这一环节容易出错故本系统使用了 Hibernate 持久层来完成对象和关系的一一对应。增加 Hibernate 持久层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。特别是在大型的应用里边,会更有利。同时,持久化层作为单独的一层,人们可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报