BBS论坛毕业设计论文 

loading 分享 2026-11-3 下载文档

人生最大的幸福,是发现自己爱的人正好也爱着自己。 基于JSP的计算机技术交流论坛系统的设计与实现

摘 要

进入二十一世纪

计算机技术迅速向着网络化、集成化方向发展 传统的单机版应用软件正在逐渐退出舞台

取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件

BBS的英文全称是Bulletin Board System 翻译为中文就是\电子公告板\ BBS在国内一般称作网络论坛

BBS作为一种新兴的网络版应用软件

在交友互动、商业、新闻报道上都有广泛的应用前景

1978年在美国芝加哥开发出一套基于8080芯片的CBBS/Chicago 此乃最早的一套BBS系统 国内大约是从1991年开始 开始了第一个BBS站 经过长时间的发展 直到1995年

随着计算机及其外设的大幅降价 BBS才逐渐被人们所认识

1996年更是以惊人的速度发展起来

在计算机网络飞速发展的今天 BBS已经成为人们网上交流的重要平台 因此对BBS的研究是十分必要的 本文就是基于Web技术

采用软件工程的结构化开发方法

设计和开发了一个简单实用的网上论坛

本文详细记录了整个论坛的开发过程

包括系统的分析阶段、设计阶段、测试阶段和实施阶段 并通过文字、图形和表格的形式

详细介绍了这个网络论坛的整体架构和设计特点 本论坛采用目前最流行的JSP技术 结合数据库技术

开发出了这个伸缩性好 扩展性强

能兼容、易维护、界面美观 功能实用的BBS系统

关键词:网络论坛;BBS;JSP技术;数据库;Web技术;软件工程

Abstract

Into the 21st century

computer technology rapidly towards network-based

integrated direction. Traditional stand-alone application software is gradually leave the stage

replaced by support networks to support multiple data (multimedia) version of a new generation of Web applications.

BBS English full name is the Bulletin Board System is the \

BBS in domestic generally called network BBS.The rapid development of computer networks today

BBS has become an important platform for online communication

so BBS research is very necessary. This article is based on Web technology using software engineering structured development methods

design and develop a simple and practical on-line forum.

This paper records the entire development process of the Forum including the system analysis phase design phase

testing and implementation stages and through text

graphics and tabular form

detailing the overall structure of the network forum

and design features. The most popular forum using JSP technology

combined with database technology to develop this flexibility is good extensible compatible

easy to maintain attractive interface

features practical BBS systems.

Keyword:Forum;BBS;JSP Technology;Database;Web Technology;Software Engineering

目 录 摘 要 I

Abstract II 引 言 1

第一章 系统概要 3 1.1 背景与意义 3 1.2 开发方法 4

1.2.1 JAVA和JSP技术简介 4 1.2.2 SQL Server 2005概述 5 1.2.3 Tomcat 6.0服务器架构 6 1.2.4 运行环境的选择 6 第二章 系统需求分析 8 2.1 系统功能概述 8 2.1.1 系统功能需求 8 2.1.2 用例分析 8

2.1.3 概念层类图 10 2.2 系统性能要求 11 2.2.1 系统灵活性 11 2.2.2 输入输出要求 12 2.2.3 数据管理能力要求 12 2.3 可行性分析 12 2.3.1 社会可行性 12 2.3.2 技术可行性 12 2.3.3 经济可行性 13 2.3.4 操作可行性 13 第三章 系统概要设计 14 3.1 设计目标 14

3.2 网络论坛数据流图 15 3.3 面向数据流的设计方法 16 3.3.1 系统层次图(H图) 17 3.4 系统数据库设计 18 3.4.1 数据库设计原则 18 3.4.2 数据库概念结构设计 19 3.4.3 数据库表设计 20 第四章 系统的详细设计 23 4.1 代码标识设计 23 4.2 代码设计原则 23

4.3 系统主要功能流程及模块 24 4.3.1 前台显示设计 24 4.3.2 发表帖子模块设计 28 4.3.3 根帖操作设计 29

4.3.4 搜索帖子操作设计 31 4.3.5 用户注册操作设计 32 4.4 论坛后台管理模块设计 33 4.4.1 论坛版面管理 33 4.4.2 论坛类别管理 37 4.4.3 论坛用户管理 40 第五章 系统测试 43 5.1 程序的测试方法 43 5.2 软件的功能测试 44 5.2.1 链接测试 44 5.2.2 功能模块测试 45 5.2.3 验证功能模块测试 46 5.3 软件的可用性测试 46 结 论 48 致 谢 49 参考文献 50 附录 附录清单A 51 附录 附录清单B 57

引 言

伴随着计算机技术的发展 人们生活水平的提高

传统的社交方式越来越难以满足人们的需要 而现在

随着中国的网名人数迅速增加 地区的信息网络化越来越普及

人们更愿意借助网络这种全新的方式来交流 于是网络论坛便应运而生

网络论坛一般就是大家口中常提的BBS 什么是BBS呢

BBS的英文全称是Bulletin Board System 翻译为中文就是\电子公告板\

它是Internet上的一种电子信息服务系统

在较早的时期

BBS仅仅是提供一块公共电子白板 每个用户都可以在上面书写 可发布信息或提出看法 象日常生活中的黑板报一样

电子公告牌按不同的主题、分成很多个布告栏

布告栏的设立的依据是大多数BBS使用者的要求和喜好

使用者可以阅读他人关于某个主题的最新看法(几秒钟前别人刚发布过的观点) 也可以将自己的想法毫无保留地贴到公告栏中

现在

BBS可以说是一种极为常见的互动交流服务系统 大家不仅可以在此发表自己的想法 交流技术、经验以及人生的感悟 也可以作为用户与商家交流的渠道

商家可以开设BBS作为售后服务信息收集和反馈中心 在此回答用户提出的问题式发布消息

在web2.0时代到来的大环境下 BBS即将朝着两个方向发展: 一是朝着即时性发展

随着信息产生和更新的速度越来越快 人们对信息的需求越来越大 对获取信息方式的要求越来越高

这便要求了BBS需要具有越来越高的即时性 现在动态网站出现的新技术Ajax 可以不需要刷新页面就可以更新数据 这就使得web站点看起来是即时响应的

二是朝着图形化方向发展

由于使用BBS进行交流的用户越来越多 这就要求BBS必须得有富有特色的

友好的界面来吸引来自天南海北的朋友的目光

图形虚拟社区可以非常具体和形象化地模拟整个现实社区的生活 并且具备无限的可扩充性

随着人们生活水平的不断提高 在家里 在宿舍 在办公室

上网已经不是什么很困难的事情 通过BBS

人们可以参与各种自己自己喜欢的话题 与志同道合的朋友一起交流心得 特别是对于IT技术人员

BBS更是一个非常重要的学习交流的场所

本文讨论的便是一个基于JSP语言的中型网络论坛系统 它具有一般BBS的基本功能

如用户注册、登陆、发帖、回帖、看帖、查找帖子 以及管理人员对BBS的各种管理功能

这所有的操作都在用户的客户端的浏览器中完成 由JSPWeb程序处理后

对服务器的数据库进行操作

再处理成HTML文件传到用户客户端浏览器 响应用户的需求

整个系统采用的是web体系

科学的开发过程对系统的完整性和精确性将有很大的影响 因此

这次开发系统的过程严格遵循的软件工程的思想 从需求分析到过程设计都有详细的记录 使得系统高度模块化

