BBS论坛设计论文(完整版!)(1) 2 - 图文

更新时间:2024-06-05 16:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

东北大学本科生毕业设计(论文)专用纸

摘要

当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。网站以其独特的优势在信息化的过程中占有重要的一席。为了方便信息的交流,在结合JAVA和S.S.H 技术之下开发了这个快捷、界面友好的交流系统,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。

论坛在Struts+Hibernate+Spring扩展Struts框架的基础上,用当今主流的网站开发技术jsp语言进行开发。论坛将采用B/S体系结构,人们通过浏览器就可以访问教学网站的主页,保证的服务器的安全。数据库采用免费,小巧,易用的mysql数据库。该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。该论坛还有一些特殊的功能,如在线人员显示、强大的搜索功能。本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。 本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!

关键词:BBS ,S.S.H(Struts ,Hibernate ,Spring),JAVA , MySQL ,JSP

I --

东北大学本科生毕业设计(论文)专用纸

Abstract

Society nowadays just be placed in the network for ages , the information-based big tide rolls up the word , the network is making widely available to open in the our country with the unprecedented speed . In order to facilitate the teachers and students information the exchange, in unified JAVA and S.S.H under the server technology has developed this quick truncation, the contact surface friendly teachers and students alternating-current system.realized a function relatively complete forum system, the net friend has been possible freely to propose the question as well as helped other people to solve the problem, or exchange experience. This BBS prepares to expand the Struts frame in Struts + Hibernate + Spring in the foundation , carries on the development with now the mainstream website development technology ----JSP language . This website will use the B/S system structure , the people may visit the teching website through the browser the main page . This make sure that the guarantee server is secure . The database uses free , exquisite , easy-using , MYSQL database . This forum function is complete, may freely express own viewpoint in here and express the opinion to the forum subject, we also may promptly solve to net friend's question, gain to the oneself useful knowledge. This forum also has some special functions, like the on-line personnel demonstrates, the formidable search function. This website strictly carries on the development according to the software project development flow , regarding the website development feasibility analysis , the demand analysis , the outline design , the detailed design as well as all has the detailed

II --

东北大学本科生毕业设计(论文)专用纸

elaboration and the realization process to the website test and the maintenance .

Keywords: BBS ,Struts ,Hibernate ,Spring ,JAVA ,MySQL ,JSP

III --

东北大学本科生毕业设计(论文)专用纸

目 录

摘要..................................................................................................................................Ⅰ Abstract…………………………...………………...…………………………………..Ⅱ 目 录…………….……………………………………………………………………Ⅲ 第一章系统概述……...…….…………………………………...……….…….………..1 1.1总体概述……...………………………………………………………...……....1 1.2开发背景……………………………………………………....……..….….…..2 1.3开发目的……...……………………………………..…………………….…....3 第二章系统分析……......…...……...……………...……….....……………..………….4 2.1技术可行性分析……...………………………………………………………...4 2.1.1开发语言综述…………………………………………………………....4 2.1.2 MySQL数据库的选用……………………………………………….….5 2.1.3 S.S.H框架优点…………………………………………………………..6 2.1.4系统层次设计………………………………………...………………….9 2.1.5 技术可行性综述……………………………………..………………...10 2.2时间可行性(项目开发计划)…………………………………………….……10 2.3系统需求分析…………………………………………………………...…….10 2.3.1 系统开发运行环境………………………………………………..…...10 2.3.2业务描述………………………………………………………………..11 2.3.3 系统功能概述……………………………………………………….....12 2.3.4 数据流程……………………………………………………………….12 2.4系统总体结构分析结论……………………………………………………....15 第三章系统设计……………………………………………………………………….16 3.1数据库设计……………………….…………………………………………...16 3.1.1概念模型设计(E-R图)………………………………..………………..16 3.1.2数据库表及关系建立…………………………………..………………18 3.1.3详细数据库结构设计…………………………………..………………18 3.2系统概要设计…………………………………………….…….……………..23 3.2.1功能模块设计……………………………………………..……………23 3.2.2系统界面设计……………………………………………..……………26 3.2.3系统的组件设计…………………………………………..……………28 第四章系统的详细设计与实现……………………………………………………….31 4.1系统框架实现…………………………………………………….…………...31 4.1.1底层数据库的建立……………………………………………………..31 4.1.2持久化层的建立(hibernate)…………………………………………....32 4.1.3业务逻辑层的建立……………………………………………………..33 4.1.4表示层的建立………………………………………………………..…36

IV --

东北大学本科生毕业设计(论文)专用纸

