




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业论文 设计 财院家园 BBS 论坛 姓 名 学 号 专 业计算机科学与技术 指导教师 2011 年 05 月 18 日 I 摘 要 随着网络应用的兴起 人们交流的方式也发生了翻天覆地的变化 网络聊天 网络 视频和邮箱系统等网络应用的出现正在改变着人们彼此之间交流 沟通的方式 此外 为了满足人们在某一特定主题的下的知识获取和信息发布 出现了在线网络论坛 各种 各样的主题论坛几乎囊括了人们生活的每个角落 人们根据自己的专业特长和兴趣爱好 在论坛上提出自己的问题 即提出主题 而后其他人根据主题内容可以发表自己的意见 和看法 即回复主题 一千个人有一千个哈姆雷特 论坛集大家之所长 所感 为每一 个用户提供了丰富的知识矿藏 论坛是一个让人足不出户即可了解外界世界 了解他人 所想的工具 在人们生活节奏逐步加快的今天 必有其存在的现实意义 正是基于这样 的认识 开发了 BBS 论坛系统 除了提供基本的看帖 发帖 回帖功能 还提供了搜帖 改帖和删除帖的操作 目的是基于现实 为用户提供一个模拟的网上交流环境 方便大 家的沟通交流 丰富人们的娱乐文化生活 关键词 JSP 网上论坛 模拟社区 在线交流 II 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 to get the knowledge and publish information Internet Forum has come to appeared 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 supplys 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 of 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 midifing post and Deleting post 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 of culture and entertainment Key Words JSP Web BBS Simulation Community Online Communication III 目 录 1 引 言 5 2 系统分析 6 2 1 需求分析 6 2 1 1 功能性需求 6 2 1 2 非功能性需求 9 2 2 可行性分析 9 3 系统总体设计 11 3 1 系统目标 11 3 2 系统功能结构 11 3 2 1 前台功能结构 11 3 2 2 后台功能结构 12 3 3 系统开发环境 13 3 3 1 开发环境 13 3 3 2 系统平台体系结构的选择 14 3 3 3 JAVASCRIPT 语言简介及特点 14 3 3 4 JSP 概述 15 3 3 5 MYSQL 15 3 3 6 JDBC 技术 15 4 数据库设计 16 4 1 数据库分析 16 4 2 数据库概念设计 16 4 3 数据库的逻辑设计 17 5 系统详细设计与实现 20 5 1 前台设计 20 5 1 1 前台页面设计与实现 20 5 1 2 用户注册 登录 管理员登录 21 5 1 3 论坛版块的展示 23 5 1 4 发表新主题 26 5 1 5 搜索主题 26 5 1 6 查看及回复主题 27 IV 5 1 7 优化主题的一些小设计 29 5 2 后台设计 31 5 2 1 管理员登录 32 5 2 2 修改和删除主题 32 结束语 34 参考文献 36 5 1 引 言 网络的兴起与发展 极大地改变了人们的思维和行为习惯 基于网络的应用也层出 不穷 论坛就是最早兴起的应用之一 作为一种传递消息的方式 最早的 BBS 的作用是 公布股市的即时消息 而随着时代的发展 现在的 BBS 的内容已达到无所不包的程度 小到生活趣事 大到专业知识 各种各样的主题论坛让人眼花缭乱 论坛网页的形式也 由最初的静态页面发展到现在的动态页面 更好的实现了用户之间的交互 把 BBS 作为 一种对外的展示窗口 进行内外信息交流 已然成为大众的广泛需要 财院家园论坛就 是通过动态 Web 开发技术和数据库技术实现的以财院学生与老师为主要服务对象的一个 基于现实环境之上的一个网上论坛 力求创造出一个模拟的网上校园虚拟环境 分主题 分版块记录了你我他的点滴心声 本文主要实现了基于 B S 模式的一种 JSP 网页论坛的设计与实现 力求做到界面友 好 简介 易于操作 文章从系统分析 总体设计 功能介绍 系统开发环境及系统详 细设计与实现几个大的方面对系统的开发流程做了详细的介绍 系统分析下又会分为需 求分析 可行性分析两个方面来阐述 目的是将系统的整个开发流程展现给大家 6 2 系统分析 2 2 1 1 需需求求分分析析 2 1 1 功能性需求 开发 BBS 论坛系统的目的是为了提供一个大家交流的平台 供人们发表看法 探讨 经验 讨论问题 因此 BBS 论坛系统的最基本的功能是发表主题 其次是其它人员根 据主题发表自己的看法 即回复主题 考虑到现实情况 并不是每一个访问的游客都具 有发表的主题的权利 所以必须用一个身份绑定用户 赋予其发表主题的权利 这就需 要实现用户注册及登录的功能 每一个系统都需要管理员这个特殊群体的存在 所以也 需要实现管理员登陆的功能 管理员区别于一般用户的地方在于 管理员往往具有更高 的权限 有权对用户的内容作出某些 增删改查 的操作 所以 针对管理员 系统应 该实现删除和修改帖子的功能 以实现管理员对社区帖子的管理 考虑到社区访问量 会很大 用户发表的帖子的回帖自然很多 在浩瀚的帖子海洋中 如何才能查看自己感 兴趣的帖子成为了一个不得不考虑的问题 所以 系统还应该实现搜索帖子的功能 用 模糊查询的方法 对社区的帖子进行筛检的工作 本系统针对用户还实现了一个特殊的 功能 即邮件发送 如果某个用户对其他的用户感兴趣 那么可以通过将邮件发送到指 定用户注册时所填写的邮箱地址 这样的话 就能够实现即时通讯的功能 综上所述 BBS 论坛系统的功能就可以进行如下划分 1 前台部分 主要涉及系统前台 即用户所能看到的网页所涉及到的功能 主要包括 用户注册 登录 发表新主题 回复主题 查看主题内容 搜索主题 邮件发送 2 后台管理部分 主要是数据库的操作 针对系统管理员设置的一些功能 主要包括 删除与修改主 题 7 网络论 坛 数据库 功能 前台模块后台模块 会员注册会员登录邮件发送跟帖发帖搜索热门 帖 管理员登 录 帖子管理 图 2 1 系系统统功功能能介介绍绍 数据库部分 本系统新建了系统用数据库 bbs 并在其下创建了两张表 user 用 户表 和 article 主题表 为简单起见 暂不考虑系统管理员的设置 默认此系统 只有一个管理员账户 用户名和密码均为 admin 理论上应该有四个业务角色 游客 用户 管理员以及帖子 本系统做了简化处理 固定了一个管理员用户 所以就不再需 要创建管理员表 admin 了 系统的用例图如下 8 管理员 发布主题 回复主题 删除主题 修改主题 搜索主题 用户 游客 查看主题 图 2 2 系系统统用用例例图图 从用例图中我们可以看出 游客的权限最低 只能查看 回复和搜索主题 用户的 权限居中 能够发布 回复 搜索和查看主题 管理员的权限最高 除了能够实现用户 的所有功能 还能够修改和删除主题 具有行使系统所能够提供的一切权利 说明 用户和游客 非用户 的身份区别主要通过 用户注册 的功能实现 系统 通过 sql 语句将注册用户信息保存到 user 表中 用户登录时查询 user 表 并以返回结 果的有无判断个人的真实身份 系统的顶层数据流图 DFD 如下 管理员 Admin 用户User 财院家园BBS论坛 用户个人信息 发布主题及内容 管理员个人信息 搜索关键字 回复主题及内容 修改后的帖子主题及信息 搜索关键字 删除帖子id号 数据库bbs 用户信息 帖子主题及内容 反馈信息 用户账户信息 帖子信 息 图 2 3 顶顶层层数数据据流流图图 D DF FD D 9 用户User 管理员 Admin User表 用户个人信息 管理员及用户登录 反馈已注册用户信息 查看 发布 回复主题 主题信息 删除 修改主题 反馈管理员账户信 息 Article表 主题信息 主题修改信息 搜索主题 搜索关键字 反馈信息 反馈信息 管理员账户 图图 2 2 4 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 曾说 没钱赚的事我们不干 有钱赚但投不起钱 的事不干 有钱赚也投的起钱但没有可靠的人选 这样的事也不干 可见可行性分析 的重要性 10 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 论坛缩短了人们之间的距离 在不知不觉间 早已成为人们网 上生活的必备工具 可见论坛存在的必要性和发展的前景 11 3 系统总体设计 3 3 1 1 系系统统目目标标 基于 BBS 论坛在现实生活的实际应用 本系统的系统目标是提供一个以现实环境为 基础的网上模拟交流平台 通过它 人们可以不必拘泥于空间和时间上的限制 方便交 流 畅所欲言 同时也能够更加便利的看到周围人的想法 观点 最大化的丰富人们的 视野和生活 让人随时都能身在其中 随时也能置身事外 3 3 2 2 系系统统功功能能结结构构 3 2 1 前台功能结构 系统的前台初始页面如下 登录地址为 http localhost 8080 BBS 图 3 1 财财院院家家园园网网首首页页 当用户登录到论坛首页时 其默认的身份就是游客 只能查看 回复 搜索帖子 而不能执行发帖等其它操作 如果用户为非注册用户 则其可以进行注册以获得一个登 录身份 如果用户为已注册用户 则其可以直接进行登录 然后以注册用户的身份执行 诸如发表新主题 查看新主题 回复主题 搜索主题等一系列操作 前台系统流程图具 体如下 12 论坛首页 匿名身份登 录 是注册用户吗 用户登录用户注册 NY 登录成功 N 注册成功 N 论坛首页 Y Y 图 3 2 前前台台系系统统流流程程图图 此时 用户已经具有了一种身份 此后用户可以以此种身份执行诸如发表新主题 查看主题 搜索主题 回复主题等操作 3 2 2 后台功能结构 后台功能主要是针对管理员而设置的 用户以管理员的身份登陆后 就能执行后台 管理的操作 具体到此 BBS 论坛 主要是指删除和修改主题 13 论坛首页 匿名身份登 录 是管理员吗 管理员登录 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 14 下载成功安装后 下面进行工程的创建 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 是类似 15 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 语言 一次编写 到处运行 的优势 16 4 数据库设计 4 4 1 1 数数据据库库分分析析 数据库的设计 在应用系统的开发中起着举足轻重的作用 一个合理 有效的数据 库设计不仅是做好系统的保证 也能降低程序的复杂性 是程序的开发过程变得更加容 易 本系统是一个中型的 BBS 论坛系统 考虑到用户信息量和用户需求等问题 决定采 用 MySQl 作为项目用数据库 MySQl 是一个中小关系型数据管理系统 最初由 MySQL AB 公司发布 MySQL 由于体 积小 速度快 总体拥有成本低等原因 成为许多中小型网站数据库的首选 MySQL 可 以称得上是目前运行速度最快的 SQL 语言数据库 此外 MySQL 数据库是一种完全免费 的产品 用户可以直接从网上下载数据库 用于个人和商业用途 而不必支付任何费用 4 4 2 2 数数据据库库概概念念设设计计 ER 图是实体联系图 E R 模型是对现实世界的一种抽象 其组成部分主要包括实体 联系和属性 使用这三种成分 我们可以很好的抽象出现实世界中的个体 并通过彼此 之间的联系来抽象整个世界 E R 模型是设计数据库时经常使用到的方法 一个完整的 BBS 数据库下理应有三张基本的数据表 用户 管理员和帖子 但为了 简化起见 本系统固定管理员 不再设置管理员表 系统假设管理员的账户名和密码都 是 admin 下面划分出本系统所使用的数据库实体 它们分别为用户 User 和帖 子 Article 以下是系统的 E R 图 17 用户 帖子 用户名密码重复密码邮箱地址 帖子id 父亲帖id 根贴id 帖子回复量 帖子作者 帖子内容 帖子主题 叶子节点判断标记 帖子发表时间 帖子查看量 发帖 1 n 图 4 1 系系统统 E E R R 图图 4 4 3 3 数数据据库库的的逻逻辑辑设设计计 根据数据库的概念设计 可以创建与实体对应的数据表 1 用户表 User 下面是对表 User 的具体设计 表 4 1 user 字段名属性约束意义 1userNamevarchar 30 primary key 用户名 18 2passwordvarchar 25 无密码 3rePasswordvarchar 25 无确认密码 4mainUrlvarchar 50 无邮箱地址 5loginTimedatetime 无注册时间 说明 userName 是注册用户的用户名 为 User 表的主键 password 是用户密码 为用户登录时用 rePassword 是确认密码 与用户密码对应 mailUrl 是用户的邮箱地址 通过它 我们可以与之通过邮件通信 loginTime 表示用户注册的时间 在注册过程中 password 和 rePassword 必须一致 否则无法成功注册 2 帖子表 Article 下面是对表 Article 的具体设计 表 4 2 article 字段名属性约束意义 1idintprimary key帖子 id 2pid int无父亲 id 3rootidint无根 id 4titlevarchar 255 无标题 5conttext无内容 6pdatedatetime无发帖时间 7writervarchar 30 Foreign key作者 8viewCountint无帖子查看量 9replyCountint无帖子回复量 10isleafint无 判断帖子是 否为叶子节 点 说明 id 是帖子的编号 为本表的主键 pid 是父亲 id 的编号 表示被回复的帖子 id 号 rootid 表示根贴的 id 号 表示最初发起主题的帖子 id 号 title 表示帖子的主题 cont 表示帖子的内容 19 pdate 表示发帖的具体时间 writer 表示发帖的作者 此外键对应 user 表中 userName 字段 viewCount 表示帖子的查看量 replyCount 表示帖子的回复量 isLeaf 判断帖子是否为叶子节点 值为 1 时表示为非叶子节点 为 0 时 表示为叶子节点 用户表User PKuserName password rePassword mailUrl loginTime 帖子表Article PKid pid root title cont pdate writer viewCount replyCount isleaf 图 4 2 数数据据库库模模型型图图 20 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 21 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 文件 在此页面下 非注册用户 可以进行注册的操作 运行效果图如下 22 图 5 1 用用户户注注册册界界面面 用户完成注册后 注册的用户名和密码就别写入到用户表 user 之后 会出现一 个用户信息确认页面 以最终完成用户的注册 确认无误后 点击链接 页面就跳转到 论坛首页 此时的用户身份还是 游客 之后可以通过登录改变用户身份状态 以下是用户信息确认页面 图 5 2 用用户户信信息息确确认认页页面面 23 2 用户登录 用户完成注册后 就可以进行用户登录的操作 用户登陆页面如下 图 5 3 用用户户登登录录界界面面 5 1 3 论坛版块的展示 下面以 青葱岁月 区为例 来介绍论坛版块的展示操作 在论坛首页 通过链接 版块链接 进入到特定版块的特定页面 最初的梦想 版块页面运行效果 24 图 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 区分 奇偶行 以不同效果区分显示 25 实现代码具体如下 代码段 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 session setAttribute isView true DB close rsCount DB close stmtCount DB close rs DB close stmt DB close conn 代码段 2 将获取的结果根据行号的奇偶性分页展示 26 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 6 发发表表主主题题页页面面 成功发表后 所发表页面会显示在论坛版块展示页面下 如图 5 4 5 1 5 搜索主题 和发表新主题不同 所有的用户都能够执行搜索主题的操作 在论坛版块展示页面 点击 搜索主题 链接 进入到搜索主题页面 27 图图 5 5 8 8 搜搜索索页页面面 图图 5 5 9 9 搜搜索索结结果果页页面面 5 1 6 查看及回复主题 点击主题链接 进入主题查看页面 28 图 5 10 主主题题显显示示页页面面 在此页面 用户点击 回复 按钮 即可进入到回复主题页面 运行效果如下 图 5 11 主主题题回回复复页页面面 在此 需要说明的是 为了美化回复的效果 在此加入了 Fckeditor 网页编辑器 具体实现步骤为 首先从网上下载一个 Fckeditor 将解压文件拷贝到工程 Comment 木木木木1 代码显示不完 全 29 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 5 1 12 2 回回复复后后主主题题显显示示页页面面 5 1 7 优化主题的一些小设计 1 信息统计 30 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 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 2 在版块论坛展示页面 图5 4 及论坛首页 图3 1 会有诸如 发帖作者 发帖时间 或者 最后发帖时间 及 最后发帖作者 的信息出现 这些功能都是通 31 过设置冗余变量并在表之间设置主外键约束来实现的 具体到此系统 则是通过在 user 表中设置 username 在 article 表中设置过 pdate 和 writer 并在两 表之间建立 writer 到 username 的外键约束来实现的 设置冗余变量虽然能够最大化的满足编程者的要求 但是 变量的设定也不是随性 而为的 既要满足用户的需求 又要最大化的节省空间 3 邮箱功能 在 user 表中有一个 mailUrl 字段 专门记录用户的邮箱信息 便于用户之间的 沟通交流 邮箱功能的实现语句如下 邮箱 a href mailto 此为功能的展示页面 图 5 13 邮邮件件发发送送页页面面 其实现原理是通过 Outlook Express 来实现的 计算机的世界就是这么奇妙 往往一个小小的语句就能牵动不可思议的妙用 4 此外 系统还具有跟踪用户身份 根据身份设置用户的权限 并记录用户的行为 把用户的个人信息显示在相应的位置的功能 如 用户发帖或回帖后 会在用户栏显示 出用户的基本信息 供感兴趣的人参考 5 5 2 2 后后台台设设计计 32 5 2 1 管理员登录 后台设计主要指管理员登录页面及登陆后的主题删除与修改页面 管理员登录可以 通过点击 管理员登录入口 链接实现 管理员登录页面和用户登陆页面相似 见图5 3 此处不再赘述 5 2 2 修改和删除主题 当需要对论坛上的帖子实现管理的时候 就需要以管理员的身份登录页面 管理员 所见的页面与普通用户所见的页面不同 在管理员页面下 能够实现对帖子的删除与修 改操作 管理员登陆后的专题版块具体内容页面与普通用户和游客登陆后的页面相比 多了 两个按键 MOD 和 DEL 分别代表修改和删除帖子 点击链接即可进入相应修改和 删除页面 身份是权利的象征 当一个用户以 游客 的身份登录论坛时 其只能实现查看 及搜索帖子的最基本功能 而当一个用户以 注册用户 的身份登录时 其除了能够实 现游客的所有权利外 还能够进行发表新帖 回复帖子的操作 如果用户是以管理员的 身份登陆的话 他就拥有了最高的权限级别 除了能够实现注册用户的所有功能外 还 具有删除及修改帖子的权利 以上的权限区分是通过 Session 来实现的 Session 一般来区分用户的登录方式 通过在用户 管理员登陆后设置一个 Session 值 来达到区分用户登录方式 提升系统 安全性的目的 用户登陆后所作的 Session 操作 session setAttribute userLogined true 管理员登陆后所作的 Session 操作 session setAttribute adminLogined true 区分登录方式 普通用户登录 管理 员登录 下面是主题修改页面 以修改 我的演示主题 1 为例 展示效果图如下 33 图 5 13 主主题题修修改改页页面面 更新后的论坛版块展示页面不变 点击 我的演示主题 1 链接 查看更改后的主 题情况 图 5 14 主主题题更更改改后后的的主主题题展展示示页页面面 此时 已经完成了修改主题的功能 34 结束语 经过自己的不懈努力 毕业设计 财院家园 BBS 论坛 的工作已进入了收尾阶段 回首此次毕业设计的设计 开发过程 大致经历了四个阶段 搜集资料阶段 在开始的毕业设计定题过程中 面对大量的选择题目 感觉一头雾水 结合自己在 大学所学的知识及兴趣 并在网上查看了一下时下最流行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国医美注射用胶原蛋白行业营销策略与盈利趋势预测报告
- 2025-2030中国互联网+先进制造业行业运营状况及前景趋势预测报告
- 2025-2030中国丙亚胺行业现状动态与发展前景预测报告
- 北京妇幼保健院招聘笔试真题2024
- 学院婴幼儿托育管理制度
- 旅游协会票据管理制度
- 大话明朝朱元璋管理制度
- 学校培训班教学管理制度
- 星级现场成本管理制度
- 中医内科学朗读讲课件
- 中建公路工程10T龙门吊安拆方案
- 2023年石狮市国企招聘考试基础题库
- 藏象学说-五脏六腑课件
- 直臂式高空作业车安全管理培训课件-
- 虚拟现实应用技术专业人才培养方案-rrl
- 广东省省级政务信息化服务预算编制标准(运维服务分册)
- Web GIS原理与应用-河南大学中国大学mooc课后章节答案期末考试题库2023年
- 动火作业安全培训演示文稿
- 新型光学生物测量仪晶星900性能特点及临床应用
- 2023春国开物权法形考任务1-4试题及答案
- 开关电源中达mcs3000ers485接线配置说明
评论
0/150
提交评论