1、东北大学本科生毕业设计(论文)专用纸-摘要当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。网站以其独特的优势在信息化的过程中占有重要的一席。为了方便信息的交流,在结合 JAVA 和 S.S.H 技术之下开发了这个快捷、界面友好的交流系统,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。论坛在 StrutsHibernateSpring 扩展 Struts 框架的基础上,用当今主流的网站开发技术 jsp 语言进行开发。论坛将采用 B/S 体系结构,人们通过浏览器就可以访问教学网站的主页,保证的服务器的安全。数据库采用免
2、费,小巧,易用的 mysql 数据库。该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。该论坛还有一些特殊的功能,如在线人员显示、强大的搜索功能。本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型 BBS 论坛!关键词:BBS ,S.S.H(Struts ,Hibernate ,Spring),JAVA , MySQL ,JSP东北大学本科生毕业设
3、计(论文)专用纸-I目 录摘要.Abstract.目 录.第一章系统概述.11.1 总体概述.11.2 开发背景.21.3 开发 目的.3第二章系统 分析.42.1 技术可行性分析.42.1.1 开发语言综述.42.1.2 MySQL 数据库的选用.52.1.3 S.S.H 框架优点.62.1.4 系统层次 设计.92.1.5 技术可行性 综述.102.2 时间可行性(项目开发计划).102.3 系统需求分析.102.3.1 系统开发运行环境.102.3.2 业务描述.112.3.3 系统功能概述.122.3.4 数据流程.122.4 系统总体结构分 析结论.15第三章系统设计.163.1 数
4、据库设计.163.1.1 概念模型 设计(E -R 图).163.1.2 数据库表及 关系 建立.183.1.3 详细数据库结 构设计.183.2 系统概 要设计.233.2.1 功能模块设计.233.2.2 系统界面 设计.263.2.3 系统的组件 设计.28第四章系统的详细设计 与实现.314.1 系统框架实现.314.1.1 底层数据库的建立.314.1.2 持久化层的建立 (hibernate).324.1.3 业务逻辑层的 建立.334.1.4 表示层的 建立.36东北大学本科生毕业设计(论文)专用纸-II4.2 系统功能 模块实现.364.2.1 会员模块实现.364.2.2 帖
5、子模块实现.394.2.3 后台管 理模块实现.424.3 系统设计总结.44第五章系统的调试 与测试.455.1 测试概述.455.1.1 软件测试的目的.455.1.2 软件测试的任务.455.1.3 测试环境.465.2 单元测试. 465.2.1 黑盒测试.465.2.2 白盒测试.475.2.3 模块接 口测试.485.3 集成测试.505.3.1 自顶向 下集成.505.3.2 确认测试标准.51第六章结论.52参考 文献.53致 谢.54附录 A 英 文文献.55附录 B 翻译.68东北大学本科生毕业设计(论文)专用纸-0第 1 章 系统概述1.1 总体概述进入二十一世纪,计算机
6、技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端服务器的 C/S 结构,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器服务器的 B/S 结构,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于 Internet,而且投资小、见效快,用户可
7、以不必进行服务器方面的投资,而是去租用,甚至是免费使用 ISP 的服务器资源,因而受到越来越多中小型单位的青睐。随着 Internet 技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web 信息库的重要组成部分,自网上论坛诞生 20 多年以来,随着 Web 技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工
8、作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间, 影响和改变着我们的生活。东北大学本科生毕业设计(论文)专用纸-11.2 开发背景1978 年在美国芝加哥开发出一套基于 8080 芯片的 CBBS/Chicago (Computerized Bulletin Board System/Chicago),此乃最早的一套 BBS 系统。之后随着苹果机的问世,开发出基于苹果机的 Bulletin Board System 和大众信息系统(Peopl
9、es 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 系统的最大特色是其源程序全部公开,有利于
10、日后的修改和维护,因此后来在开发其他的 BBS 系统时都以此为框架,所以 RBBS-PC 赢得了 BBS 鼻祖的美称。大约是从 1991 年开始,国内开始了第一个 BBS 站。经过长时间的发展,直到 1995 年,随着计算机及其外设的大幅降价,BBS 才逐渐被人们所认识。1996年更是以惊人的速度发展起来。国内的 BBS 站,按其性质划分,可以分为 2 种:一种是商业 BBS 站,如新华龙讯网;另一种是业余 BBS 站,如天堂资讯站。由于使用商业 BBS 站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。多数业余 BBS 站的站长,基于个人关系,每天都互
11、相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络 China FidoNet(中国惠多网) 。于是,各地的用户都可以通过本地的业余 BBS 站与远在异地的网友互通信息。这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。由于业余 BBS 站拥有这种优势,所以使用者都更乐意加入。这里“业余”2 字,并不是代表这种类型的 BBS 站的服务和技术水平是业余的,而是指这类 BBS 站的性质。一般 BBS 站都是由志愿者开发的。他们付出的不仅是金钱,更多的是精力。其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平东北大学本科生毕业设计(论文)专用纸-2国内的 BBS 站
12、,大多数还是大型综合性 BBS 站。随着计算机的普及,特别是宽带的普及,BBS 的活动将会进一步高涨。但是,随之而来对专注于领域方面的BBS 将会慢慢增加需求。尽管 BBS 站台的数量在不断增长,但 BBS 的发展过程,也出现了一些问题。由于国内使用的 BBS 架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些站台的设立是相互抄袭,所以在结构上难免有雷同之处。 而国内自己开发的 BBS 基本上都是处于最原始的 JSP MODEL1 模式, 这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样
13、极大的限制了 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 技
14、术可行性分析2.1.1 开发语言综述本系统是基于面向对象思想的 JAVA 语言中 J2EE 平台进行编写,J2EE 平台具有以下优点1.简化结构:J2EE 平台支持简化的、基于组件开发模型,由于 J2EE 基于Java 编程语言和 J2SE 平台,它提供了编写一次,随处运行的可移植性,遵循J2EE 标准的所有服务器都支持该模型。EJB 组件使编写应用程序更为简单。尽管 EJB 体系结构复杂,但应用程序开发人员一般都必再编写访问系统服务的代码,EJB 容器会实现系统级的服务,例如,事务、安全性等。另外,J2EE 还支持异构环境。基于 J2EE 的应用程序不依赖任何特定操作系统、中间件或硬件,因此
15、,设计合理的基于 J2EE 的程序只需开发一次就可以部署到各种平台,这在典型的异构企业算环境中是十分关键的。J2EE 标准还允许客户订购与 J2EE 兼容的第三方的现成组件,把其部署到异构环境中,节省了由自己制订整个方案所需的费用。2. 提高开发效率:由于组件技术的使用,可以按照开发人员的技能对应用程序开发进行分工,并行开发,提供整体开发效率。例如:图形设计师创建 JSP 模板,商业逻辑由该领域的专家完成,JSP 页面和 EJB 由 Java 工程师完成,应用程序的装配和部署由团队中其他的成员完成,其中许多工作可以同时进行,有助于加速应用程序的开发。3.可移植性强:除了 Java 语言固有的可
16、移植性外,EJB 体系结构在 Bean 和支持该 Bean 的容器之间提供了一套标准化的应用程序编程接口,这使开发人员能够将 Bean 从一种操作环境移植到另一种操作环境,而无需重新编写其源代码。东北大学本科生毕业设计(论文)专用纸-44.重用性好:由于在 EJB 模型中,各个软件组件都是严格分离的,因此,可以从现有的软件组件装配出服务器端应用程序,这与从现有的 JavaBean 可以装配出客户端应用程序一样,使软件能够重用。5.易于维护:基于组件的设计简化了应用程序的维护。由于组件可以被独立地更新和替代,通过更新应用程序中特定的组件,新的功能可以被很容易地增加。6.可伸缩性:企业必须要选择一
17、种服务器端平台,以便满足那些在它们系统上进行商业动作大批新客户。基于 J2EE 平台的应用程序可被部署到各种操作系统上,例如,可被部署到高端 UNIX 或其他的大型机系统上。J2EE 领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统,满足未来商业应用的需要。7.被广泛接受:主要的 IT 供应用商都采纳 EJB 体系结构,不同供应商的产品只要符合 EJB 体系结构,就都是可互操作的。2.1.2 MySQL 数据库的选用MySQL 是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL 具有小巧、功能齐全、
18、查询迅捷等优点,关键的是它是免费的,可以在 Internet 上免费下载到,并可免费使用,对于一般中小型,甚至大型应用都能够胜任MySQL 具有以下优点:1、首先是速度。对于 MySQL 来说,速度是他们追求的主要目标之一,基于这个原因,MySQL 在以前的文档中也曾经说过并不准备支持事务和触发器。但是在最新的文档中,我们看到 MySQL 4.0.2-alpha 已经开始支持事务,而且在MySQL 的 TODO 中,对触发器、约束这样的注定会降低速度的功能也列入了日程。但是,仍然有理由相信,MySQL 将有可能一直保持速度的优势。2、MySQL 更流行,流行对于一个商业软件来说,也是一个很重要
19、的指标,东北大学本科生毕业设计(论文)专用纸-5流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。3、MySQL 更适宜在 Windows 环境下运行。MySQL 作为一个本地的Windows 应用程序运行( 在 NT/Win2000/WinXP 下,是一个服务 ), 在 Windows运行中,MySQL 更加的稳定。4、MySQL 使用了线程,在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。5、MySQL 可以适应 24/7 运行。在绝大多数情况下,你不需要为 MySQL 运行任何清除程序。6、MySQL 在权限系
20、统上更为完善。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 三
21、大免费开源框架的结合使用, 它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts 属于 MVC 框架,关键是要了解 MVC 的概念及大致原理;而 hibernate 属于 ORM 系统,属于持久层的解决方案,同样需要对 ORM 的概念及原理有一个总体的了解。而 spring 属于应用程序框架,其核心是 IOC 容器东北大学本科生毕业设计(论文)专用纸-6以及 AOP,Spring 中还集成了很多适用东西,比如对 JDBC 的封装、自己的 MVC、对动态语言的简洁访问等,它由以下 3
22、个框架构成: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)提供一致的模型封装,是