4.2系统功能模块实现…………………………………………..…………..…….36 4.2.1会员模块实现…………………………………………………………...36 4.2.2帖子模块实现…………………………………………………………...39 4.2.3后台管理模块实现……………………………………………………...42

4.3系统设计总结………………………………………………...……………….44 第五章系统的调试与测试……………………………………………….……………45 5.1测试概述……………………………………………………………………….45 5.1.1软件测试的目的………………………………………………………...45 5.1.2软件测试的任务………………………………………………………...45 5.1.3测试环境………………………………………………………………...46 5.2单元测试…………………………………………………………..…..……… 46 5.2.1黑盒测试………………………………………………………………...46

5.2.2白盒测试………………………………………………………………...47

5.2.3模块接口测试…………………………………………………………...48 5.3集成测试…………………………………………………………..…..……….50 5.3.1自顶向下集成…………………………………………………………...50 5.3.2确认测试标准…………………………………………………………...51 第六章结论………………………………………………………………….…………52 参考文献……………………………………………………………………….………53 致 谢………………………………………………………………………………….54 附录A 英文文献……………………………………………………………………...55 附录B 翻译…………………………………………………………………………...68

V --

东北大学本科生毕业设计(论文)专用纸

第 1 章 系统概述

1.1 总体概述

进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。

随着Internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web信息库的重要组成部分,自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间, 影响和改变着我们的生活。

1 --

东北大学本科生毕业设计(论文)专用纸

1.2 开发背景

1978年在美国芝加哥开发出一套基于8080芯片的CBBS/Chicago (Computerized Bulletin Board System/Chicago),此乃最早的一套BBS系统。之后随着苹果机的问世,开发出基于苹果机的Bulletin Board System和大众信息系统(Peoples Message System)2种BBS系统。1981年IBM个人计算机诞生时,并没有自己的BBS系统。直到1982年,Buss Lane 才用Basic语言为IBM个人计算机编写了一个原型程序。其后经过几番增修,终于在1983年通过Capital PC User Group(CPCUG)的Communication Special Interest Group会员的努力,改写出了个人计算机系统的BBS。经Thomas Mach整理后,终于完成了个人计算机的第1版BBS系统——RBBS-PC。这套BBS系统的最大特色是其源程序全部公开,有利于日后的修改和维护,因此后来在开发其他的BBS系统时都以此为框架,所以RBBS-PC赢得了BBS鼻祖的美称。

大约是从1991年开始,国内开始了第一个BBS站。经过长时间的发展,直到1995年,随着计算机及其外设的大幅降价,BBS才逐渐被人们所认识。1996年更是以惊人的速度发展起来。国内的BBS站,按其性质划分,可以分为2种:一种是商业BBS站,如新华龙讯网;另一种是业余BBS站,如天堂资讯站。由于使用商业BBS站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。多数业余BBS站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络China FidoNet(中国惠多网)。于是,各地的用户都可以通过本地的业余BBS站与远在异地的网友互通信息。这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。由于业余BBS站拥有这种优势,所以使用者都更乐意加入。这里“业余”2字,并不是代表这种类型的BBS站的服务和技术水平是业余的,而是指这类BBS站的性质。一般BBS站都是由志愿者开发的。他们付出的不仅是金钱,更多的是精力。其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平 国内的BBS站,大多数还是大型综合性BBS站。随着计算机的普及,特别是宽

2 --

东北大学本科生毕业设计(论文)专用纸

带的普及,BBS的活动将会进一步高涨。但是,随之而来对专注于领域方面的BBS将会慢慢增加需求。尽管BBS站台的数量在不断增长,但BBS的发展过程,也出现了一些问题。由于国内使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些站台的设立是相互抄袭,所以在结构上难免有雷同之处。 而国内自己开发的BBS基本上都是处于最原始的JSP MODEL1模式, 这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样极大的限制了BBS站点的扩展,

于是在这种情况下,本文提出了目前比较流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!

1.3 开发目的

综上所述,本文提出了目前比较流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!

3 --

东北大学本科生毕业设计(论文)专用纸

第 2 章 系统分析

2.1技术可行性分析

2.1.1 开发语言综述

本系统是基于面向对象思想的JAVA语言中J2EE平台进行编写,J2EE平台具有以下优点

1.简化结构:J2EE平台支持简化的、基于组件开发模型,由于J2EE基于Java编程语言和J2SE平台,它提供了编写一次,随处运行的可移植性,遵循J2EE标准的所有服务器都支持该模型。