可读性、可重用性以及可维护性好

本文中共分5章 第一章绪论

主要讲网上论坛的背景、意义

开发方法及开发工具简介;第二章系统需求分析

主要讲系统功能需求、性能需求及可行性分析;第三章概要设计

主要介绍系统工作流程、功能结构图及数据库表设计;第四章详细设计 主要讲各个功能的工作流程及具体的实现过程 第五章系统测试

主要介绍系统使用的测试方法及测试用例并计算系统的稳态可用性 每章附有本章重点介绍的功能图例及详细讲解 帮助理解系统的各部分功能

第1章 系统概要 1.1 背景与意义

BBS(Bulletin Board Service

公告牌服务)是Internet上的一种电子信息服务系统 它提供一块公共电子白板

每个用户都可以在上面书写 并且可发布信息或提出看法

大部分BBS由教育机构、研究机构或商业机构管理 象日常生活中的黑板报一样 电子公告牌按不同的主题 分主题分成很多个布告栏

布告栏的设立的依据是大多数BBS使用者的要求和喜好 使用者可以阅读他人关于某个主题的最新看法 也可以将自己的想法毫无保留地贴到公告栏中

同样地

别人对你的观点的回应也是很快的 如果需要独下的交流

也可以将想说的话直接发到某个人的电子信箱中 如果想与正在使用的某个人聊天 可以启动聊天程序加人闲谈者的行列 虽然谈话的双方素不相识 却可以亲近地交谈 在BBS里

人们之间的交流打破了空间、时间的限制 在与别人进行交往时

无须考虑自身的年龄、学历、知识、社会地位、财富、外貌、健康状况 而这些条件往往是人们在其他交流形式中无可回避的

同样地

也无从知道交谈的对方的真实社会身份 这样

参与BBS的人可以处于一个平等的位置与其他人进行任何问题的探讨 这对于现有的所有其他交流方式来说是不可能的

目前国内的BBS已经十分普遍 可以说是不计其数

其中BBS大致可以分为5类:

(1)校园BBS CERNET建立以来 校园BBS恨快地发展了起来 目前很多大学都有了BBS 几乎遍及全国上下

像清华大学、北京大学等等都建立了自己的BBS系统 清华大学的水木清华很受学生和网民们的喜爱

(2)商业BBS站

这里主要是进行有关商业的商业宣传、产品推荐等等

目前手机的商业站、电脑的商业站、房地产的商业站比比皆是

(3)专业BBS站

这里所说的专业BBS主要用于建立地域性的文件传输和信息发布系统

(4)情感BBS 主要用于交流情感 是许多娱乐网站的首选

(5)个人BBS

有些个人主页的制作者们在自己的个人主页上建设了BBS 用于接受别人的想法 更有利于与好友进行沟通

系统主要分为前台和后台

前台包括查看版面下根帖信息、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根帖信息、用户注册、发表帖子、回复帖子等 后台是管理界面

主要包括论坛类别的管理版面管理和用户管理的操作

1.2 开发方法

本次设计的论坛管理系统是一个基于JSP语言的小型网络论坛系统 它具有一般BBS的基本功能

如用户注册、登陆、发帖、回帖、看帖、查找帖子 以及管理人员对BBS的各种管理功能

这所有的操作都在用户的客户端的浏览器中完成 由JSPWeb程序处理后

对服务器的数据库进行操作

再处理成HTML文件传到用户客户端浏览器 响应用户的需求

整个系统采用的是web体系

科学的开发过程对系统的完整性和精确性将有很大的影响 本系统采用了Struts框架进行开发 Struts框架实现了MVC设计思想 所以应用该框架

使得开发的程序层次结构清晰 便于功能的扩展和后期的维护 因此

这次开发系统的过程严格遵循的软件工程的设计思想 从需求分析到过程设计都有详细的记录 使得系统高度模块化

可读性、可重用性以及可维护性好

1.2.1 JAVA和JSP技术简介 1、将内容的生成和显示进行分离

用JSP技术

Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面

并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的 例如请求账户信息或者特定的一瓶酒的价格等) 生成内容的逻辑被封装在标识和JavaBeans组件中 并且捆绑在脚本中

所有的脚本在服务器端运行

由于核心逻辑被封装在标识和JavaBeans 中 所以 Web 管理人员和页面设计者 能够编辑和使用 JSP 页面 而不影响内容的生成 在服务器 端

JSP引擎解释JSP标识和脚本 生成所请求的内容(例如 通过访问JavaBeans 组件

使用JDBC技术访问数据库或者包含文件)

并且将结果以HTML(或者XML)页面的形式发送回浏览器 这既有助于作者保护自己的代码

又能保证任何基于HTML的Web浏览器的完全可用性

2、可重用组件

大多数 JSP 页面依赖于可重用的、跨平台的组件(JavaBeans)来执行应用程序所要求的复杂的处理

开发人员能够共享和交换执行普通操作的组件

或者使得这些组件为更多的使用者和客户团体所使用 基于组件的方法加速了总体开发过程

并且使得各种组织在现有的技能和优化结果的开发努力中得到平衡

3、采用标识

Web页面开发人员不会都是熟悉脚本语言的编程人员 JSP技术封装了许多功能

这些功能是在易用的、与JSP相关的 XML 标识中进行动态内容生成所需要的 标准的 JSP 标识能够访问和实例化JavaBeans 组件 设置或者检索组件属性 下载Applet

以及执行用其他方法更难于编码和耗时的功能

4、适应平台

几乎所有平台都支持 Java

JSP几乎可以在所有平台下通行无阻 从一个平台移植到另外一个平台 JSP 甚至不用重新编译

因为Java 字节码都是标准的与平台无关的

5、数据库连接

Java 中连接数据库的技术是 JDBC Java 程序通过 JDBC 驱动程序与数据库相连 执行查询、提取数据等操作

Sun 公司还开发了 JDBC-ODBC bridge

利用此技术 Java 程序可以访问带有 JDBC 驱动程序的数据库 目前大多数数据库系统都带有 JDBC 驱动程序

所以Java 程序能访问诸如 Oracle、Sybase、MS SQL Server 和 MS Access 等数据库

1.2.2 SQL Server 2005概述

SQL Server 是美国Microsoft公司开发的一个关系型数据库管理系统 是目前世界上最著名的关系数据库管理系统之一

Microsoft SQL Server 2005在性能和可扩展方面确立了世界领先的地位 是一套完全的数据库和数据分析解决方案

使用户可以快速创建下一代的可扩展电子商务和数据仓库解决方案

Microsoft SQL Server 2005 在数据库服务器自动调整和自动管理技术方面在数据库领域中处于领先地位

使客户可以集中精力处理商业战略上的问题 而不是去细微调整数据库服务器的各项参数 SQL Server 的主要功能: 1、数据库管理功能 作为数据库管理系统

SQL Server 自然应该具有数据库管理功能

Microsoft SQL Server 2005的数据库由包含数据的

表集合和其他对象(如视图、索引、存储过程和触发器)组成 目的是为执行与数据有关的活动提供支持

存储在数据库中的数据通常与特定的主题或过程相关

②数据仓库功能

SQL Server 2005提供了一套全新的综合分析服务系统 分析服务为商业活动提供了集成的OLAP服务和数据挖掘功能

OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作 数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势

SQL Server针对包括集成数据挖掘、OLAP服务、安全性服务及通过Internet对多维数据集进行访问和链接分析提供新的数据仓库功能

