基于JSP的BBS论坛的设计与实现毕业论文.doc_第1页
基于JSP的BBS论坛的设计与实现毕业论文.doc_第2页
基于JSP的BBS论坛的设计与实现毕业论文.doc_第3页
基于JSP的BBS论坛的设计与实现毕业论文.doc_第4页
基于JSP的BBS论坛的设计与实现毕业论文.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业论文 设计 基于 JSP 的财大家园 BBS 论坛的设计 与实现 姓 名 学 号 专 业 指导教师 2011 年 05 月 20 日 摘 要 随着网络应用的兴起 人们交流的方式也发生了翻天覆地的变化 网络聊天 网络 视频和邮箱系统等网络应用的出现正在改变着人们彼此之间沟通 交流的方式 此外 为了满足人们在某一特定主题下的知识获取和信息发布 出现了在线网络论坛 各种各 样的主题论坛几乎囊括了人们生活的每个角落 人们根据自己的专业特长和兴趣爱好在 论坛上提出自己的问题 即提出主题 而后其他人根据主题内容可以发表自己的意见和 看法 即回复主题 一千个人有一千个哈姆雷特 论坛集大家之所长 所感 为每一个 用户提供了丰富的知识矿藏 论坛是一个让人足不出户即可了解外界世界 了解他人所 想的工具 在人们生活节奏逐步加快的今天 必有其存在的现实意义 正是基于这样的 认识 开发了此 BBS 论坛系统 除了提供基本的看帖 发帖 回帖 搜帖的功能 针对 管理员用户系统还提供了用户管理和帖子管理的操作 目的是基于现实 为用户提供一 个模拟的网上交流环境 方便大家的沟通交流 丰富人们的娱乐文化生活 在论文的篇章上 本论文从系统分析 系统整体设计 数据库设计 系统详细设计 与实现几个方面对系统的开发过程作了详细的介绍 旨在全面地呈现系统由最初设计到 最终定型的各个阶段 便于大家对系统有一个更好的把握和认识 系统的具体实现细节 则在论文的系统详细设计与实现一章给出了具体的阐述 各个功能版块的展示也包含在 其中 能够直观地看到系统运行后的演示效果 其间夹杂着部分主要代码的辅助说明 便于从底层查看系统的最终实现 关键词 JSP 网上论坛 模拟社区 在线交流 Abstract With the development of the Internet the way of people s communication has undergoned enormous changes Web chat Online Video and Mailbox System are changing the way of people s mutual communication And to meet the request of getting the knowledge and publishing information Internet Forum has come to appear All kinds of topic forum almost cover every corner of perple s lives Based on the major speciality or interest people pose questions on the forum named Posting Then other people can publish his or her opinion or viewpoint aimed at the topic that has been released by other people before This process named Post Followup For there are a thousand Hamlets in a thousand people s eyes the forum gathering the speciality and thoughts of people supplying very abundant resources for us By means of it people who never to go out can know the outside world and other people s thoughts Nowadays pace of people s life has been speeding up gradatim the existence of the fourm must has it s reala signifo itself This BBS System is developed based on the cognition Besides the fundamental function such as Reading post Posting and Replying post the BBS System also provide the function of managing post and users for adminstrat The aim of the System is to create a virtual environment of communication online What we want to do is to make people s communication more convenient to rich people s lives with culture and entertainment The thesis descripts the progress of the developing of the system with four chapters They are Analysis of system Entire design of system Design of Database Detailed design and achievement of system The aim is to entirely present every progress from initial design to finalizing the design of the system to provide convenience for people to grasp or understand the system better The relizing details of the system is showed at the chapter which is named Detailed design and achievement of system The demonstration of every functional module is added to this chapter so that we can see the running effect more directlier Some main code is also added to make assist description In this way we can see the mechanism of the final realization of the system Key Words JSP Web BBS Simulation Community Online Communication 目 录 1 引 言 1 2 系统分析 2 2 1 需求分析 2 2 1 1 功能性需求 2 2 1 2 非功能性需求 6 2 2 可行性分析 6 3 系统总体设计 8 3 1 系统目标 8 3 2 系统功能划分 8 3 2 1 前台功能结构 8 3 2 2 后台功能结构 9 3 3 系统开发环境 10 3 3 1 开发环境 10 3 3 2 系统平台体系结构的选择 11 3 3 3 JAVASCRIPT 语言简介及特点 11 3 3 4 JSP 概述 11 3 3 5 MYSQL 12 3 3 6 JDBC 技术 12 4 数据库设计 13 4 1 数据库分析 13 4 2 数据库概念设计 13 4 3 数据库的逻辑设计 15 5 系统详细设计与实现 19 5 1 前台设计 19 5 1 1 前台页面设计与实现 19 5 1 2 用户注册 登录 管理员登录 20 5 1 3 论坛版块的展示 23 5 1 4 发表新主题 25 5 1 5 搜索主题 26 5 1 6 查看及回复主题 27 5 1 7 优化主题的一些小设计 29 5 2 后台设计 32 5 2 1 管理员登录 32 5 2 2 修改和删除主题 32 5 2 3 用户信息管理 33 结束语 36 参考文献 38 1 引 言 网络的兴起与发展 极大地改变了人们的思维和行为习惯 基于网络的应用也层出 不穷 论坛就是最早兴起的应用之一 作为一种传递消息的方式 最早的 BBS 的作用是 公布股市的即时消息 而随着时代的发展 现在的 BBS 的内容已达到无所不包的程度 小到生活趣事 大到专业知识 各种各样的主题论坛让人眼花缭乱 论坛网页的形式也 由最初的静态页面发展到现在的动态页面 更好的实现了用户之间的交互 把 BBS 作为 一种对外的展示窗口 进行内外信息交流 已然成为大众的广泛需要 财大家园论坛就 是通过动态 Web 开发技术和数据库技术实现的以财大学生与老师为主要服务对象的一个 基于现实环境之上的一个网上论坛 力求创造出一个模拟的网上校园虚拟环境 财大人 可以足不出户 在论坛上共享一切值得分享的主题 方便交流 外界人士也可以通过此 论坛更好的了解财大学生的焦点和兴趣所在 省时省力 在论坛的设计上 增加了版块 类别 不同的版块区域所包含的讨论主题会有所区分 这样的话 就能以主题不同 分 版块分主题地记录了你我他的点滴心声 此论坛是基于 B S 模式的一种 JSP 网页论坛的设计与实现 力求做到界面友好 简 单和易于操作 论文从几个大的方面来对系统的开发做出了阐述 在系统分析一章从需 求分析和可行性分析两方面来做具体阐述 系统整体设计则从系统目标 系统功能划分 和系统开发环境三大方面说明 结合后面的系统详细设计与实现一章完成对系统从整体 到细节的全方位的理解 数据库设计单独设一章 对数据库的分析 概念设计和逻辑设 计给出了详细说明 系统的详细设计与实现一章对系统的各个功能模块的设计与实现做 了详细说明 分为前台设计和后台设计两个部分 其中 前台设计几乎囊括了整个设计 与实现的大半部分 在所有章节中 系统总体设计 数据库设计和系统详细设计与实现 三章是主要内容 论文尽可能的将与系统相关的内容解释清楚 目的就是将系统的整个 开发流程展示给大家 2 系统分析 2 2 1 1 需需求求分分析析 2 1 1 功能性需求 开发 BBS 论坛系统的目的是为了提供一个大家交流的平台 供人们发表看法 探讨 经验 讨论问题 因此 BBS 论坛系统的最基本的功能是发表主题 其次是其它人员根 据主题发表自己的看法 即回复主题 考虑到现实情况 并不是每一个访问的游客都具 有发表主题的权利 所以必须用一个身份绑定用户 赋予其发表主题的权利 这就需要 实现用户注册及登录的功能 每一个系统都需要管理员这个特殊群体的存在 所以也需 要实现管理员登陆的功能 管理员区别于一般用户的地方在于 管理员往往具有更高的 权限 有权对用户信息和帖子内容作出某些 增删改查 的操作 所以 针对管理员 系统应该实现删除和修改帖子以及对用户的管理等功能 以实现管理员对社区的管理 考虑到社区访问量会很大 用户发表的帖子的数量自然很多 在浩瀚的帖子海洋中 如何才能查看自己感兴趣的帖子成为了一个不得不考虑的问题 所以 系统还应该实现 搜索帖子的功能 用模糊查询的方法 对社区的帖子进行筛检的工作 本系统针对用户 还实现了一个特殊的功能 即邮件发送 如果某个用户对其他的用户感兴趣 那么可以 通过将邮件发送到指定用户注册时所填写的邮箱地址 这样的话 就能够实现即时通讯 的功能 综上所述 BBS 论坛系统的功能就可以进行如下划分 1 前台部分 主要涉及系统前台 即用户所能看到的网页所涉及到的功能 主要包括 用户注册 登录 发表新主题 回复主题 查看主题内容 搜索主题 邮件发送 2 后台管理部分 主要是数据库的操作 针对系统管理员设置的一些功能 主要包括 管理员登录 删除与修改主题和用户信息管理 网网络络论论坛坛 数数据据库库 功功能能 前台模块 后台模块 会员 注册 会员 登录 邮件 发送 搜索 热门 贴 管理 员登 录 跟帖 发帖 帖子 管理 用户 管理 图 2 1 系系统统功功能能介介绍绍 数据库部分 本系统新建了系统用数据库 bbs 并在其下创建了五张表 user 用 户表 article 主题表 admin 管理员表 grade 用户等级表 和 edit 版 块类别 本系统在设计之初 为简单起见 欲暂不考虑系统管理员的设置 默认此系 统只有一个管理员账户 用户名和密码均为 admin 但这种做法在现实生活中是很难 满足实际需求的 所以 最终创建了管理员表 admin 以实现对管理员信息的统一存储 和管理 理论上应该有四个业务角色 游客 用户 管理员以及帖子 系统的用例图如下 管理员 发布主题 回复主题 删除主题 修改主题 搜索主题 用户 游客 查看主题 用户管理 帖子管理 图 2 2 系系统统用用例例图图 从用例图中我们可以看出 游客的权限最低 只能查看 回复和搜索主题 用户的 权限居中 能够发布 回复 搜索和查看主题 管理员的权限最高 除了能够实现用户 的所有功能 还能够修改和删除主题 并且能够对用户信息进行管理 具有行使系统所 能够提供的一切权利 说明 用户和游客 非用户 的身份区别主要通过 用户注册 的功能实现 系统 通过 sql 语句将注册用户信息保存到 user 表中 用户登录时查询 user 表 并以返回结 果的有无判断个人的真实身份 系统的顶层数据流图 DFD 如下 管理 员 Admin 用户 User 财大家园BBS论坛 用户个人信息 发布主题及内容 管理员个人信息 搜索关键字 回复主题及内容 修改后的帖子主题及信息 搜索关键字 删除帖子id号 数据库bbs 用户信息 帖子主题及内容 反馈信息 用户账户信息 帖子信 息 被删除或修改的用户个人信息 图 2 3 顶顶层层数数据据流流图图 D DF FD D 用户 User 管理员 Admin User表 用户个人信息 管理员及用户登录 反馈已注册用户信息 查看 发布 回复主题 主题信息 删除 修改主题 反馈管理员账户信 息 Article表 主题信息 主题修改信息 搜索主题 搜索关键字 反馈信息 反馈信息 管理员账户 用户管理 管理后的用户信息 欲修改或删除的用户信息 图 2 4 一一层层数数据据流流图图 2 1 2 非功能性需求 1 平台限制 本系统是在 Window xp 环境下开发 对系统没有过高的其它要求 2 服务器支持 本系统是基于 B S 模式下的论坛系统 采用的服务器是 Tomcat 7 0 5 版本 3 数据库支持 本系统采用的数据库是 MySQL 5 1 版本 同类型或更高级别的数 据库管理软件都能适用 4 基于 MyEclipse 平台下开发 2 2 2 2 可可行行性性分分析析 需求分析回答的是 做什么 不做什么 的问题 而可行性分析回答的则是 做 还是不做 的问题 可行性分析是在调查分析的基础上 针对新系统的开发是否具有实 用性和可能性 对新系统的开发从经济 技术 社会环境和人等发面进行分析和研究 可行性分析往往能够对决策者提供有价值的依据 以避免投资失误 保证新系统的开发 成功 联想集团领导人柳传志 2006 曾说 没钱赚的事我们不干 有钱赚但投不起钱 的事不干 有钱赚也投的起钱但没有可靠的人选 这样的事也不干 可见可行性分析 的重要性 1 技术可行性 技术上的可行性分析主要指在现有可用的技术基础上 是否能够顺利完成新系统的 开发工作 从硬件方面来看 计算机硬件的更新速度正在不断提高 与此同时 系统的 稳定性也在不断加强 容量越来越大 性能越来越强 而价钱却越来越低 所以 仅从 硬件方面来看 完全能够提供满意的系统开发环境 从软件方面来看 该 BBS 论坛采用 了流行的动态网页设计技术 JSP 和当前流行的 B S 浏览器 服务器 设计模式进行 开发 B S 模式本身是随着 Internet 技术的兴起 对传统 C S 结构的一种变化或者改 进结构 具有很多传统结构所不具有的优点 先进的 Internet Intranet 国际互联网 企业内部互联网 技术 保证了 B S 结构的强有力态势 将 B S 结构的应用转变成为 一种特定时代条件下的大势所趋 本系统的服务器采用的是 Tomcat 7 0 5 版本 Tomcat 发展至今 技术上自不必说 性能也很稳定 完全能够担负服务器的重任 辅 助完成中小型应用的成功开发 数据库服务器选用的是 MySQL 5 1 版本 是目前运行速 度最快的 SQL 语言数据库 能够同时处理大量数据 并保证数据的完整性 它的灵活性 易用性和安全性为新系统的开发提供了一个良好的环境 2 经济可行性 经济可行性所作的工作主要是对项目整体的经济效益进行评估 本系统的目的是模 拟一个网上交流的平台 供用户在社区交流经验 探讨问题 但实际只是用于个人毕业 设计 不涉及商业上的运作 纯粹模拟 故不存在资金上的流动 也不存在经济不可行 的问题 3 社会可行性 随着 Internet 技术的迅猛发展 BBS 论坛已成为越来越多网民彼此交流 获取信 息的重要途径 在论坛上 人们可以发表自己一切感兴趣的话题 也可以根据别人所发 的主题发表一些自己的看法 心得体会等 通过 BBS 论坛获取信息及发表主题已成为一 种时尚的生活方式 BBS 论坛缩短了人们之间的距离 在不知不觉间 早已成为人们网 上生活的必备工具 可见论坛存在的必要性和发展的前景 3 系统总体设计 3 3 1 1 系系统统目目标标 基于 BBS 论坛在现实生活的实际应用 本系统的系统目标是提供一个以现实环境为 基础的网上模拟交流平台 通过它 人们可以不必拘泥于空间和时间上的限制 方便交 流 畅所欲言 同时也能够更加便利的看到周围人的想法 观点 最大化的丰富人们的 视野和生活 让人随时都能身在其中 随时也能置身事外 3 3 2 2 系系统统功功能能划划分分 3 2 1 前台功能结构 系统的前台初始页面如下 登录地址为 http localhost 8080 BBS 图 3 1 财财大大家家园园网网首首页页 当用户登录到论坛首页时 其默认的身份就是游客 只能查看 回复 搜索帖子 而不能执行发帖等其它操作 如果用户为非注册用户 则其可以进行注册以获得一个登 录身份 如果用户为已注册用户 则其可以直接进行登录 然后以注册用户的身份执行 诸如发表新主题 查看新主题 回复主题 搜索主题等一系列操作 前台系统流程图具体如下 论坛首页 匿名身份登 录 是注册用户吗 用户登录用户注册 NY 登录成功 N 注册成功 N 论坛首页 Y Y 图 3 2 前前台台系系统统流流程程图图 此时 用户已经具有了一种身份 此后用户可以以此种身份执行诸如发表新主题 查看主题 搜索主题 回复主题等操作 3 2 2 后台功能结构 后台功能主要是针对管理员而设置的 用户以管理员的身份登陆后 就能执行后台 管理的操作 具体到此 BBS 论坛 主要是指删除和修改主题以及对用户信息的管理 后台系统流程图如下 论坛首页 匿名身份登 录 是管理员吗 管理员登录 Y 登录成功 N N 论坛首页 Y 图 3 3 后后台台系系统统流流程程图图 3 3 3 3 系系统统开开发发环环境境 3 3 1 开发环境 在建立工程前 需要首先搭建开发环境 此 BBS 论坛系统的开发需要用到以下几种 工具 故开发前需要进行相应的下载和安装 开发平台 MyEclipse 9 0M2 Web 服务器 Tomcat 7 0 5 数据库服务器 MySQL 5 1 Java 开发工具 JDK 1 6 0 辅助工具 Dreamweaver CS4 3 3 2 系统平台体系结构的选择 在系统开发领域内 目前存在两大主流系统平台的开发结构 一种是 C S 结构 而 另一种是 B S 结构 C S 结构 即大家熟知的客户端 服务器结构 是一种应用较早 相对传统的开发模式 通过它 可以充分利用两端硬件环境的优势 将任务合理的分配 到 Client 端和 Server 端 降低了系统的通讯开销 B S 结构 即浏览器 服务器结构 是随着 Internet 的兴起 对 C S 结构的一种变化或者改进 在这种结构下 用户不需 要借助于客户端软件 通过 WWW 浏览器 即可实现系统的全部既定功能 在这种模式下 一部分事务逻辑在前段实现 但是主要事务逻辑在服务器端实现 大大简化了客户端电 脑载荷 减轻了系统维护与升级的成本 从而降低了用户的整体成本 从开放程度来说 传统的 C S 结构虽然采用的是开放模式 但这个开放性只是针对系统开发一级的 在特 定的应用中 无论是客户端还是服务器端都还需要特定的软件支持 而 B S 结构 是一 次性到位的开发 应用此模式开发的系统 不同人员 在不同地点 以不同的接入方式 比如 LAN WAN 等 访问并操作共同的数据库 能有效地保护数据平台和管理访问权 限 服务器的数据库也很安全 特别是在 Java 这样的跨平台语言出现之后 B S 架构 管理软件起来更是显得方便 快捷和高效 可以说 B S 是乘着 Internet 兴起的风而 杨风远航的 是适应时代的产物 但是 B S 也存在着自己的不足 比方说其在大量数 据分析 实时控制应用方面就存在着需要改进的地方 综合考虑 本系统还是考虑使用 当下流行的 B S 结构作为系统的开发模式 3 3 3 JavaScript 语言简介及特点 JavaScript 语言是 Netscape 公司开发的一种脚本性语言 Scripting language 或者称其为描述性语言 作为一种编程语言 其出现的使命就是为了适合动态网页制作 的需要 颇具工具色彩 在静态网页 Html 的基础上 使用 JavaScript 可以开发交互式 Web 网页 能够使网页和用户之间实现一种实时性的 动态的 交互性的关系 使得网 页包含更多活跃的元素和更加精彩内容 可以说 JavaScript 是专门为制作 Web 网页 而量身定做的一种简单的编程语言 JavaScript 是在客户机上执行的 其特点和功能主要是短小精悍 能够大大提高 网页的浏览速度和交互能力 其特有的工具色彩让其在动态网页的开发中找到了用武之 地 3 3 4 JSP 概述 JSP 是由 Sun 公司在 Java 语言的基础上开发出来的一种动态网页制作技术 其将 标记插入到页面中 从而使网页中的静态部分和动态部分分离开来 JSP 是类似 ASP 的一种技术 在传统的静态网页 HTML 文件插入 Java 程序段和 JSP 标记 就形成了 JSP 文件 JSP 技术的强势在于 1 一次编写 到处运行 在更换系统时 代码不需要做任何修改 2 系统的多平台支持 基本上可以在所有平台上的任意环境下开发 在任意环境 中进行系统部署 在任意环境中扩展 3 强大的可伸缩性 通过小小的 jar 文件运行 servlet JSP 到由多台服务器进 行集群和负载均衡 到多台 Application 进行事务处理 一台服务器到无数台服务器 JSP 表现了强大的可伸缩性 4 多样化和功能强大的开发工具支持 常用的编辑工具有 Dreamweaver 和 MyEclipse 等 3 3 5 MySQL MySQL 可以称得上是目前运行速度最快的 SQL 语言数据库 除了具有许多其他数据 库所不具备的功能和选择外 MySQL 数据库是一种完全免费的产品 用户可以直接从网 上下载数据库 用于个人和商业用途 而不必支付任何费用 3 3 6 JDBC 技术 数据库管理是每个应用系统开发过程中不得不考虑的问题 目前主流的数据库有 Oracle SqlServer MySql 等 不管使用何种技术 都离不开 JDBC 技术的支持 JDBC 的全称是 Java DataBases Connectivity standard 即 Java 数据库连接 是一种数据库 通用接口采用的主流技术 其定义了用来访问数据库源的标准 Java 类库 通过它使用 一种标准方法 就能够方便的访问数据库资源 所以 JDBC 又是一种规范 其目标是 使应用程序开发人员通过它连接任何提供 JDBC 驱动程序的数据库系统 这样就使得程 序员无需对某种数据库有过多的了解 大大加快了开发过程 有了 JDBC 向各种数据库发送 SQL 语句就是一件再简单不过的事了 换言之 有 了 JDBC 就不必为访问数据库 A 专门再写一个程序 又为访问数据库 B 专门写一个程 序 所以 JDBC 为 Java 应用程序与各种不同数据库之间进行对话提供了一个标准的方 法 这也是 Java 语言 一次编写 到处运行 的优势 4 数据库设计 4 4 1 1 数数据据库库分分析析 数据库的设计 在应用系统的开发中起着举足轻重的作用 一个合理 有效的数据 库设计不仅是做好系统的保证 也能降低程序的复杂性 使程序的开发过程变得更加容 易 本系统是一个中型的 BBS 论坛系统 考虑到用户信息量和用户需求等问题 决定采 用 MySQl 作为项目用数据库 MySQl 是一个中小关系型数据管理系统 最初由 MySQL AB 公司发布 MySQL 由于体 积小 速度快 总体拥有成本低等原因 成为许多中小型网站数据库的首选 MySQL 可 以称得上是目前运行速度最快的 SQL 语言数据库 此外 MySQL 数据库是一种完全免费 的产品 用户可以直接从网上下载数据库 用于个人和商业用途 而不必支付任何费用 4 4 2 2 数数据据库库概概念念设设计计 ER 图是实体联系图 E R 模型是对现实世界的一种抽象 其组成部分主要包括实体 联系和属性 使用这三种成分 我们可以很好的抽象出现实世界中的个体 并通过彼此 之间的联系来抽象整个世界 E R 模型是设计数据库时经常使用到的方法 经过分析 本系统创建了五张数据库表 即帖子表 article 版块表 edit 用户等级表 grade 用户表 user 和管理员表 admin 下面划分出本系统所使 用的数据库实体 它们分别为用户 User 和帖子 Article 以及管理员 admin 以下是帖子 用户和管理员的实体图 帖子 帖子id 父亲帖id 根贴id 帖子回复量 帖子作者 帖子内容 帖子主题 叶子节点判断标记 帖子发表时间 帖子查看量 精华帖判断标记 图 4 1 帖帖子子实实体体图图 用户 注册时间密码邮箱地址重复密码用户名 用户等级 图 4 2 用用户户实实体体表表 管理员 管理员姓名账号创建时间密码管理员编号 图 4 3 实实体体管管理理员员表表 系统的 E R 图如下 管理员 版块类别信息 用户等级 帖子 用户 管理 属于 属于 发帖 1 n 1 n 1 1 1 1 图 4 4 系系统统 E E R R 图图 4 4 3 3 数数据据库库的的逻逻辑辑设设计计 根据数据库的概念设计 可以创建与实体对应的数据表 1 用户表 User 下面是对表 User 的具体设计 表 4 1 user 字段名属性约束意义 1userNamevarchar 30 primary key 用户名 2passwordvarchar 25 无密码 3rePasswordvarchar 25 无确认密码 4mainUrlvarchar 50 无邮箱地址 5loginTimedatetime 无注册时间 6gradeNointForeign key 用户等级 说明 userName 是注册用户的用户名 为 User 表的主键 password 是用户密码 为用户登录时用 rePassword 是确认密码 与用户密码对应 mailUrl 是用户的邮箱地址 通过它 我们可以与之通过邮件通信 loginTime 表示用户注册的时间 gradeNo 表示用户的等级 与登记表 grade 中的 gradeId 相关联 组成 表的外键 共分为四个等级 菜鸟 列兵 星级标兵和士官 在注册过程中 password 和 rePassword 必须一致 否则无法成功注册 2 管理员表 admin 表 4 2 admin 字段名属性约束意义 1adminIdintprimary key 管理员编号 2adminNamevarchar 25 无管理员姓名 3passwordvarchar 25 无密码 4adminTimedatetime 无创建时间 3 帖子表 Article 下面是对表 Article 的具体设计 表 4 3 article 字段名属性约束意义 1 idintprimary key 帖子 id 2pid int 无父亲 id 3 rootidint 无根 id 4 editNoInt 无所属版块 5 titlevarchar 30 无标题 6 conttext 无内容 7 pdatedatetime 无发帖时间 8 writervarchar 30 foreign key 作者 9 viewCountint 无帖子查看量 10 replyCountint 无帖子回复量 11 isleafint 无 判断帖子是否 为叶子节点 12 isEssenceint 无 判断帖子是否 为精华帖 说明 id 是帖子的编号 为本表的主键 pid 是父亲 id 的编号 表示被回复的帖子 id 号 rootid 表示根贴的 id 号 表示最初发起主题的帖子 id 号 editNo 表示帖子所属的板块号 每个版块的帖子分版块区别显示 title 表示帖子的主题 cont 表示帖子的内容 pdate 表示发帖的具体时间 writer 表示发帖的作者 此外键对应 user 表中 userName 字段 viewCount 表示帖子的查看量 replyCount 表示帖子的回复量 isLeaf 判断帖子是否为叶子节点 值为 1 时表示为非叶子节点 为 0 时 表示为叶子节点 isEssence 判断帖子是否为精华帖 值为 1 是表示是精华帖 反之 则不 是 4 用户等级表 grade 图 4 4 grade 字段名属性约束意义 1gradeIdintprimary key 等级编号 2gradeContvarchar 25 无等级内容 5 版块类别表 edit 图 4 5 edit 字段名属性约束意义 1editedintprimary key 版块编号 2editNamevarchar 25 无版块内容 article PKid pid rootid editNo title cont pdate viewCount replyCount writer isEssence isLeaf user PKuserName password rePassword loginTime gradeNo grade PKgradeId gradeCont edit PKeditId editName 图 4 5 数数据据库库模模型型图图 5 系统详细设计与实现 5 5 1 1 前前台台设设计计 系统的前台 即是直接面向用户的所有页面 因为前台的功能模块较多 而各个模 块的实现过程都是类似的 所以对于系统前台的介绍 只是做有选择的系统重点设计介 绍 5 1 1 前台页面设计与实现 本系统的所有页面都采用了统一的简化页面框架 包括页头和内容显示区 前台首 页的页面运行结果已在前文中出现过 此处不再累述 下面主要介绍前台首页面 index jsp 的具体实现 由于论坛是以主题分版块展示的 下面以其中一个板块页面做详细介绍 部分主要代码如下 List articles new ArrayList Connection conn DB getConn 创建与数据库的连结 Statement stmt DB createStmt conn 通过连结创建Statement对象 String sql select from article ResultSet rs DB executeQuery stmt sql 执行sql语句 并返回结 果集 while rs next Article a new Article a initFromRs rs articles add a 记录总查看量 int totalViewNum 0 记录帖子总数 int totalArticleNum 0 查询出帖子的总查看量 for Iterator it articles iterator it hasNext Article a it next totalViewNum a getViewCount 查询出帖子的总回复量 String sql1 select count id from article where pid 0 ResultSet rs1 DB executeQuery stmt sql1 rs1 next totalArticleNum rs1 getInt 1 查询出最后的发帖作者 String sql2 select from article order by pdate desc ResultSet rs2 DB executeQuery stmt sql2 while rs2 next Article a new Article a initFromRs rs2 articles add a Iterator it1 articles iterator Article a1 it1 next String lastWriter a1 getWriter DB close rs2 DB close rs1 DB close rs DB close stmt DB close conn 以上的语句实现的有三个功能 1 查询出帖子的总查看量 2 查询出帖子的总回 复量 3 查询出最后的发帖作者 这些都是对整个板块的总体统计 是对板块信息的 最直观的展现 5 1 2 用户注册 登录 管理员登录 在论坛首页 提供了三个登录 注册入口 包括 用户注册 登录 管理员登录 通过点击如下链接 进入到对应各个界面 普通用户注册 普通用户登录 管理员登录入口 1 用户注册 用户注册的网页文件对应的是 loginUser jsp 文件 在此页面下 非注册用户 可以进行注册的操作 运行效果图如下 图 5 1 用用户户注注册册界界面面 用户完成注册后 注册的用户名和密码就被写入到用户表 user 之后 会出现一 个用户信息确认页面 以最终完成用户的注册 确认无误后 点击链接 页面就跳转到 论坛首页 此时的用户身份还是 游客 之后可以通过登录改变用户身份状态 在用户注册的时候 如果用户输入的密码和重复密码不一致 会出现 密码和重复 密码不一致 的错误信息提示 然后页面返回到注册页面 如果用户所有待填项输入无 误 则进入用户信息确认页面 以下是用户信息确认页面的展示图 图 5 2 用用户户信信息息确确认认页页面面 1 用户登录 用户完成注册后 就可以进行用户登录的操作 用户登陆页面如下 图 5 3 用用户户登登录录界界面面 在用户登录时 如果用户名或密码输入有误 则会出现 invalid username or password 的错误信息提示 然后页面返回到登陆页面供用户修正输入继续登录 5 1 3 论坛版块的展示 下面以 青葱岁月 区为例 来介绍论坛版块的展示操作 在论坛首页 通过链接 版块链接 进入到特定版块的特定页面 最初的梦想 版块页面运行效果 图 5 4 最最初初的的梦梦想想 版版块块页页面面运运行行效效果果图图 从运行效果来看 此处运用了分页技术 分页技术实现的关键点依赖于一条重要的 sql 语句 具体如下 Select from Table order by 参数 1 limit startPage endPage 其中 Table 是所要查询的表名称 startPage 是起始页面 endPage 是结束页面 执行的效果是查询出排序结果的制定起始行到指定结束行的所有页面 板块页面的展示是通过一个循环来实现的 在循环的基础上 为页面实现了一个优 化 奇偶行以不同的显示效果展现 优化的方式主要向 jsp 页面导入 class 文件 在导入的时候 针对行数的奇偶性采 取不同的对应操作 主要代码如下 int lineNum 0 for Iterator it articles iterator it hasNext Article a it next String classStr lineNum 2 0 jive even jive odd 区分 奇偶行 以不同效果区分显示 实现代码具体如下 代码段 1 获取制定部分行的查询结果 final int PAGE SIZE 8 每页显示的主题数目 int pageNo 1 记录当前页数 String strPageNo request getParameter pageNo if strPageNo null catch NumberFormatException e pageNo 1 if pageNo 0 pageNo 1 int totalPages 0 记录符合要求的总主题页数 List articles new ArrayList Connection conn DB getConn Statement stmtCount DB createStmt conn ResultSet rsCount DB executeQuery stmtCount select count from article where pid 0 rsCount next int totalRecords rsCount getInt 1 totalPages totalRecords PAGE SIZE 1 PAGE SIZE if pageNo totalPages pageNo totalPages Statement stmt DB createStmt conn int startPos pageNo 1 PAGE SIZE String sql select from article where pid 0 order by pdate desc limit startPos PAGE SIZE ResultSet rs DB executeQuery stmt sql while rs next Article a new Article a initFromRs rs articles add a 代码段 2 将获取的结果根据行号的奇偶性分页展示 int lineNum 0 for Iterator it articles iterator it hasNext Article a it next String classStr lineNum 2 0 jive even jive odd 区分 奇偶行 以不同效果区分显示 TR class 静态部分 5 1 4 发表新主题 在论坛版块展示页面中 注册用户可以执行发表新主题的操作 对游客而言 则不 能实现此功能 这个功能是通过区分用户登录方式的不同而实现的 非注册用户点击 发表新主题 的连接后会出现一个错误提示及跳转页面 以提示用户目前处于 非登 录用户 状态 无权发表新主题 已注册用户成功登陆后 则可以进行发表新主题的操作 运行页面效果如下 图 5 5 发发表表主主题题页页面面 成功发表后 所发表主题会显示在论坛版块展示页面下 图 5 4 5 1 5 搜索主题 和发表新主题不同 所有的用户都能够执行搜索主题的操作 在论坛版块展示页面 点击 搜索主题 链接 进入到搜索主题页面 图 5 6 搜搜索索页页面面 图 5 7 搜搜索索结结果果页页面面 5 1 6 查看及回复主题 点击主题链接 进入主题查看页面 图 5 8 主主题题显显示示页页面面 在此页面 用户点击 回复 按钮 即可进入到回复主题页面 运行效果如下 图 5 9 主主题题回回复复页页面面 在此 需要说明的是 为了美化回复的效果 在此加入了 Fckeditor 网页编辑器 具体实现步骤为 首先从网上下载一个 Fckeditor 将解压文件拷贝到工程 WebRoot 目录下 然后到压缩包解压文件 FCKeditor2 6 4 下的路径 fckeditor samples html sample02 html 下 打开静态页 sample02 html 然后将其代码复制 粘贴到回复页面 reply jsp 修改即可 修改后的代码段如下 window onload function Automatically calculates the editor base path based on the samples directory This is usefull only for these samples A real application should use something like this oFCKeditor BasePath fckeditor fckeditor is the default value var sBasePath var oFCKeditor new FCKeditor cont oFCKeditor BasePath sBasePath oFCKeditor ReplaceTextarea 点击提交 回复内容会显示在上级页面 图 5 10 回回复复后后主主题题显显示示页页面面 5 1 7 优化主题的一些小设计 1 信息统计 1 帖子查看量与回复量的统计 如图 5 4 所示 在论坛版块的展示页面 会有 查看 回复 两个代表帖子被 查看量和被回复量的信息提示 这个是通过对 article 表设置的两个冗余变量 viewCount 和 replyCount 来实现的 在用户每次执行查看或者回复的时候 就 对变量实行 的操作 从而达到统计次数的目的 那么 如何判断某个帖子被查看或被回复了呢 这个过程是通过设置 Session 对象来实现的 在论坛板块页面 图 5 4 添加如下 语句 以判断帖子的查看情况 session setAttribute isView true 对帖子的回复动作系统也做了相应操作 在回复信息提交后 系统添加了一个过渡 页面 replyDeal jsp 如果此页面被激活 并且所回复内容被顺利添加到数据库后 就执行 replyCount 的操作 反之 则不作任何操作 2 版块内帖子查看量和帖子发表总量的统计 在论坛首页 如图3 1所示 也会有两个统计信息的存在 即 帖子总查看量和帖 子发表总量 有了帖子查看量的计算方法 帖子总查看量的获得则变得相当容易 只需 一句 sql 语句即可实现 以下是具体的代码实现 List articles new ArrayList Connection conn DB getConn 创建与数据库的连结 Statement stmt DB createStmt conn 通过连结创建Statement对象 String

温馨提示

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

评论

0/150

提交评论