EJB组件使编写应用程序更为简单。尽管EJB体系结构复杂,但应用程序开发人员一般都必再编写访问系统服务的代码,EJB容器会实现系统级的服务,例如,事务、安全性等。

另外,J2EE还支持异构环境。基于J2EE的应用程序不依赖任何特定操作系统、中间件或硬件,因此,设计合理的基于J2EE的程序只需开发一次就可以部署到各种平台,这在典型的异构企业算环境中是十分关键的。J2EE标准还允许客户订购与J2EE兼容的第三方的现成组件,把其部署到异构环境中,节省了由自己制订整个方案所需的费用。

2. 提高开发效率:由于组件技术的使用,可以按照开发人员的技能对应用程序开发进行分工,并行开发,提供整体开发效率。例如:图形设计师创建JSP模板,商业逻辑由该领域的专家完成,JSP页面和EJB由Java工程师完成,应用程序的装配和部署由团队中其他的成员完成,其中许多工作可以同时进行,有助于加速应用程序的开发。

3.可移植性强:除了Java语言固有的可移植性外,EJB体系结构在Bean和支持该Bean的容器之间提供了一套标准化的应用程序编程接口,这使开发人员能够将Bean从一种操作环境移植到另一种操作环境,而无需重新编写其源代码。

4.重用性好:由于在EJB模型中,各个软件组件都是严格分离的,因此,可以

4 --

东北大学本科生毕业设计(论文)专用纸

从现有的软件组件装配出服务器端应用程序,这与从现有的JavaBean可以装配出客户端应用程序一样,使软件能够重用。

5.易于维护:基于组件的设计简化了应用程序的维护。由于组件可以被独立地更新和替代,通过更新应用程序中特定的组件,新的功能可以被很容易地增加。

6.可伸缩性:企业必须要选择一种服务器端平台,以便满足那些在它们系统上进行商业动作大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上,例如,可被部署到高端UNIX或其他的大型机系统上。J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统,满足未来商业应用的需要。

7.被广泛接受:主要的IT供应用商都采纳EJB体系结构,不同供应商的产品只要符合EJB体系结构,就都是可互操作的。

2.1.2 MySQL数据库的选用

MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,关键的是它是免费的,可以在Internet上免费下载到,并可免费使用,对于一般中小型,甚至大型应用都能够胜任

MySQL具有以下优点:

1、首先是速度。对于MySQL来说,速度是他们追求的主要目标之一,基于这个原因,MySQL在以前的文档中也曾经说过并不准备支持事务和触发器。但是在最新的文档中,我们看到MySQL 4.0.2-alpha已经开始支持事务,而且在MySQL的TODO中,对触发器、约束这样的注定会降低速度的功能也列入了日程。但是,仍然有理由相信,MySQL将有可能一直保持速度的优势。

2、MySQL更流行,流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。

5 --

东北大学本科生毕业设计(论文)专用纸

3、MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在NT/Win2000/WinXP下,是一个服务), 在Windows运行中,MySQL更加的稳定。

4、MySQL使用了线程,在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。

5、MySQL可以适应24/7运行。在绝大多数情况下,你不需要为MySQL运行任何清除程序。

6、MySQL在权限系统上更为完善。MySQL允许你定义一整套的不同的数据级、表级和列级的权限。对于列级的权限。MySQL还允许你指定基于主机的权限。

7、由于MySQL 4.0.2-alpha开始支持事务的概念,因此事务对于MySQL不再仅仅成为劣势。相反,因为MySQL保留无事务的表类型。这就为用户提供了更多的选择。

8、MySQL的MERGE表提供了一个独特管理多个表的方法。

9、MySQL的myisampack可以对只读表进行压缩,此后仍然可以直接访问该表中的行。

2.1.3 S.S.H框架的优点

S.S.H框架是J2EE应用中struts+spring+hibernate三大免费开源框架的结合使用, 它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,

6 --

东北大学本科生毕业设计(论文)专用纸

它由以下3个框架构成: 1.Struts框架

Struts是Apache组织的一个开放源码项目。Struts是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。其基本构成如图2.1所示。

图2.1 Struts框架工作流程

2.Spring框架

Spring 的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web 框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate 等),Spring 也提供了与它们相整合的方案。

7 --

东北大学本科生毕业设计(论文)专用纸

Spring框架由以下7个部分组成

图2.2 Spring框架构成

3.Hibernate框架

Hibernate 是一个开放源码的 ORM 持久层框架。作为优秀的持久层框架实现,Hibernate 框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate 只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。

8 --

东北大学本科生毕业设计(论文)专用纸

图2.3 Hibernate框架

2.1.4 系统层次设计