③网络论坛

SQL Server 不仅提供网络论坛所需的可伸缩性与可扩展性之外 还提供了丰富的数据库编程能力 以确保系统的协同工作和灵活性

SQL Server2005 不仅支持集中化数据库管理功能 而且还最大程度地实现了管理与优化工作的自动化 从而

减轻了有关管理人员的负担

④完备的 Web 功能

SQL Server2005允许通过HTTP协议

在 Web上进行高性能、基于标准的安全访问

基于Web的客户端拥有访问关系型数据存储和访问分析服务的能力

⑤分布式数据复制功能可以将一个数据库中的数据复制到通过局域网、广域网或 Internet 网络连接的不同地点服务器或同一服务器中的不同数据库中 并能够自动保持这些数据同步 使各个数据库中具有相同的数据

1.2.3 Tomcat 6.0服务器架构

Tomcat 6.0由Apache 组织开发的一种常用 Web 服务器 提供 Web 服务 一种 JSP 引擎 本身具有 Web 功能

可以作为独立的 Web 服务器使用 但是

在作为 Web 服务器方面

Tomcat 处理静态 HTML 页面时不如 Apache 迅速 也没有Apache 健壮

一般选用 Tomcat 与 Apache 结合的方式 让后者对网站的静态页面的请求提供服务 而 Tomcat 作为专用的 JSP 引擎 提供 JSP 解析 得以更好的性能

1.JDK 的安装与配置

(1)找到 path 变量后单击[编辑]按钮;弹出[编辑系统变量]对话框 在[变 量值]文本框中输入\然后单击[确定]按钮

同时新建 CLASSPATH 变量;

(2)在[系统变量]选项组中单击[新建]按钮 在[变量名]文本框中输入\

在 [变量值]文本框中输入\;c:\\jdk\\lib\\dt.jar;\然后单击[确定]按钮

(3)用同样的方法把 c:\\jdk 添加到 JAVA_HOME 环境变量中; 2.TOMCAT 的安装与配置

在这里设默认安装目录为 c:\\Tomcat 安装完毕 更改环境变量 用同样

的方法把 c:\\Tomcat 添加到 TOMCAT_HOME 环境变量中 启动 Tomcat

在浏览器 的[地址]下拉列表框中输入\如果看到的是在左上 方有一只可爱的小猫 则表示 Tomcat 安装成功

1.2.4 运行环境的选择

信息系统是以计算机系统为核心建立的 系统硬件和软件配置是系统设计的主要内容

本系统采用目前比较流行的B/S(浏览器和/服务器端)模式 因而

硬件配置要从此模式出发 另外

由于计算机发展迅速 为将来升级的考虑

这里所提供的硬件设备要比能够运行该系统所需要的最低硬件标准高出一些

1.软件环境:

操作系统:采用Windows 2003或Windows XP; Web服务器:Tomcat6.0; 浏览器:IE6.0以上; 前台开发工具:JSP;

后台开发工具:Microsoft SQL Server 2005 JSP;

2.硬件环境:

服务器配置:应具有较高的配置 因为本系统服务器和客户端为一台机器 所有数据信息都保存在服务器中 各业务处理需要访问服务器端数据库 因此 配置为

CPU:Intel Core 2 Duo T6570处理器

主频2.1GHz;内存:2G;硬盘:250G;网卡:100M

第二章 系统需求分析

需求分析是指理解用户需求 就软件功能与客户达成一致

需求分析的任务就是解决\做什么\的问题 就是要全面地理解用户的各项要求 并准确地表达所接受的用户需求

具有决策性、方向性、策略性的作用[4]

2.1 系统功能概述

本系统最基本的功能是发表主题 其次是其他人员根据主题发表自己的看法 此外

为了记录主题的发表者和回复者信息 系统还需要提供用户注册和登陆的功能

只有注册的用户登陆后才能够发表和回复主题 浏览者即游客只能浏览主题信息 根据用户的需求和上面的分析

论坛需要具备以下功能:显示各论坛类别及版面、查看版面下所有根帖、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子、进入后台、论坛类别管理、版面管理和用户管理

2.1.1 系统功能需求 1、用户注册登陆功能

是针对服务器判定为游客身份的用户可以使用的功能

2、修改个人信息功能

已登陆的注册用户可以在论坛中修改自己个人信息

3、基本帖子操作功能

基本帖子操作功能包括浏览主题、发表主题、搜索主题和回帖

4、论坛管理功能

这个功能主要是针对论坛的管理人员 如版主和超级管理员

这个功能所包含的内容有修改版面信息、修改类别信息、修改用户权限、修改主题属性、删除主题、删除回帖和删除用户

2.1.2 用例分析

UML提供了用例图用于了解用户需求 用例图强调系统的整体性 强调系统外在的功能

强调系统对使用者有什么帮助和好处 强调系统与外部的交互

本文中采用用例技术进行需求分析的获取和分析 为了能够正确的找出系统的用例

需要确定系统的边界 找出系统的执行者

用例图图符如下表2.1所示:

表2.1 用例图图符 可视化图符 名称 描述

系统 系统边界 用例放其中

用例

用例图中的用例

执行者

描述与系统功能有关的外部实体 可以是用户

也可以是外部系统 关联

连接执行者和用例

1、系统边界:通过以上功能需求分析可知 系统边界为计算机系统和数据库服务器之间

2、系统执行者:注册用户、游客、管理员、版主

3、用例:显示各论坛类别及版面、查看版面下所有根帖、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子、进入后台、论坛类别管理、版面管理和用户管理 本系统的主要用例图如图2.1所示

2.1.3 概念层类图

概念层类图主要描述应用领域中的概念

一个概念模型应独立于具体实现的软件和程序设计语言 单纯属于概念上的理解

在类描述中一般只给出主要类及主要类间关系 类图是所有面向对象建模方法的核心部分 类图描述了系统的静态结构 由类及类间关系组成

类是具有相同属性和相同方法的对象的集合 基本图符如表2.2所示: 表2.2 概念层类图 可视化图符 名称 描述 类

具体的一个类 第一栏类名 第二栏属性 第三栏方法 包

一种分组机制

表示一个类图的集合 关联

类的对象间的关系

包括聚集关系和组成关系

本系统中主要的类有根帖信息类tb_bbs、回复帖子信息类tb_bbsAnswer、版面信息类tb_board、论坛类别信息类tb_class、用户信息类tb_user 如图2.2所示的数据表之间的关系

该关系实际上反映了系统中各个实体之间的关系 当改变tb_user数据表的user_name字段时

tb_bbs数据表的bbs_sender字段也会级联更新或删除;当改变tb_board数据表的board_id字段时

tb_bbs数据表的bbs_boardID字段也会级联更新或删除;当改变tb_class数据表的class_id字段时

tb_board数据表的board_classID字段也会级联更新或删除

2.2 系统性能要求

对系统性能的要求包括对系统时间规定 灵活性 输入输出

数据管理能力

故障处理要求和运行环境规定等的要求

2.2.1 系统灵活性

说明对该网站的灵活性的要求 即当需求发生某些变化时 该软件对这些变化的适应能力 如:

1、操作方式通俗易懂、容易上手 界面美观、大方

将Web程序转为控制台应用程序 符合用户操作习惯

2、本网站可以运行在IE6以上的所有版本; 3、一个模块的改变不会影响其他的模块

2.2.2 输入输出要求

