毕业论文——BBS论坛设计论文(完整版)_第1页
毕业论文——BBS论坛设计论文(完整版)_第2页
毕业论文——BBS论坛设计论文(完整版)_第3页
毕业论文——BBS论坛设计论文(完整版)_第4页
毕业论文——BBS论坛设计论文(完整版)_第5页
免费预览已结束,剩余74页可下载查看

下载本文档

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

文档简介

东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 摘要摘要 当今社会正处在网络时代 信息化大潮席卷全球 网络正以前所未有的速度在 我国普及开来 网站以其独特的优势在信息化的过程中占有重要的一席 为了方 便信息的交流 在结合 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 目 录 第一章系统概述 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 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 II 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 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 0 第第 1 1 章章 系统概述系统概述 1 11 1 总体概述总体概述 进入二十一世纪 计算机技术迅速向着网络化 集成化方向发展 传统的单 机版应用软件正在逐渐退出舞台 取而代之的是支持网络 支持多种数据信息 多媒体 的新一代网络版应用软件 而目前网络版软件中似乎存在着两种不同 的趋势 一种是称为客户端 服务器的 C S 结构 这类软件具有结构严谨 运 行效率高 服务器端压力小 安全性好等优点 被广泛运用于局域网中 而另一 种 也是本毕业设计所采用的 是称为浏览器 服务器的 B S 结构 它的特点 是在客户端直接采用了功能强大的浏览器软件作为界面 其优点在于软件开发效 率高 客户端不受操作平台的限制 也不受地域的限制 网络传输量少 即适用 于局域网 更适用于 Internet 而且投资小 见效快 用户可以不必进行服务器 方面的投资 而是去租用 甚至是免费使用 ISP 的服务器资源 因而受到越来越 多中小型单位的青睐 随着 Internet 技术的不断发展 以及用户群爆炸性地增长 网络不再仅仅 是信息的被动获取来源 更成为人们探讨间题 交换观点的场所 其中 网上论 坛扮演了极其重要的角色 随着时间的推移 论坛站点中积存了丰富的信息资源 不但有各类技术资料和新闻文档 还包含着用户的判断和评论 论坛站点己成为 Web 信息库的重要组成部分 自网上论坛诞生 20 多年以来 随着 Web 技术的发展 己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式 各种论坛随着网络迅速发展 几乎充实着生活工作的每一个方面 无论是商界 政界 还是娱乐界 都有各种论坛 互联网正在融入我们的生活 网络提供给我 们的不只是一个获取信息的来源 而且还是一个可以相互交流的空间 网上论坛 正是一种供人们进行交流的网络空间 影响和改变着我们的生活 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 1 1 21 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 站都是由志愿者开发的 他们付出的不仅是金钱 更多的是精力 其目的是为了推动中国计算机网络的健康发展 提高广大计算机 用户的应用水平 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 2 国内的 BBS 站 大多数还是大型综合性 BBS 站 随着计算机的普及 特别是宽 带的普及 BBS 的活动将会进一步高涨 但是 随之而来对专注于领域方面的 BBS 将会慢慢增加需求 尽管 BBS 站台的数量在不断增长 但 BBS 的发展过程 也出现了一些问题 由于国内使用的 BBS 架站软件 都是从国外引进的 因此没 有必要的中文说明 虽然一些热心的站长翻译了一些资料 但是仅靠这些是远远 不够的 另外 有些站台的设立是相互抄袭 所以在结构上难免有雷同之处 而国内自己开发的 BBS 基本上都是处于最原始的 JSP MODEL1 模式 这种模式是 控制层与表示层合二为一 虽然开发简单 但是拥有很差的扩展性 可维护性 这样 极大的限制了 BBS 站点的扩展 于是在这种情况下 本文提出了目前比较流行的 基于 MVC 模式的 S S H 框架 Sturts Spring hibernate 的 BBS 论坛 本套论坛的优点在于它具有强大的可扩展 性和可维护性 非常适合网民创建自己的中小型 BBS 论坛 1 31 3 开发目的开发目的 综上所述 本文提出了目前比较流行的 基于 MVC 模式的 S S H 框架 Sturts Spring hibernate 的 BBS 论坛 本套论坛的优点在于它具有强大的可扩 展性和可维护性 非常适合网民创建自己的中小型 BBS 论坛 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 3 第第 2 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 4 重用性好 由于在 EJB 模型中 各个软件组件都是严格分离的 因此 可 以从现有的软件组件装配出服务器端应用程序 这与从现有的 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 容器 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 6 以及 AOP Spring 中还集成了很多适用东西 比如对 JDBC 的封装 自己的 MVC 对动态语言的简洁访问等 它由以下 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 提供一致的模型封装 是 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 7 一个全方位的应用程序框架 Application framework 除此之外 对于现存的 各种框架 Struts JSF Hibernate 等 Spring 也提供了与它们相整合的方 案 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 系统的分层结构系统的分层结构 2 1 5 技术可行性综述技术可行性综述 综上所述 这些成熟的框架和优秀的设计思想 为系统建设提供了技术条件 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 9 计算机等基础设施的更新换代也紧跟潮流的发展 这就为开发系统提供了坚实基 础 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 数 据 库 MySQL 开发工具 MyEclipse5 1 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 10 预期成果 一个可扩展的基于 MVC 模式的 BBS 论坛 2 3 2 业务描述业务描述 对于访问论坛的用户 可分为注册会员和为注册的临时用户 这两种用户有着 不同的权限 比如临时用户只能对帖子进行查看 而注册会员除了查看帖子之外 还 可以发帖 回复 查找用户 并且可以对自己的注册资料进行修改等等 系统的用例图如下 会员用户临时用户 浏览帖子 发表帖子 回复帖子 修改资料 会员搜索 管理员 会员管理 帖子管理 论坛信息 管理 图图 2 5 系统用例图系统用例图 2 3 3 系统功能概述系统功能概述 本系统是一套网上交流的 BBS 软件 根 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 11 据用户的需要和实际的管理条件 应由用户功能实现 帖子功能实现和后台管理等 几个模块所构成 用户可以对一些数据进行查找和修改 并且注册的用户可以对帖 子进行特定的操作 而管理员可以对用户和帖子进行相关的管理 鉴于本系统的性质 系统应该实现以下功能 1 用户功能实现 1 用户的登录 2 用户的注册 3 用户的查找 4 用户资料的修改 2 帖子功能实现 1 帖子的发表 2 帖子的回复 3 帖子的查找 3 后台管理 1 用户的管理 2 帖子的管理 3 论坛信息的管理 4 图片的管理 2 3 4 数据流程数据流程 本系统是为了提供给广大用户一个网上交流的平台 所以论坛的流程是以用 户为中心进行的 数据流图是一种能全面地描述信息系统逻辑模型的主要工具 它可以用少数 几种符号综合地反映出信息在系统中的流动 处理和存储情况 数据流图具有以 下两个特性 1 抽象性 表现在它完全舍去了具体的物质 只剩下数据的流动 加工处 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 12 理与存储 2 概括性 表现在它可以把信息中的各种不同业务处理过程联系起来 形 成一个整体 数据流图由以下四种基本元素组成 既外部实体 数据流 处理 功能 数据存储等 数据流图中所用的符号如下 外部实体 处理 数据流 数据存储 LeafBBS 论坛系统的数据流程图如下 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 13 用户 查看帖子 P2 F1帖子资料 P3 回复帖子 P1 发表帖子 P4 搜索帖子 P5 搜索用户 F2用户资料 P6 资料修改 1 3 2 4 5 5 6 7 8 9 10 11 12 13 说明 访问信息 用户信息 发表帖子信息 更新帖子信息 搜索信息 获取帖子信息 回复信息 搜索用户 更新用户信息 获取用户资料 图图 2 6 数据流程图数据流程图 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 14 2 4 系统总体结构分析结论系统总体结构分析结论 通过对系统框架及数据库的选择 和总体的需求分析 完成了前期对系统模块 的划分 数据的流程 以及一些可行性的分析 在此基础上 可以系统的数据库和功 能模块进行概要设计 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 15 第第 3 3 章系统设计章系统设计 在前期的系统结构分析的基础上 对系统进行概要设计 3 1 数据库设计数据库设计 数据库设计是指对于一个给定的应用环境 构造最优的数据库模式 建立数据 库及其应用系统 使之能够有效地存储数据 满足各种用户的应用需求 信息要求 和处理要求 数据库和设计概述 1 数据库是信息系统的核心和基础 把信息系统中大量的数据按一定的模 型组织起来 提供存储 维护 检索数据的功能 使信息系统可以方便 及时 准确地从数据库中获得所需的信息 2 数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关 键所在 3 数据库设计是信息系统开发和建设的重要组成部分 3 1 1 概念模型设计概念模型设计 E R 图图 数据模型是是数据特征的抽象 从抽象层次上描述了系统的静态特征 动态 行为和约束条件 为数据库系统的信息表与操作提供一个抽象的框架 描述了数 据结构 数据操作及数据约束 E R 模型的基本概念 ER 图概念化地构建实体间关系的模型 这使得它们区别于数据库模型图 ER 图 的理念是 项目所有参与者能理解 ER 图 ER 图由不同实体类型 关系 特性和 类型构成 实体是诸如用户的实际对象 有时更抽象 但必须有业务意义 特性 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 16 用于描述实体 关系用于实体之间 1 实体 现实世界中的事物 2 属性 事物的特性 3 联系 现实世界中事物间的关系 实体集的关系有一对一 一对多 多对 多的联系 本系统的 ER 图 用户 M 发表 N 帖子 详细资料 1 1 N 管理 管理员 1 N 添加 1 修改 论坛 图图 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 字段名字段名数据类型数据类型长度长度主键主键索引索引外键外键可空可空说明说明 IDbigint20是否否代理主键 UserNameVarchar20否是否用户名 NickNameVarchar60否否否昵称 PasswdVarchar40否否否密码 Emailvarchar255否否否电子邮件 Questionvarchar255否否否提示问题 Answervarchar255否否否提示答案 RegTimedatetime否否否注册时间 LoginTimedatetime否否否最后登陆时间 LoginIPvarchar20否否否最后登陆 IP LoginTimesint11否否否登陆次数 StayTimebigint20否否否停留时间 SignDetailtext否否是用户签名 HavePictinyint1否否是是否有头像 PicFileNamevarchar255否否是头像地址 TimeZonevarchar20否否是地区 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 19 2 用户详细信息表 用户详细信息表中存放的是用户的身高 体重 联系方式等详细资料 建立此表的 目的是把一些用户不经常用到的详细信息 单独存放到一张表中 可以节约系统的 资源 表表 3 2 leafbbs userdetai 字段字段数据类数据类长度长度主键主键索引索引外键外键可空可空说明说明 IDbigint20是是否代理主键 Heightvarchar20否否是身高 Weightvarchar20否否是体重 FavourPeoplevarchar255否否是最喜欢的人 DreamJobvarchar255否否是向往工作 FavourMusicvarchar255否否是喜欢的音乐 FavourPlacevarchar255否否是喜欢的地方 FavourMovievarchar255否否是喜欢的电影 HomePagevarchar255否否是主页 OicqNovarchar255否否是QQ 号码 IcqNovarchar255否否是ICQ 号码 MSNvarchar255否否是MSN 号码 Sextinyint1否否是性别 Brieftext否否是简介 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 20 3 论坛文章表 论坛文章表存放的是用户所发表的文章信息 也包括回复信息 而在数据库的 设计中主要问题是鉴别帖子信息和回复信息 表表 3 3 leafbbs forum 字段名字段名数据类型数据类型长度长度主键主键索引索引外键外键可空可空说明说明 IDbigint20是否否代理主键 ParentIDbigint20否否否父帖 ID MainIDbigint20否否否主帖 ID BoardIDbigint20否否否版区 ID BoardNamevarchar60否否否版区名字 ReNumint11否否否回复数量 ClickNumint11否否否点击次数 UserIDbigint20否否否发表者 ID UserNamevarchar20否否否发表者姓名 NickNamevarchar60否否否发表者昵称 Titlevarchar150否否否文章标题 Detailtext否否否文章内容 Signtext否否否文章说明 ArtSizeint11否否否文章字节数 postTimebigint20否否否发表时间 LastTimebigint20否否否最后回复时间 IPAddressvarchar20否否否发表者 IP IsNewtinyint1否否否是否是新 IsHiddentinyint1否否否是否隐藏 IsToptinyint1否否否是否置顶 IsLocktinyint1否否否是否被锁定 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 21 4 论坛版区表 论坛版区表是存放的是论坛中版块信息 而论坛也划分为父论坛和子论坛 区 分他们也靠表中的某个字段来实现的 具体实际的设计如下 表表 3 4 leafbbs board 字段名字段名数据类型数据类型长度长度主键主键索引索引外键外键可空可空说明说明 IDbigint20是否否代理主键 ParentIDbigint20否否否父版区 ID ChildIDsvarchar255否否否子版区 ID BoardNamevarchar255否否否版区名字 Explainstext否否否版区描述 BoardPicvarchar200否否否图片地址 Ordersint11否否否显示顺序 IsHiddentinyint1否否否是否隐藏 PostNumint11否否否文章数量 NeedPasswdtinyint1否否否是否加密 Passwdvarchar100否否是密码 5 论坛初始化信息表 论坛初始化信息表是存放初始化信息和管理员的帐号密码等信息 初始化信息是 在论坛在加载过程中读取的或者以后经常用的一些信息 表表 3 5 leafbbs config 表表 字段名字段名数据类型数据类型长度长度主键主键索引索引外键外键可空可空说明说明 IDvarchar50是否否初始化标题 ConfContexttext否否否初始化信息 东北大学本科生毕业设计 论文 专用纸东北大学本科生毕业设计 论文 专用纸 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 章章 系统的设计与实现系统的设计与实现 程序设计又称编码 是系统生命周期中继详细设计之后的阶段 这个阶段的 任务是使用选定的程序设计语言 把经过概要设计和详细设计所得到的以程序设 计说明书体现的信息处理过程描述后 转换成能在计算机系统上运行的程序源代 码 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 xmluserinfo 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

温馨提示

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

评论

0/150

提交评论