系统很据S.S.H框架的特点,决定使用四层结构,这样做的优点是 (1)可以分层开发,访问数据库与业务逻辑实现能够分开。 (2)提高代码的复用

表示层 业务逻辑层 持久化层 数据库层

图2.4 LeafBBS系统的分层结构

9 --

东北大学本科生毕业设计(论文)专用纸

2.1.5 技术可行性综述

综上所述,这些成熟的框架和优秀的设计思想,为系统建设提供了技术条件。计算机等基础设施的更新换代也紧跟潮流的发展,这就为开发系统提供了坚实基础。

2.2时间可行性(项目开发计划)

本系统的难点在于三大框架的结合使用,但目前有很多优秀的书籍可供参阅,且参加过类似项目的开发,预计本系统在规定时间内,基本能够完成.

开发计划如下:

2007.01.01-03.30 调研 2007.04.31-04.13 资料查阅 2007.04.16-04.20 方案设计 2007.04.02-05.18 编写程序 2007.05.07-05.18 撰写论文

2.3 系统需求分析

2.3.1 系统开发运行环境

鉴于系统的开发语言和数据库,采用如下的开发环境 开发环境: Windows 2000NT TomCat6.0 JDK1.5 硬件实现: PentiumⅣ2.4G 1G内存 80G硬盘 开发语言: Java

10 --

东北大学本科生毕业设计(论文)专用纸

数 据 库: MySQL 开发工具: MyEclipse5.1

预期成果: 一个可扩展的基于MVC模式的 BBS论坛

2.3.2 业务描述

对于访问论坛的用户,可分为注册会员和为注册的临时用户,这两种用户有着不同的权限,比如临时用户只能对帖子进行查看,而注册会员除了查看帖子之外,还可以发帖,回复,查找用户,并且可以对自己的注册资料进行修改等等,

系统的用例图如下:

会员用户 浏览帖子 发表帖子 临时用户 回复帖子 修改资料 管理员 会员搜索 会员管理 帖子管理 论坛信息

图2.5 系统用例图

11 --

东北大学本科生毕业设计(论文)专用纸

2.3.3 系统功能概述

本系统是一套网上交流的BBS软件,根据用户的需要和实际的管理条件,应由用户功能实现,帖子功能实现和后台管理等几个模块所构成,用户可以对一些数据进行查找和修改,并且注册的用户可以对帖子进行特定的操作,而管理员可以对用户和帖子进行相关的管理.

鉴于本系统的性质,系统应该实现以下功能. 1.用户功能实现 (1).用户的登录 (2).用户的注册 (3).用户的查找 (4).用户资料的修改 2.帖子功能实现 (1).帖子的发表 (2).帖子的回复 (3).帖子的查找 3.后台管理 (1).用户的管理 (2).帖子的管理 (3).论坛信息的管理 (4).图片的管理 2.3.4 数据流程

本系统是为了提供给广大用户一个网上交流的平台,所以论坛的流程是以用户为中心进行的.

数据流图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数

12 --

东北大学本科生毕业设计(论文)专用纸

几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据流图具有以下两个特性:

(1)抽象性:表现在它完全舍去了具体的物质,只剩下数据的流动、加工处理与存储。

(2)概括性:表现在它可以把信息中的各种不同业务处理过程联系起来,形成一个整体。

数据流图由以下四种基本元素组成,既外部实体、数据流、处理(功能)、数据存储等,数据流图中所用的符号如下:

外部实体 处理 数据流 数据存储

13 --

东北大学本科生毕业设计(论文)专用纸

LeafBBS论坛系统的数据流程图如下

P1 发表帖子 (3) (5) (4) P4 搜索帖子 (2) (6) (7) 用户 (1) P2 查看帖子 (8) F1 帖子资料 (5) (9) P3 回复帖子 (10) P5 搜索用户 (13) F2 用户资料 (11) P6 资料修改 (12)

说明:⑴——访问信息,⑵⑶⑽⑾——用户信息,⑷——发表帖子信息,⑸更新帖子信息,⑹搜索信息

⑺——获取帖子信息,⑻回复信息,⑼搜索用户,⑿更新用户信息,⒀获取用户资料

图2.6 数据流程图

14 --

东北大学本科生毕业设计(论文)专用纸

2.4系统总体结构分析结论

通过对系统框架及数据库的选择,和总体的需求分析,完成了前期对系统模块的划分,数据的流程,以及一些可行性的分析.在此基础上,可以系统的数据库和功能模块进行概要设计.

15 --

东北大学本科生毕业设计(论文)专用纸