能够对不完整的数据进行校验 保证数据的完整性和一致性 对特殊字符的过滤功能 输出能满足用户的需求

2.2.3 数据管理能力要求

本网站采用的是SQL Server 2005数据库 具有较强的数据处理能力

数据库引擎增强、分析服务增强等 记录的个数随用户多少不定 数据及其分量的存储量为10G

但能保证注册的用户都能登录进来 没有延时

2.3 可行性分析

可行性分析是依据初步调查的结果做出系统开发可行与否的结论过程 任何一个工程的立项都需要进行项目的可行性分析 这是保证正确投资的必要工作

从项目的审批程序上看这也是必不可少的一步 信息系统开发项目是一项复杂的高科技系统工程 可行性分析也是必不可少的

可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决、是否值得去解决

根据调查分析

系统设计方案有以下三个可行性

2.3.1 社会可行性

当前社会是一个网络化的社会 网络就在人们周围无处不在 人们从网络上获取并发布信息 而本系统正是应这一需求而产生 为企业 个人发布

获取有价值的信息提供场所 所以本系统具有社会可行性

2.3.2 技术可行性

首先现在系统开发方法已经发展成熟 结构化、面向对象 都已经广泛使用

这使得系统开发的系统调查、系统分析、系统设计、系统实施更加规范 系统完成的更加科学

系统开发所需的硬件技术、软件开发技术、网络技术发展的非常成熟

其次网络论坛系统有以下特点:一是数据量大 要求及时查询的内容较多;二是数据处理较集中 内部数据处理量大 输出量大 三是即时处理

要不断更新最新的数据信息 基于以上三个特点

现有技术都可以达到要求的目标 在单机环境下组建管理信息系统

该系统的开发工作可以采用JSP做前台 SQL Server 2005做后台来进行 前台可视化程度较高 人机交互能力较强

应用起来也较方便、直观 后台数据库功能强大 且更好的支持运行的系统

因此本系统采用三层结构

用SQL Server 2005数据库作为后台数据库 安装和使用简单易学

方便操作;前台页面采用JSP动态页面

JSP相比ASP、PHP都有很大的优势;控制层采用Struts框架 Struts是Java Web开发中使用的比较热门的技术 服务器采用Tomcat服务器 它是一个开源软件

开发人员在学习了这些语言或工具之后 有能力开发本系统

2.3.3 经济可行性

对于投资费用主要包括:设备费用(计算机设备及软件配置的费用);人员费用(开发人员、运行人员、维护人员的费用);材料费用(消耗材料 如文档资料、用电 用纸等费用);其他费用(设备保养、折旧费用等) 现有的中小型网络论坛都有自身的运营经费

而且一般中小型规模的论坛都会配置电脑所以在硬件方面不必再投入;只需要在软件开发上面投入少许经费就可以了

这方面的投资网络论坛应该会愿意承担并且完全可以支付的起 同时

花费在人员培训上的费用是不会太高的 开发的系统是一个性能稳定 易于维护的系统

后期维护不会消耗大量的人力和物力 这样系统在人员方面的投资也可以支付

总之

经济可行性是指软件所带来的经济效益与开发设计所需要的投资费用相比较是否适当 软件是否会给使用者带来经济效益

首先随着计算机软件和硬件技术的飞速发展 计算机软、硬件价格不断下降 设计本系统所投入的资金下降

与使用本系统为企业发布、获取信息所节省的价值相比 应用本系统带来的收益较大 经济效益可观

所以在经济上是可行的

2.3.4 操作可行性

本系统要求运行环境不高

可以在Windows 2005 Server操作系统平台上运行 Web服务器为Tomcat 6.0

数据库服务器为Microsoft SQL Server 2005 开发工具采用的MyEclipse

界面美观、易懂、容易操作、功能齐全 方便用户之间信息交流

综上所述

从经济、技术、操作可行性上来说 系统开发是完全可行的

第3章 系统概要设计

系统开发工作经过需求分析阶段

已完全弄清了用户的需要 较好的解决了\做什么\的问题 建立了系统的逻辑模型 至此

本系统的开发阶段就进入了概要设计阶段 开始着手解决\怎么做\问题

也就是根据需求分析阶段所确定的系统的逻辑模型 完成系统的物理模型的设计

在概要设计阶段的指导思想是结构化指导思想 是指用一组标准的规则和图表工具确定系统有哪些模块 怎么连接

从而形成新系统的结构

然后再进行诸如输入、输出、对话等设计 为整个系统的实施做好铺垫

3.1 设计目标

网络论坛主要分为前台系统和后台系统两部分

前台系统:主要是用户查看版面下根帖信息、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根帖信息、用户注册、发表帖子、回复帖子等

后台系统:主要是管理员进行论坛类别的管理版面管理和用户管理的操作

对于这个典型的数据库管理系统

尤其是对像论坛这样的数据流量特别大的网络管理系统 必须要满足使用方便、操作灵活的设计需求 本系统在设计时应该满足以下几个目标: (1) 采用人机对话的操作方式 界面设计美观友好

信息查看灵活、方便、快捷、准确 数据存储安全可靠

(2) 全面展示系统所有分类的帖子 并进行分页显示

(3) 给用户提供一个方便快捷的主题信息查看功能

(4) 实现在线发表帖子

(5) 提供登录模块

主要用于管理员登录系统和发表帖子时留下发表者的信息

(6) 用户随时都可以查看自己发表的帖子

(7) 对用户输入的数据

系统进行严格的数据检验 尽可能排除人为错误

(8) 系统运行稳定、安全可靠 并最大限度实现易维护性和易操作性

3.2 网络论坛业务流程图

流程图有时也称作输入-输出图

该图直观地描述一个工作过程的具体步骤 流程图对准确了解事情是如何进行的 以及决定应如何改进过程极有帮助 这一方法可以用于整个企业

以便直观地跟踪和图解企业的运作方式

流程图使用一些标准符号代表某些类型的动作 如决策用菱形框表示 具体活动用方框表示

但比这些符号规定更重要的

是必须清楚地描述工作过程的顺序 流程图也可用于设计改进工作过程 具体做法是先画出事情应该怎么做 再将其与实际情况进行比较

数据流程基本组成及符号说明如表3.1所示

表3.1 数据流图符号 符号 含义 说明

开始或结束

表示系统的开始或结束

行动方案

在普通工作环节用

数据流方向

开始或结束 决策

表示问题判断或判定(审核/审批/评审)环节用 本系统分为前后和后台

当游客进入前台页面时可以进行浏览首页、查看精华帖子、搜索根帖、查看版面下的根帖内容和用户注册

如果想要发表帖子或回复帖子 系统会判定用户是否已经登录 如果没有返回登陆界面 反之可继续进行操作

如果用户想要进行置顶帖子提前帖子设为精华帖删除根帖删除回复帖的操作 首先判定用户是否登录 符合后判定用户的权限 符合权限才可继续操作 不符合则提示无权操作 其前台系统流程图下所示:

在进入后台系统时

要判断用户是否登录和是否有权限进入后台 成功后可进行类别管理版面管理和用户管理 否则提示用户无权操作 其后台流程图如下所示:

3.3 面向数据流的设计方法

系统结构设计是在对现有系统充分调查研究的基础上 采用一定的方法设计出能描述新系统物理结构的系统结构图 主要给出构成系统的模块及模块间的调用关系 表现在图中一般是用不同的层次体现的

结构化系统设计技术是在结构化程序设计思想的基础上 发展起来的一种用于复杂系统结构设计的技术 运用一套标准的设计准则和工具 采用模块的方法

进行新系统控制层次关系和模块专人分解设计

把用数据流程图表示的系统逻辑模型转变为用HIPO图表示的系统层次模块结构

结构化系统设计的核心是模块分解设计 模块化显著提高了系统的可修改性和可维护性

同时

为系统设计工作的有效组织和控制提供了方便条件 按照功能划分模块 对照数据流图

对本系统进行逐个级别的功能分解

3.3.1 系统层次图(H图)

层次图(Hierarchy Chart图)简称HC图或H图 用于表示软件模块的分层结构 一般与IPO表一起使用 形成HIPO图

系统后台H图如图3.5所示 系统主要分为前台和后台

前台包括查看版面下根帖信息、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根帖信息、用户注册、发表帖子、回复帖子等 后台是管理界面

主要包括论坛类别的管理版面管理和用户管理的操作

3.4 系统数据库设计

数据库设计是管理信息系统的重要组成部分 数据库设计是对于一个既定的环境 进行符合应用语义的逻辑设计

以及提供一个确定存储结构和物理设计 建立实现系统目标

并能有效存取数据和数据模型

建立良好的数据库结构和文件组织形式

使系统能快速、准确的获得所需信息是评价系统的主要指标 因此

是管理信息系统的重要组成部分

数据库设计的核心问题是设计好的数据模型 在目前的数据库管理系统中有层次模型 网状模型、关系模型三种数据模型 其中

关系模型具有较高的数据独立性 使用也较为方便 目前

微机数据库多采用关系型数据库模型 这里采用SQL Server 关系数据库

该数据库对行增、删、编辑、统计、显示和应答都极为方便 其中的排序和索引功能

对数据快速定位、查询提供了有利条件

3.4.1 数据库设计原则 1、数据的共享性

2、数据独立性

3、数据的完整性

即保证数据库存中数据准确

4、灵活性

可在相当短的时间内回答用户的各种各样的复杂而灵活的查询问题

5、安全性与保密性

做到对数据指定保护级别和安全控制

3.4.2 数据库概念结构设计 概念模型的表示方法很多 其中最为著名最为常用的是E-R图 简单的说

E-R图用来分析数据关系的

下面具体列出网上商城购物系统主要的实体图及E-R图

根帖实体图如图3.7所示:主要属性有编号、所属版面、标题、内容、发布者、发布时间、表情、对帖子进行操作的时间、是否为置顶帖子、被置顶的时间、是否为精华帖子和被设置为精华帖子的时间

其中是否为置顶帖子与是否为精华帖子属性分别用来标识帖子是否被设置为置顶或精华帖子 1表示\是\0表示\否\

用户信息表实图如图3.8所示:主要有编号、用户名、密码、头像、性别、联系方式、QQ号码、邮箱、籍贯、权限 权限分为三种:0表示普通用户 1表示版主 2表示管理员

回复帖实体图如图3.9所示:主要有编号、根帖ID、标题、内容、回复者、回帖时间和表情属性

版面实体图如图3.12所示:主要有编号、所属类别ID、版面名称、版主、版面公告

论坛类别实体图如图3.13所示:主要有编号、类别名称、介绍

3.4.3 数据库表设计

根据E-R图可以对数据库进行设计 以下列出主要的数据表

根帖信息表

用于保存发布的全部根帖信息 该表具体字段如表3.15所示

表3.2 根帖信息表 属性名称 含义 数据类型 主要属性 说明 bbs_id 帖子ID int(4)

主键Not null

用于自动存储帖子ID bbs_boardID 所属版面ID Smallint(2) ((-1))

用于存储所属版面ID Bbs_title 帖子标题 Varchar(70)

null

用于存储帖子标题 bbs_content 帖子内容

Varchar(2000) null

用于存储帖子内容 bbs_sender 帖子发布者 Varchar(20) null

用于存储帖子发布者 bbs_sendtime 帖子发布时间 Datatime(8) null

用于存储帖子发布时间 bbs_face 帖子表情 Varchar(8) null

用于存储帖子表情 bbs_opTime 帖子操作时间 Datatime(8) null

该操作只包括发表帖子和提前帖子 在显示非置顶帖子时 该字段降序排列 bbs_isTop 是否置顶 Varchar(1) (0)

1表示置顶帖子0表示非置顶帖子 bbs_isTopTime 被置顶时间 Datatime null

在显示置顶帖子时 按该字段降序排列 bbs_isGood 是否精华帖子 Varchar(1) (0)

1表示精华帖子0表示非精华帖子 bbs_isGoodTime 被精华时间 Datatime(8) null

在显示精华帖子时 按该字段降序排列

版面信息表用来保存论坛中版面信息 如表3.16所示

表3.3 版面信息表 属性名称 含义 数据类型 主要属性 说明 Board_id 版面ID

Smallint(2) 主键not null

用于自动存储版面ID Board_classID 所属类别ID Smallint(2) null

版面所属类别的ID值 Board_name 版面名称 Varchar(40) null

用于存储版面名称 Board_master 版面版主 Varchar(20) null

用于存储版面版主 Board_pcard 版面公告 Varchar(200) null

用于存储版面公告

回复帖子信息表用来保存回复帖子的信息 如表3.17所示

表3.4 回复帖子信息表 属性名称 含义 数据类型 主要属性 说明

BbsAnswer_id 编号 Int(4)

主键not null ID值(自动编号) BbsAnswer _rootID 根帖ID Int(4) Null

用于存储回复帖子的根帖ID BbsAnswer _title 标题

Varchar(70) Null

用于存储回复帖子的标题 BbsAnswer _content 内容

Varchar(2000) Null

用于存储回复帖子的内容 BbsAnswer _sender 回复者

Varchar(20) Null

用于存储回复帖子的回复者 BbsAnswer _sendTime 回复时间 Datatime(8) Null

用于存储回复帖子的时间 BbsAnswer _face 表情

Varchar(10) Null

用于存储回复帖子的表情

论坛类别信息表用来保存论坛类别信息

如表3.18所示

表3.5 论坛类别信息表 属性名称 含义 数据类型 主要属性 说明 Class_id ID值

Smallint(2) 主键not null

用于存储论坛类别ID值 Class_name 名称

Varchar(40) null

用于存储论坛类别名称 Class_intro 介绍信息 Varchar(200) null

用于存储论坛类别介绍信息

论坛用户信息表用来保存论坛所有用户的详细信息 如表3.19所示

表3.6 用户信息表 属性名称 含义 数据类型 主要属性 说明 id

用户ID

Smallint(8) 主键Not null

用于自动存储用户ID

user_name 名称

Varchar(20) Null

用于存储用户名称 user_password 密码

Varchar(20) Null

用于存储用户密码 user_face 头像

Varchar(11) Null

用于存储用户头像 user_sex 性别

Varchar(2) Null

用于存储用户性别 user_phone 联系方式 Varchar(12) Null

用于存储用户联系方式 user_OICQ QQ号码

Varchar(14) Null

用于存储用户QQ号码 user_email 邮箱

Varchar(100) Null

用于存储用户邮箱 user_from 籍贯

Varchar(200) Null

用于存储用户籍贯 user_able 权限

Varchar(1) Null

0表示普通用户1表示版主2表示管理员

第4章 系统的详细设计

网络论坛系统采用JSP编写