第 3 章系统设计

在前期的系统结构分析的基础上,对系统进行概要设计.

3.1 数据库设计

数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求).

数据库和设计概述

(1)数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。

(2)数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。

(3)数据库设计是信息系统开发和建设的重要组成部分。

3.1.1概念模型设计(E-R图)

数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。

E-R模型的基本概念

ER图概念化地构建实体间关系的模型,这使得它们区别于数据库模型图。ER图的理念是:项目所有参与者能理解ER图。ER图由不同实体类型、关系、特性和类型构成。实体是诸如用户的实际对象,有时更抽象,但必须有业务意义。特性用

16 --

东北大学本科生毕业设计(论文)专用纸

于描述实体,关系用于实体之间 (1)实体:现实世界中的事物; (2)属性:事物的特性;

(3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。

本系统的ER图

M 用户 1 发表 N 帖子 N 管理 1 管理员 1 修改 1 详细资料 添加 N 论坛

图3.1 系统E-R图

17 --

东北大学本科生毕业设计(论文)专用纸

3.1.2数据库表及关系建立

根据以上这些步骤就可以创建一个数据库,依次建立下列表结构. 1.用户基本资料表 2.用户详细信息表 3.论坛文章表 4.论坛版区表 5.论坛初始化信息表

(1).用户基本信息表 和用户详细信息表是一对一的关系,一个用户只对应一个详细的信息表

(2).用户基本信息表和文章表是一对多的关系,即一个用户可以发表多篇文章和回复.

(3).论坛版区表和论坛文章表是一对多的关系,在一个论坛中可以含有多个文章和回复.

3.1.3详细数据库结构设计 (1).用户基本资料表:

用户基本资料表中存放的是用户登陆时所需要或者记录用户的基本信息,包含比如登陆名,密码,最后登陆时间等.用户基本信息表的建立主要是记录用户最常用的一些信息.

18 --

东北大学本科生毕业设计(论文)专用纸

表3.1 leafbbs_userinfo

字段名 ID UserName NickName Passwd Email Question Answer RegTime LoginTime LoginIP LoginTimes StayTime SignDetail HavePic

数据类型 长度 bigint Varchar Varchar Varchar varchar varchar varchar datetime datetime varchar int bigint text tinyint

20 11 20 1 255 20 20 20 60 40 255 255 255

主键 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否

索引 外键 可空

否 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否

否 否 否 否 否 否 否 否 否 否 否 否 是 是 是 是

说明 代理主键 用户名 昵称 密码 电子邮件 提示问题 提示答案 注册时间 最后登陆时间 最后登陆IP 登陆次数 停留时间 用户签名 是否有头像 头像地址 地区

PicFileName varchar TimeZone

varchar

19 --

东北大学本科生毕业设计(论文)专用纸

(2).用户详细信息表:

用户详细信息表中存放的是用户的身高,体重,联系方式等详细资料,建立此表的目的是把一些用户不经常用到的详细信息,单独存放到一张表中,可以节约系统的资源.

表3.2 leafbbs_userdetai

字段 ID Height Weight

数据类 bigint varchar varchar

长度 20 20 20 255 255 255 255 255 255 255 255 255 1

主键 是 否 否 否 否 否 否 否 否 否 否 否 否 否

索引 外键 可空

是 否 否 否 否 否 否 否 否 否 否 否 否 否

否 是 是 是 是 是 是 是 是 是 是 是 是 是

说明 代理主键 身高 体重 最喜欢的人 向往工作 喜欢的音乐 喜欢的地方 喜欢的电影 主页 QQ号码 ICQ号码 MSN号码 性别 简介

FavourPeople varchar DreamJob

varchar

FavourMusic varchar FavourPlace

varchar

FavourMovie varchar HomePage OicqNo IcqNo MSN Sex Brief

varchar varchar varchar varchar tinyint text

20 --

东北大学本科生毕业设计(论文)专用纸

(3).论坛文章表:

论坛文章表存放的是用户所发表的文章信息,也包括回复信息.而在数据库的设计中主要问题是鉴别帖子信息和回复信息.

表3.3 leafbbs_forum

字段名 ID ParentID MainID BoardID

数据类型 bigint bigint bigint bigint

长度 20 20 20 20 60 11 11 20 20 60 150 11 20 20 20 1 1 1 1

主键 索引 外键 可空 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否

21 --

说明 代理主键 父帖ID 主帖ID 版区ID 版区名字 回复数量 点击次数 发表者ID 发表者姓名 发表者昵称 文章标题 文章内容 文章说明 文章字节数 发表时间 最后回复时间 发表者IP 是否是新 是否隐藏 是否置顶 是否被锁定

否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否

否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否

BoardName varchar ReNum ClickNum UserID UserName NickName Title Detail Sign ArtSize postTime LastTime IPAddress IsNew IsHidden IsTop IsLock

int int bigint varchar varchar varchar text text int bigint bigint varchar tinyint tinyint tinyint tinyint

东北大学本科生毕业设计(论文)专用纸

(4).论坛版区表:

论坛版区表是存放的是论坛中版块信息.而论坛也划分为父论坛和子论坛,区分他们也靠表中的某个字段来实现的.具体实际的设计如下.

表3.4 leafbbs_board

字段名 ID ParentID ChildIDs

数据类型 bigint bigint varchar

长度 20 20 255 255 200 11 1 11 1 100

主键 索引 外键 可空 是 否 否 否 否 否 否 否 否 否 否

否 否 否 否 否 否 否 否 否 否 否

否 否 否 否 否 否 否 否 否 否 是

说明 代理主键 父版区ID 子版区ID 版区名字 版区描述 图片地址 显示顺序 是否隐藏 文章数量 是否加密 密码

BoardName varchar Explains BoardPic Orders IsHidden PostNum

text varchar int tinyint int

NeedPasswd tinyint Passwd

(5).论坛初始化信息表:

varchar

论坛初始化信息表是存放初始化信息和管理员的帐号密码等信息,初始化信息是在论坛在加载过程中读取的或者以后经常用的一些信息.

表3.5 leafbbs_config表

字段名 ID

数据类型 varchar

长度 50

主键 索引 外键 可空 是 否

否 否

否 否

说明 初始化标题 初始化信息

ConfContext text

22 --

东北大学本科生毕业设计(论文)专用纸

3.2 系统概要设计

根据需求分析的结果,对系统进行详细的概要设计 3.2.1功能模块设计

绘制出的用例图,将本系统分为三个大的模块,他们分别是会员资料模块,帖子资料模块和后台管理模块!本系统的功能层次图如图3.2.1所示

Leafbb系统 会员模块 帖子模块 后台管理 会员登录 会员注册 资料修改 会员查找 帖子发表 回复 帖子 帖子查找 帖子管理 图片管理 会员管理 论坛管理

图3.2系统功能层次图

23 --

东北大学本科生毕业设计(论文)专用纸

如图3.2.1,leafbbs系统实现了如下的功能. (1).会员模块:

此模块用来实现会员的登陆注册和会员资料的修改和查找. 1.会员登陆模块:

会员可以通过此模块对论坛进行登陆,登陆后便可以使用所有的会员功能,比如发帖回复等等. 2.会员注册模块:

没有会员帐号的用户,可以通过此模块添加会员信息,添加成功后便可登陆论坛,使用会员功能. 3.资料修改模块:

已注册的会员在登陆后,可以通过此模块,对会员的基本资料,联系方式,密码,头像等资料进行修改. 4.会员查找模块:

已注册的会员在登陆后, 可以通过此模块,对会员进行查找,并可以查看对方的资料,联系方式等等,从而方便会员之间的联系.

(2).帖子模块: 1.帖子发表模块:

已注册的会员在登陆后,可以在相应的论坛中,发表或转载自己的大作,发表成功后,其他会员便可以在相应的论坛中看到这篇帖子,并可以对其进行回复等操作.

2.帖子回复模块:

会员在发表完帖子后,用户便可查看相关文章,并可以在文章中对已发表的帖子进行回复, 3.帖子查找模块

会员可以通过此模块,根据帖子的标题和作者,对相关的帖子进行查找.

24 --

东北大学本科生毕业设计(论文)专用纸

(3).后台管理: 1.帖子查找模块:

此模块和帖子模块中的帖子查找类似,只是管理员的搜索条件比普通用户更加的广泛,使搜索变的便捷. 2.帖子管理模块:

帖子管理模块是管理员对帖子管理的平台,如果管理员查看到帖子有不适宜发表的内容时,可以对帖子选择删除或者锁定等操作,如果看到优秀的帖子,还可以将帖子进行置顶,加精,

帖子管理模块 帖子修改 帖子删除 帖子锁定 帖子置顶 帖子加精

图3.3帖子管理模块功能层次图

3.会员管理模块:

管理员可以通过此模块,对会员进行管理,对一些不法的用户可以修改或者删除资料,

4.论坛管理模块.

管理员对论坛的添加,创建,删除等功能都是在此模块里进行处理. 5.图片管理模块

管理员可以管理用户上传的头像,和在文章里发表的图片,从而加强对图片的控制

25 --

东北大学本科生毕业设计(论文)专用纸

3.2.2系统界面设计

对于系统来说,用户界面设计将非常重要,因为一个交互良好的界面能够加深浏览者的印象.

设计的实现可以分为两个部分。第一部分为站点的规划及草图的绘制,这一部分可以在纸上完成。第二部分为网页的制作,这一过程是在计算机上完成的.

设计首页的第一步是设计版面布局。我们可以将网页看作传统的报刊杂志来编辑,这里面有文字、图像乃至动画,我们要做的工作就是以最适合的方式将图片和文字排放在页面的不同位置。 除了要有一台配置不错的计算机外,软件也是必需的。不能简单地说一个软件的好坏,只要是设计者使用起来觉得方便而且能得心应手的,就可以称为好软件。当然,它应该能满足设计者的要求。常用的软件是Macromedia的Dreamweaver以及Adobe的Photoshop。

设计是有原则的,无论使用何种手法对画面中的元素进行组合,都一定要遵循五个大的原则:统一、连贯、分割、对比及和谐。

统一,是指设计作品的整体性,一致性。设计作品的整体效果是至关重要的,在设计中切勿将各组成部分孤立分散,那样会使画面呈现出一种枝蔓纷杂的凌乱效果。

连贯,是指要注意页面的相互关系。设计中应利用各组成部分在内容上的内在联系和表现形式上的相互呼应,并注意整个页面设计风格的一致性,实现视觉上和心理上的连贯,使整个页面设计的各个部分极为融洽,犹如一气呵成。

分割,是指将页面分成若干小块,小块之间有视觉上的不同,这样可以使观者一目了然。在信息量很多时为使观者能够看清楚,就要注意到将画面进行有效的分割。分割不仅是表现形式的需要。换个角度来讲,分割也可以被视为对于页面内容的一种分类归纳。

对比就是通过矛盾和冲突,使设计更加富有生气。对比手法很多,例如:多与少、曲与直、强与弱、长与短、粗与细、疏与密、虚与实、主与次、黑与白、动与静、美与丑、聚与散等等。在使用对比的时候应慎重,对比过强容易破坏美感,

26 --

东北大学本科生毕业设计(论文)专用纸

影响统一。

和谐是指整个页面符合美的法则,浑然一体。如果一件设计作品仅仅是色彩、形状、线条等的随意混合,那么作品将不但没有“生命感”,而且也根本无法实现视觉设计的传达功能。和谐不仅要看结构形式,而且要看作品所形成的视觉效果能否与人的视觉感受形成一种沟通,产生心灵的共鸣。这是设计能否成功的关键。

最后简单设计系统的简单登陆界面和主界面

图3.4用户登陆界面

27 --

东北大学本科生毕业设计(论文)专用纸

图3.5用户登陆后的主界面

3.2.3系统的组件设计

在整个系统中,为了解决诸如中文显示乱码此类的问题,本系统需要设计一些组件,来解决相关的问题.

(1).过滤器组件:

Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。

Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码

为了解决此类问题,需要设计一个组件来解决此类问题,每次请求和响应到达客户和服务器端时,都先经过此过滤器对字符进行过滤.

28 --

东北大学本科生毕业设计(论文)专用纸

用户 发送请求 过滤器(对字符进行过滤) 返回响应 服务器

图3.6字符过滤器原理图

(2).权限管理组件:

在论坛中的的用户一定会遇到关于权限的问题,比如没有登陆的用户只可以查看帖子,而即使登陆的用户,也只可以对自己应有的权限进行操作,不可以操作管理员的功能.

解决此类问题,本系统是通过判断特定的session来判断用户的权限,当用户登陆成功后,组件会发送相应的用户session,之后每次用户对论坛进行操作,都要先通过session,来判断用户的权限.

29 --

东北大学本科生毕业设计(论文)专用纸

用户 对论坛操作 判断权限 N 是否通过 Y 服务器 返回窗口

图3.7权限判断流程

(3).JSP标签组件

由于本文是基于MVC模式架构,所以在JSP网页中不应存放过多的逻辑判断,当本系统JSP网页中必须存有JAVA逻辑代码时,本系统设计了一些JSP标签来替代这些逻辑代码

30 --

东北大学本科生毕业设计(论文)专用纸

第 4 章 系统的设计与实现

程序设计又称编码,是系统生命周期中继详细设计之后的阶段,这个阶段的任务是使用选定的程序设计语言,把经过概要设计和详细设计所得到的以程序设计说明书体现的信息处理过程描述后,转换成能在计算机系统上运行的程序源代码。

4.1 系统框架实现

在系统的整体设计中,我们采取了四层结构.这样结构的优点是灵活,移植和可维护性比较高. 每个层在处理程序上都应该有一项明确的责任, 而不应该在功能上与其它层混合,并且每个层要与其它层分开的

图4.1 S.S.H框架的结合使用

4.1.1底层数据库的建立

在前期的数据库选用中,本系统选取了灵活高速的 MySQL数据库,而在数据库的设计中,本文已经确立了表结构. 根据这些就可以创建一个数据库,在数据库创建并连接好后,就可以创建表、修改表和删除表,创建、修改、和删除主键、外键等等。选中“leafbbs”数据库,use database并使用Create table<表名>Sql语句,依次创建以下表结构。由于考虑到本系统是应用在单机系统上,另外根据管理的规模,我们只建立一个数据库,在此数据库基础上建立

31 --

东北大学本科生毕业设计(论文)专用纸

leafbbs_userinfo 用户基本资料表 leafbbs_userdetai 用户详细信息表 leafbbs_forum 论坛文章表 leafbbs_board 论坛版区表 leafbbs_config 论坛初始化信息表

4.1.2持久化层的建立(hibernate)

典型的Web应用的另一个末端是持久层。Hibernate为java提供了OR持久化机制和查询服务, 它还给已经熟悉SQL和JDBC API 的Java开发者一个学习桥梁,他们学习起来很方便。 Hibernate的持久对象是基于POJO和Java collections。此外。

系统建立Hibernate的持久层 。 首先把BO持久化。 Hibernate是通过POJO工作的, 因此数据对象需要给所有的fileds 加上getter,setter方法。 Hibernate通过XML文件来映射(OR)对象,以下xml文件分别映射了相应对象。

1.userinfo.hbm.xml 2.userdetai.hbm.xml 3.forum.hbm.xml 4.board.hbm.xml 5.config.hbm.xml

32 --

东北大学本科生毕业设计(论文)专用纸

图4.2 userinfo.hbm.xml 映射文件

本系统可以在com.leafbbs.bean目录下找到这些xml文件。Hibernate配置文件的作用用来告诉程序 应该与哪个数据库通信,该使用哪个连接池或使用了DataSource, 应该加载哪些持久对象。而Session接口是用来完成Selecting,Saving,Delete和Updating这些操作。

4.1.3业务逻辑层的建立

本系统的业务逻辑是交由struts中的Action进行判断的,比如判断登陆的业务逻辑时,会建立一个LoginAction类来进行逻辑判断,而一些关联的映射,LeafBBS系统是写在struts框架的struts-config.xml中.

33 --

东北大学本科生毕业设计(论文)专用纸

图4.3 struts-config.xml 映射文件

从编码的视角来看,这层是最容易被忽视的一层。 却往往在持久层周围看到这些业务处理的代码,这其实是不正确的,因为它导致了程序代码的紧密偶合,这样一来,随着时间推移这些代码很难维护。幸好,针对这一问题本系统可以使用Spring框架来解决.spring框架都着手于“依赖注射”(dependency injection)(还有我们知道的‘控制反转'Inversion of Control=IoC)这样的简单概念。Spring还提供了Setter Injection(type2),Constructor Injection(type3)等方式供选择。 Spring把程序中所涉及到包含业务逻辑和Dao的Objects——例如transaction management handler(事物管理控制)、Object Factoris(对象工厂)、service objects(服务组件)——都通过XML来配置联系起来。这种方式让你的对象从创建中释放了出来,降低了偶合度.

34 --

东北大学本科生毕业设计(论文)专用纸

图4.4 spring 配置文件 applicationContext.xml 映射文件

每个对象都可以在Spring 配置信息applicationContext.xml中用标签引用。在这里,mySessionFactory引用了HibernateSessionFactory,而myTransactionManager引用了HibernateTransactionManage。 代码中myTransactionManger

Bean

sessionFactory

HibernateTransactionManager有个sessionFactory setter 和 getter方法,这是用来在Spring启动的时候实现\依赖注入\(dependency injection)的。 在sessionFactory 属性里 引用mySessionFactory。这两个对象在Spring容器初始化后就被组装了起来了。 这样的搭配让你从 单例(singleton objects)和工厂(factories)中解放了出来,降低了代码的维护代价。 mySessionFactory.的两个属性,分别是用来注入mappingResources 和 hibernatePropertes的。

35 --

本文来源:https://www.bwwdw.com/article/gzh6.html

Top