利用SQL Server 2005数据库存储信息 网页按实际需求及功能模块编写 按如下顺序详细介绍 包括前台显示设计 发表帖子模块设计

根帖操作设计和后台版面管理模块设计

4.1 代码标识设计

代码设计问题是一个科学管理的问题

设计出一个好的代码方案对于系统的开发工作是一件极为有利的事情 在信息系统中

代码是人和机器的共同语言

是便于进行分类、核对、统计和检索的关键 代码设计是实现管理信息系统的关键

其目的是设计出一套为本系统各部分所共用的、优化的代码系统 代码设计的好坏

不仅直接影响到计算机进行数据处理时是否方便 是否能节省存储空间

是否能提高处理速度、效率和精度 而且还关系到系统能否实际运行起来 因此

在进行此设计之前

要设计出适合新系统的代码体系

代码设计可以使很多机器处理(如某些统计、校对查询等)变得十分方便

4.2 代码设计原则

1.唯一性:每个代码仅代表唯一的实体或属性[6]

2.标准化:尽可能用国际、国家或行业标准 以便交换与维护

3.合理性:代码结构要合理 尽量反映编码对象的特征 并与事物分类体系相适应

以以便代码具有分类的标识作用

4.易识别性:代码既要便于管理人员使用时的识别与记忆又要便于计算机的识别和分类

5.可扩展性与灵活性:代码系统要考虑系统的发展变化 当增加新的实体或属性时 直接利用源代码加以扩充 而不需要变动代码系统

6.实用性:尽量使用业务上已经使用的且行之有效的代码 方便使用

7.可扩充性:代码设计时要留有余地

在将来系统发展与变化时可直接利用原代码体 系加以追加 而不需要变动原代码体系

4.3 系统主要功能流程及模块 4.3.1 前台显示设计

论坛的前台显示主要包括:首页面的论坛类别显示、某版面下根帖的列表显示、我的帖子的列表显示、精华帖子的列表显示、搜索后根帖的列表显示和根帖与回复帖内容的详细显示

首页面的论坛类别显示

首先通过Struts中的logic标签库中的iterate标签遍历存储在session范围里的List集合对象

该List集合对象是在处理用户访问论坛首页面时的请求处理类中实现的

其中存储的是封装了论坛类别信息的ActionForm;然后再使用bean标签库中的write标签输出从list集合对象中遍历出的ActionForm中的属性信息 即可实现论坛类别的显示

使用IndexAction类

调用OpClassListShow()方法和OpBoardListShow()方法获取论坛类别和版面信息 主要代码如下:

HttpSession session=request.getSession(); OpDB myOp=new OpDB();//创建业务对象

List classType=myOp.OpClassListShow();//查询数据表 获取所有论坛类别

if(classType!=null&&classType.size()!=0){ for(int i=0;i

String classID=((ClassForm)classType.get(i)).getClassId();//获取当前论坛类别ID String sql=\Object[] params={classID};

List oneboardlist=myOp.OpBoardListShow(sql params);//获取当前论坛类别下所有版面

session.setAttribute(\oneboardlist); //存储版面 } }

session.setAttribute(\classType); // 保存论坛类别

实现此过程主要代码:在遍历论坛存储论坛类别的list集合对象的iterate标签中 嵌套另一个iterate标签来遍历并输出当前论坛类别中的版面

版主:

某版面下根帖的列表显示、我的帖子的列表显示和精华帖子的列表显示 都是显示某个版面中的所有根帖 实现该功能

首先需要获取当前版面中的根帖

可通过当前版面的ID值查询数据表获取

然后分别将获取的置顶帖子列表或其他帖子列表存储在session范围内 最后返回到JSP页面通过logic标签库中的iterator标签遍历输出 实现此过程主要代码:

href=\

>

对于根帖的回复数和最后回复人

可通过当前根帖的ID查询存储回复信息的数据表获得

//查询tb_bbsAnswer数据表 获取回复帖子数

String sql1=\where bbsAnswer_rootID=?\

//查询出该根帖的所有回复帖子(按回复时间升序排列) 获取最后回复人、回复时间

String sql2=\

bbsAnswer_sendTime from tb_bbsAnswer where bbsAnswer_rootID = ? order by bbsAnswer_sendTime\

根帖与回复帖内容的详细显示

可通过根帖的ID查询数据表获取根帖的信息后封装到ActionForm中 然后存储到session对象中

在返回JSP页面后通过bean标签库中的write标签输出 实现显示根帖的回复帖

同样可通过根帖的ID值查询回复帖数据来获取 最后获取的是一个List集合对象

集合中的灭一个元素封装了回复帖信息的ActionForm 将该List集合对象存储在session对象内 在返回到JSP页面后

通过logic标签库中的iterator标签遍历输出 实现此过程主要代码如下:

【主题】

href=\RootSingle.bbsSender}\

4.3.2 发表帖子模块设计

用户进行发表帖子 首先进行登录成功后 进行输入内容

才可完成发表帖子的功能

发表帖子模块使用了Validator框架验证表单 由开发人员自行设置验证规则

发表帖子时需要用户输入的信息有根帖标题、根帖表情和根帖内容 最后执行SQL语句完成发表帖子的操作 其主要代码有:

【主题】

【表情】<%@ include file=\ 【内容】<%@ include file=\

Validation.xml文件中的验证发表帖子表单的验证主要代码:

maxlength 35

maxlength 1000

在BbsAction类中使用方法AddBbs() 获取表单数据

然后向数据表中插入记录的SQL语句 最后执行该语句完成发表帖子的操作

String sql=\? ? ? ? ? ? ? ? ?

?)\生成SQL语句

Object[]params={boardId bbsTitle bbsContent bbsSender bbsSendTime bbsFace bbsOpTime bbsIsTop bbsToTopTime bbsIsGood

bbsToGoodTime}; OpDB myOp=new OpDB(); int i=myOp.OpUpdate(sql params);//执行SQL语句 4.3.3 根帖操作设计 将帖子提前的操作

首先判断当前操作用户的身份

若当前用户是管理员或当前版主或当前帖子的发表者 则实现提前帖子的功能

否则生成无权操作的提示信息

实现该操作的主要代码如下:

/* 如果当前登录的用户是帖子的发表者、帖子所属版面的版主、管理员 */

if(lognerAble.equals(\r)){

if(bbsId!=null&&!bbsId.equals(\ Object[] params={time bbsId};

String sql=\生成SQL语句 OpDB myOp=new OpDB();

int i=myOp.OpUpdate(sql params);//执行SQL语句 实现提前帖子 }

else{

System.out.println(\您没有权限提前该帖子!\ messages.add(\

new ActionMessage(\生成无权操作提示信息 }

将帖子置顶的操作 首先编写一个过滤器 当用户触发超链接时 执行该过滤器

验证用户身份是否为管理员 首先从session中获取当前用户 然后判断其用户身份

String able=logoner.getUserAble();//longer为在session中存储的登录用户 if(able.equals(\如果身份是管理员 chain.doFilter(Srequest Sresponse); }

else{ //生成无权操作的提示信息 request.setAttribute(\\您没有权限进行该操作!\ RequestDispatcher

rd=request.getRequestDispatcher(\ rd.forward(Srequest Sresponse);//返回无权操作的提示页面 }

实现帖子置顶的操作

首先获取请求中传递的帖子的ID值 然后获取当前时间

最后生成SQL语句

并执行该SQL语句实现置顶帖子的操作

String bbsId=request.getParameter(\获取帖子的ID值 if(bbsId!=nul&&!bbsId.equals(\ Date date=new Date();//获取当前时间

String today=Change.dateTimeChange(date); String sql=\ bbs_toTopTime=? where bbs_id=?\生成SQL语句 Object[] params={today bbsId};

ActionMessages messages=new ActionMessages(); OpDB myOp=new OpDB(); int i=myOp.OpUpdate(sql params);//执行SQL语句 }

4.3.4 搜索帖子操作设计 搜索帖子时

要根据需要查询帖子类型、内容进行精确或模糊查询 主要代码如下:

String subsql=searchform.getSubsql();//获取下拉表单信息

String sqlvalue=searchform.getSqlvalue();//获取输入框内容信息 String searchType=searchform.getSearchType();//获取查询动作信息 if(searchType.equals(\判断查询条件信息 opname=\

param=sqlvalue; } else{

opname=\

param=\

String sql=\生成查询的SQL语句 Object[] params={param};

List searchlist=myOp.OpBbsListShow(sql params);}//将查询出的内容遍历输出

4.3.5 用户注册操作设计

注册用户时

要判断此用户名是否已经存在

两次输入的密码是否一致

然后使用InsertUser()方法将信息向数据表插入记录的SQL语句 最后执行该SQL语句完成添加用户的操作 主要代码如下:

String pass1=regForm.getUserPassword();

String pass2=regForm.getAginPassword();//获取两次输入的密码 if(!pass1.equals(pass2)){//判断两次密码是否一致 System.out.println(\两次输入的密码不一致!\ messages.add(\

new ActionMessage(\ saveErrors(request messages); }

sql=\生成查询此用户是否存在的SQL语句

params=new Object[1]; params[0]=userName; OpDB myOp=new OpDB();

UserForm user=myOp.OpUserSingleShow(sql params);

if(user!=null){//判断此用户名是否存在

System.out.println(userName+\用户已经存在!\ messages.add(\

new ActionMessage(%userName));}

sql=\? ? ? ? ? ? ?

?)\生成注册用户信息的SQL语句 params=new Object[9]; int i=myOp.OpUpdate(sql params);//执行SQL语句 实现注册用户的操作

4.4 论坛后台管理模块设计

论坛后台管理模块主要完成以下功能:论坛类别的管理、版面管理和用户管理的操作

4.4.1 论坛版面管理

版面管理模块主要包括浏览版面信息、添加版面、修改版面、删除版面4个功能

在添加、修改和删除的模块中 包含更新版面的版主信息

在修改前会先判断管理员输入的用户是否存在 若存在再判断该用户是否为版主

以上条件都成立才可执行添加和修改的操作

浏览版面信息

根据浏览的版面和所属类别进行显示 主要代码如下:

String sql=\* from tb_board where board_classID=?\生成查询版面信息的SQL语句

Object[] params={classId}; boardList=myOp.OpBoardListShow(sql params);//执行遍历出版面信息

添加版面需要一个下拉列表框供管理员选择论坛类别

并实现3个文本输入框供管理员输入版面名称、版主和版面公告信息 添加版面使用AddBoard()方法 该方法获取表单数据

然后生成向数据表插入记录的SQL语句 最后执行该SQL语句完成添加版面的操作 主要代码如下:

ActionMessages messages=new ActionMessages();

String sql=\生成查询版面是否存在的SQL语句 Object[] params={boardName classId};

if(myOp.OpBoardSingleShow(sql params)!=null){//如果版面已经存在 生成提示信息

System.out.println(\添加版面- \版面已经存在!\ messages.add(\

new ActionMessage(\boardName)); } else{

sql=\* from tb_user where user_name=?\生成查询用户是否存在的SQL语句

Object[] params1={boardMaster};

UserForm userform=myOp.OpUserSingleShow(sql params1);//查询用户表获取用户信息

if(userform==null){//该用户不存在

System.out.println(\添加版面-\版主不存在!\

messages.add(\

new ActionMessage(\boardMaster)); }

else if(userform.getUserAble().equals(\如果该用户存在 判断用户是否为普通用户

System.out.println(\添加版面-\不是版主!\ messages.add(\

new ActionMessage(\boardMaster)); }

else{//若不是普通用户 编写添加版面代码

sql=\? ?

?)\生成添加版面的SQL语句

Object[] params2={classId boardName boardMaster boardPcard};

int i=myOp.OpUpdate(sql params2); //执行SQL语句 实现添加版面的操作

} }

saveErrors(request messages);//保存提示信息 } }

修改版面

首先判断版面是否存在

再判断当前用户权限是否符合要求 修改版面使用UpdateBoard()方法 该方法获取表单数据

然后生成向数据表插入记录的SQL语句 最后执行该SQL语句完成添加版面的操作 主要代码如下:

String sql=\生成查询版面是否存在的SQL语句

Object[] params={boardId};

BoardForm select=myOp.OpBoardSingleShow(sql

params);

String sql=\生成查询用户是否存在的SQL语句

Object[] paramsS={boardMaster};

UserForm userform=myOp.OpUserSingleShow(sql paramsS);

if(userform==null)//查看用户的权限 若不符合生成提示信息

{ forwardPath=\

System.out.println(\修改版面-\版主不存在!\messages.add(\

newActionMessage(\boardMaster)); } else

if(userform.getUserAble().equals(\ { forwardPath=\

System.out.println(\修改版面-\不是版主!\messages.add(\

newActionMessage(\boardMaster)); }else{

sql=\board_name=? board_master=?

board_pcard=? where board_id=?\生成修改版面的SQL语句 Object[] paramsM={boardClassId boardName boardMaster boardPcard boardId};

int i=myOp.OpUpdate(sql paramsM);//执行SQL语句 实现添加版面操作

删除版面

根据数据表之间的关系在删除指定版面时

会同时删除存储在跟帖表中的该版面下的所有根帖 删除版面使用deleteBoard()方法 从请求中获取版面的ID值 然后生成SQL语句

最后执行该SQL语句完成删除版面的操作 主要代码如下:

String boardId=request.getParameter(\获取版面ID值 if(boardId==null||boardId.equals(\判断版面是否存在

boardId=\

String sql=\生成删除版面SQL语句 Object[] params={boardId}; OpDB myOp=new OpDB(); int i=myOp.OpUpdate(sql params);//执行SQL语句 实现删除版面操作 4.4.2 论坛类别管理

类别管理模块主要包括浏览类别信息、添加类别、修改类别、删除类别4个功能 在添加、修改和删除的模块中

在修改前会先判断用户是否为管理员 才可执行添加和修改的操作

浏览类别信息

可通过类别的ID查询数据表获取类别的信息后封装到ActionForm中 然后存储到session对象中

在返回JSP页面后通过bean标签库中的write标签输出

添加类别信息

添加类别使用AddClass()方法 该方法获取表单数据

然后生成向数据表插入记录的SQL语句 最后执行该SQL语句完成添加类别的操作 主要代码如下:

/** 后台-添加论坛类别 */ OpDB myOp=new OpDB();

sql=\生成生成查询类别是否存在的SQL语句

params=new Object[1]; params[0]=className;

if(myOp.OpClassSingleShow(sql

params)!=null){//若类别存在生成提示信息

System.out.println(\添加论坛类别-名称:\的论坛已经存在!\messages.add(\

new ActionMessage(\className)); else{

sql=\?)\生成添加类别的SQL语句 params=new Object[2]; params[0]=className; params[1]=classIntro; int i=myOp.OpUpdate(sql params);//执行SQL语句 实现添加类别操作

修改类别信息

首先查询此类别是否存在

若存在根据类别ID更新数据表中的数据 主要代码如下:

String sql=\查询类别ID是否存在的SQL语句 Object[] params={classId}; String sql=\

class_intro=? where class_id=?\生成更新类别信息的SQL语句 Object[] paramsMo={className classIntro classId};

int i=myOp.OpUpdate(sql paramsMo);//执行SQL语句 实现更新数据的操作

删除论坛类别信息

根据数据表之间的关系在删除指定类别时

会同时删除存储在跟帖表中的该类别下的所有版面和根帖 删除类别使用deleteClass()方法 从请求中获取类别的ID值 然后生成SQL语句

最后执行该SQL语句完成删除类别的操作 主要代码如下:

String classId=request.getParameter(\获取论坛类别ID值 if(classId==null||classId.equals(\判断此类别是否存在 classId=\

String sql=\生成删除此类别的SQL语句 Object[] params={classId}; OpDB myOp=new OpDB(); int i=myOp.OpUpdate(sql params);//执行SQL语句

实现删除类别的操作

4.4.3 论坛用户管理

用户管理模块主要包括浏览用户信息、修改用户信息、删除用户3个功能 在修改和删除的模块中

在修改前会先判断用户是否为管理员 才可执行添加和修改的操作

浏览用户信息

通过查询用户权限分类查询 生成SQL语句 遍历显示用户信息 主要代码如下:

if(able.equals(\生成查询全部用户的SQL语句 按权限降序排列

sql=\}else{

sql=\查询某一权限的用户

params=new Object[1];params[0]=able; } OpDB myOp=new OpDB();

List userlist=myOp.OpUserListShow(sql params);

request.setAttribute(%userlist);//将用户信息遍历输出

修改用户信息 首先查询用户是否存在 再使用UpdateUser()方法 该方法获取表单数据

然后生成向数据表插入记录的SQL语句 最后执行该SQL语句完成添加版面的操作 主要代码如下

String sql=\生成查询用户是否存在的SQL语句 Object[] params={userId}; OpDB myOp=new OpDB();

UserForm select=myOp.OpUserSingleShow(sql params);

Stringsql=%user_password=? user_face=? user_sex=? user_phone=? user_OICQ=?

user_email=? user_from=?

user_able=? where id=?\生成更新用户信息的SQL语句 Object[]params={userName userPassword userFace userSex userPhone userOICQ userEmail userFrom userAble userId};

OpDB myOp=new OpDB(); int i=myOp.OpUpdate(sql params); //执行该SQL语句 实现修改用户信息的操作

删除用户信息

根据数据表之间的关系在删除指定用户时 会同时删除存储在跟帖表中的该用户的根帖 删除用户使用deleteUser()方法 从请求中获取用户的ID值 然后生成SQL语句

最后执行该SQL语句完成删除类别的操作 主要代码如下:

String userId=request.getParameter(\获取删除用户的ID if(userId==null||userId.equals(\判断此用户是否存在 userId=\

String sql=\生成删除用户的SQL语句 Object[] params={userId}; OpDB myOp=new OpDB(); int i=myOp.OpUpdate(sql params);//执行SQL语句 实现删除用户的操作

第5章 系统测试

系统测试是基于系统整体需求说明书的测试 应覆盖系统所有联合的部件

系统测试是针对整个产品系统进行的测试 目的是验证系统是否满足了需求规格的定义 找出与需求规格不相符合或与之矛盾的地方

系统测试的对象不仅仅包括需要测试的产品系统的软件

还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等 因此

必须将系统中的软件与各种依赖的资源结合起来 在系统实际运行环境下来进行测试

5.1 程序的测试方法

系统测试是保证系统质量与可靠性的最后关口 是对整个系统开发包括系统分析 系统设计和系统实施的最终审查

虽然在系统开发的各个阶段都采取了严格的技术措施 希望能尽快发现问题并改正 但难免会留下差错

如果在正式投入运行前没有发现问题 在工作中暴露出来

将给商城带来很大的损失 因此

对系统进行测试

是系统开发中必不可少的阶段

系统测试的基本原则:基于以上系统测试的概念 在进行系统测试中应遵循以下原则

测试工作应避免由原开发软件的人员或小组来承担; 1、 测试必须由专业人员来完成

2、 所有测试都应该追溯到用户需求

3、 在测试前必须制定完整的测试计划

4、 在测试前选择完备的测试用例

5、 85%的软件错误产生于15%的模块中

6、 测试应该由小规模测试逐步过渡到大规模测试

7、 穷举测试是不可能的 软件不可能不存在错误

8、 精心制定测试计划尽可能多的发现软件中的错误

软件测试是软件的质量管理 核心技术是软件测试用例

软件测试是有组织性、步骤性、计划性的

测试的形态分构建性测试、系统化测试、专项测试 软件测试的方式分为白盒技术和黑盒技术 白盒测试又称结构性测试

是内部人员进行的测试;黑盒测试测试着重于软件的功能的测试 测试人员必须使用测试用例

黑盒测试的技术分为等价划分、边界值分析、错误推测

等价划分原则:若规定了输入个数选择一个有效等价类 两个无效等价类;若输入是一组值 需要对属性进行判别

选择不同的属性输入;若输入是整数选正整数、零、负整数;若是处理时 选空表、满表、典型表

5.2 软件的功能测试

根据上一章的系统详细设计方案 制定了如下测试方案

5.2.1 链接测试

由于本论坛的页面并不多 用户身份也不多

所以链接测试采取的是覆盖测试的方法 用所有的用户身份

逐个去测试链接跳转的正确性

表5-1测试用例及结果表: 用户身份 起始页面 链接

应当跳转页面 测试结果 游客 首页 注册按钮 注册页面 成功 游客 首页 登陆按钮 登陆页面 成功 游客 首页

无限制版块 主题页面 成功 游客 首页

有限制版块 首页 成功 游客 首页 搜索按钮 搜索页面 成功 用户 首页

个人信息按钮 个人信息页面 成功 用户 首页

达限制版块 主题页面 成功 用户 首页

未达限制版块 首页 成功 用户 首页 搜索按钮 搜索页面 成功 管理员 首页

管理论坛按钮 管理页面 成功 游客 主题页面 主题 帖子页面 成功 游客 主题页面 发帖按钮 主题页面 成功 游客 主题页面 回到首页按钮 首页 成功 用户 主题页面 主题 帖子页面 成功 用户 主题页面 发帖按钮 发表主题页面 成功 用户 主题页面 回到首页按钮 首页 成功 游客

注册页面 注册按钮 登陆页面 成功 游客 帖子页面 回到首页 首页 成功 用户 帖子页面 回到首页 首页 成功 游客 帖子页面 回到版块 主题页面 成功 用户 帖子页面 回到版块 主题页面 成功 游客 搜索页面 回到首页 首页 成功 游客 搜索页面 无限制主题 帖子页面 成功 游客 搜索页面 有限制主题 搜索页面 成功 用户 搜索页面 回到首页 首页 成功


BBS论坛毕业设计论文 .doc 将本文的Word文档下载到电脑
搜索更多关于: BBS论坛毕业设计论文  的文档
相关推荐
相关阅读