BBS论坛毕业设计

人生最大的幸福,是发现自己爱的人正好也爱着自己。

毕业论文

题 目 计算机系BBS论坛

学 院 物理与信息科学学院

姓 名 ______

专 业 计算机科学与技术

学 号 281030131 _

指导教师 _____

提交日期 ________

原创性声明

本人郑重声明:本人所呈交的论文是在指导教师的指导下独立进行研究所取得的成果 学位论文中凡是引用他人已经发表或未经发表的成果、数据、观点等均已明确注明出处 除文中已经注明引用的内容外

不包含任何其他个人或集体已经发表或撰写过的科研成果

本声明的法律责任由本人承担

论文作者签名: 年 月 日

论文指导教师签名:

计算机系BBS论坛

摘要

随着信息技术的快速发展

人与人之间交流方式越来越先进

在当今时代

QQ、留言板、博客、微信等已成为人们彼此沟通、交流信息的主要方式

此外

为了方便人们在某一专业领域探讨问题、发表意见和更深入的交流

BBS论坛就应运而生了

在此BBS论坛上

人们可以对计算机领域或者其他方面提出自己遇到的问题和见解

即发表相关问题的主题

来得到其他相关学界人士的解答

自己也可以去浏览和解答其他人不同程度的问题

从而达到相互学习和交流的目的

开发BBS论坛系统的目的是提供一个供用户交流的平台

为广大用户提供交流经验、探讨问题的网上社区

系统提供给用户注册和登录的功能

只有注册的用户登录后才能够发表和回复主题等操作来表达自己的思想和见解

未登录者只能浏览主题信息

因此

BBS论坛系统拥有的发表主题和回复等功能成了论坛的最大特色

使得本论坛深受人们的青睐

本论坛系统是基于Struts+jstl+Spring+hibernate+lucene实现的

它具有使用方便、操作简单、运行稳定、安全可靠等特点

关键词:BBS论坛

Struts

Spring

Hibernate

BBS forums of the department of computer science

Abstract

With the rapid development of information technology

more and more advanced means of communication between people. Today

QQ

message boards

blog

micro-letters and other people communicate with each other

the main way to exchange information. In addition

in order to easy for people to study the issue in a particular area of ??expertise views and more in-depth exchanges

BBS forums came into being. BBS forum

people can put forward the field of computer or other problems encountered and insights

issued a related theme

to get the answers of other academics

they would be to browse and to answer other people to varying degrees problems in order to achieve the purpose of mutual learning and exchange.

The development of BBS forum system aims to provide a platform for users to exchange

exchange experiences

to provide customers with problems addressed in the online community. The system provides functionality to the user registration and login. Only registered users to log on before we can publish and reply to the topic and other actions to express their ideas and opinions

not logged in can only browse the subject information. BBS forum system has released the topics and reply to other functions became the most significant feature of the forum makes the forum by the people of all ages.

This forum system is based on Struts + jstl + Spring + Hibernate + Lucene and it has easy to use

simple to operate

stable

safe and reliable.

Keywords: BBS forum

Struts

Spring

Hibernate.

目 录

第1章 绪 论 1

第2章 系统分析 2

2.1 需求分析 2

2.2 可行性分析 2

第3章 系统总体设计 4

3.1 系统目标 4

3.2 系统功能结构 4

3.2.1 前台功能结构 4

3.2.2 后台功能结构 5

3.3 系统流程图 5

3.4 系统开发环境 7

3.4.1 开发环境 7

3.4.2 系统平台体系结构的选择 7

3.4.3 主要技术 8

3.4.4 Mysql数据库 9

3.4.5 JDBC技术 10

第4章 数据库设计 11

4.1 数据库分析 11

4.2 数据库概念设计 11

4.3 数据库逻辑设计 17

第5章 系统主要模块设计与实现 21

5.1 前台设计 21

5.1.1 前台页面主要部分的设计与实现 21

5.1.2 查看首页面的论坛类别及回复 22

5.1.3 站内主题搜索页面 23

5.1.4 查看根贴和回复贴内容 24

结 论 27

致 谢 28

参考文献 29

第1章 绪 论

随着互联网日益深入社会生活

BBS开发技术已趋于成熟

BBS论坛的功能不断增加并且完善

Java技术所实现的"一次编写

到处运行"的优势很明显

继承这一优势的web开发技术越来越受到人们的注视

BBS作为一种流行的交流论坛平台

进行内外信息交流

已成为大众的广泛需要

为了进行更好的交流

用户想就自己的专业和爱好能和其他的人士进行及时专业的交流

这样以来我们就可以在网络这个虚拟的空间中更方便地实现交流

作为计算机系的我们

当然也就缺少不了专业学术的交流以及其他方面的探讨

所以开发这么一款计算机系BBS论坛也就成了必要的事

从而使得我们达到学术更好的交流与分享

Java是当今最流行的开发语言之一

具有简单、跨平台等很多优势

JSP则是Java在Internet/Intranet Web上的重要应用技术

得到了广泛的支持和承认

它可以和各种Java技术完好地结合在一起

从而实现非常复杂的应用

本网站主要使用Struts+jstl+Spring+hibernate+lucene技术在MyEclipse系统开发的 从而创建一个更为稳定

高效

安全的运行环境

本系统主要基于Struts+jstl+Spring+hibernate+lucene技术开发

计算机系BBS论坛系统最基本的功能首先是发表主题

此外

为了记录主题的发表者和回复者的相关信息

系统还需要提供用户注册和登录的功能

只有注册的用户登录后才能够发表和回复主题

未登录者只能浏览主题信息

本BBS论坛具备以下各大功能:用户注册、用户登录、站内主题搜索、显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看公告、查看头条、查看查看自己发表的帖子、查看根帖内容、发表帖子、回复帖子、Blog链接、后台管理、论坛类别管理、版面管理等

设计BBS论坛系统所要考虑的问题最重要的是合理设计系统的架构

提高系统的可扩展性

代码部分尽量做到封装

算法设计简单合理

保证程序的逻辑结构清晰

从而使程序具有较好的可读性和可移植性

有利于其他的设计者对程序的阅读和系统本身代码的维护和安全性;力求对数据库设计合理、操作安全与稳定

尽量避免数据库操作异常带来的严重损失

综合以上各个方面的因素

才能使得系统的综合性能提高

使得系统高效安全稳定的运行

带给用户更多方便

第2章 系统分析

2.1 需求分析

1.功能需求分析

开发计算机系BBS论坛系统的目的主要是提供给计算机系人士一个供交流专业学术的平台

为广大用户提供交流经验、探讨问题的社区

用户可以阅读他人关于某个主题的看法

也可以将自己的想法毫无保留地贴到公告栏中

这样

通过BBS论坛

广大用户的思想观点即会体现出来

可充分反应最广大人民群众的集体意见

因此

BBS论坛系统最基本的功能首先是发表主题

其次是其他人员根据主题发表自己的看法

此外

为了记录主题的发表者和主题回复者等的相关信息

系统还需要提供用户注册和登录的功能

只有注册的用户登录后才能够发表和回复主题以及其他的相关操作

而未登录者只能浏览主题信息

不能进行相关的操作

根据用户的需求及以上的分析

本BBS论坛需要具备以下主要的前台功能和后台功能

(1)系统前台功能:显示各论坛类别及版面、显示用户信息、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、站内主题搜索、查看根帖内容、Blog链接、用户注册、用户登录、发表帖子、回复帖子等

(2)系统后台功能:进入后台、论坛类别管理、版面管理、角色管理、会员管理、主题搜索管理、博客链接管理

2.2 可行性分析

可行性分析是在系统调查的基础上

针对新系统的开发是否具备必要性和可能性

对新系统的开发从技术、经济、社会的方面进行分析和研究

以避免投资失误

保证新系统的开发成功

可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决 从而综合性的提高系统的整体性能和系统的运行效率

1.技术可行性

技术上的可行性分析主要分析技术条件能否顺利完成开发工作

硬、软件能否满足开发者的需要等

该BBS论坛管理系统采用了流行的JSP语言和当前新兴的Browser/Server(浏览器/服务器)模式进行开发

三层的B/S体系结构具有许多传统Client/Server(客户机/服务器)体系结构不具备的优点 而且又紧密的结合了Internet/Intranet(国际互联网/企业内部互联网)技术

是技术发展的大势所趋

它把应用系统带入了一个崭新的发展时代

数据库服务器选用mysql5.5数据库

它能够批量处理数据

同时保持数据的完整性并提供许多高级管理功能

它的灵活性、安全性和易用性为数据库编程提供了良好的条件

因此

系统的软件开发平台已成熟可行

硬件方面

科技飞速发展的今天

硬件更新的速度越来越快

容量越来越大

可靠性越来越高

价格越来越低

其硬件平台能满足此系统的需要

2.经济可行性

主要是对项目的经济效益进行评估

本系统模拟的是提供一个供用户交流的平台

为广大用户提供交流经验、探讨问题的社区

但实际只是用于个人的毕业设计

只是模拟

也不存在资金的流动

故在经济上是可行的

3.社会可行性

随着Internet技术的快速发展

BBS论坛已成为人们彼此沟通、交流信息的主要方式

在论坛上

人们可以对计算机领域或者其他领域提出自己遇到的问题和自己的看法

随后

论坛上的其他人会根据自己的学识、经验发表意见或提出解决问题的方法

本BBS论坛不但拉近了人们之间的距离

而且它早已成为人们网上生活的必备交流工具

所以说计算机系BBS论坛对当今计算机相关专业人士是相当重要的

第3章 系统总体设计

3.1 系统目标

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

尤其是对像BBS论坛这样的数据流量特别大的网络管理系统

必须要满足使用方便、操作灵活等设计需求

本系统在设计时应满足以下几个目标:

1.采用人机对话的操作方式

界面设计美观友好

信息查看灵活、方便、快捷、准确

数据存储安全可靠

2.全面展示系统内所有分类的帖子

并进行分页显示

3.为用户提供一个方便、快捷的主题信息查看功能

4.实现在线发表帖子

5.提供登录模块

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

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

7.对用户输入的数据

系统进行严格的数据检验

尽可能排除人为的错误

8.系统最大限度地实现了易维护性和易操作性

9.系统运行稳定安全可靠

3.2 系统功能结构

3.2.1 前台功能结构

用户访问论坛首页面后

可进行查看版面下根贴信息、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根贴信息、用户注册等功能

用户在此BBS论坛中通过注册成为该网站的真正用户并成功登录系统后

可进行发表帖子、回复帖子、查看自己发表的帖子等操作

前台功能结构图如图3.1所示

图3.1 计算机系BBS前台功能结构图

3.2.2 后台功能结构

若用户的权限为管理员

则可进入后台

可进行论坛类别的管理、版面管理和用户管理的操作 后台功能结构图如图3.2所示

图3.2 计算机系BBS后台功能结构图

3.3 系统流程图

1.计算机系BBS论坛的系统后台流程图如图3.3所示

图3.3 BBS论坛系统后台流程图

2.计算机系BBS论坛的系统前台流程图如图3.4所示

图3.4 计算机系BBS论坛的系统前台流程图

3.4 系统开发环境

3.4.1 开发环境

在开发此论坛的时候

需要具备下面的软件和开发环境

服务器端:

● 操作系统:Windows XP

● Web服务器:Tomcat 6.0

● Java开发包:JDK 1.6

● 数据库:Mysql5.5

● 集成开发工具:Myeclipse9.0

● 浏览器:IE8.0

客户端:

● 浏览器:IE8.0

3.4.2 系统平台体系结构的选择

在应用开发领域中

目前系统平台的体系结构主要有两种

即C/S(Client/Server)结构和B/S(Brower/Server)结构

C/S结构

即大家熟知的客户机和服务器结构

它是软件系统体系结构

通过它可以充分利用两端硬件环境的优势

将任务合理分配到Client端和Server端来实现

降低了系统的通讯开销

B/S结构

即浏览器和服务器结构

它是一次性到位的开发

能实现不同的人员

从不同的地点

以不同的接入方式(比如LAN

WAN等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限

服务器数据库也很安全

特别是在JAVA这样的跨平台语言出现之后

B/S架构管理软件更是方便、快捷、高效

传统的C/S体系结构虽然采用的是开放模式

但这只是系统开发一级的开放性

在特定的应用中无论是Client端还是Server端都还需要特定的软件支持

由于没能提供用户真正期望的开放环境

C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件

加之产品的更新换代十分快

已经很难适应百台电脑以上局域网用户同时使用

而且代价高

效率低

B/S结构

是随着Internet技术的兴起

对C/S结构的一种变化或者改进的结构

在这种结构下

用户界面完全通过web浏览器实现

一部分事务逻辑在前端实现

但是主要事务逻辑在服务器端实现

用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能

并节约了开发成本

是一种全新的软件系统构造技术

因此本系统采用了B/S结构

3.4.3 主要技术

1.Struts

struts是开源软件

使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间 如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用

struts是一个不错的选择

2.Jstl

JSTL(JSP Standard Tag Library

JSP标准标签库)是一个不断完善的开放源代码的JSP标签库

是由apache的jakarta小组来维护的

JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上

如tomcat 4.x

在JSP 2.0中也是作为标准支持的

在应用程序服务器之间提供了一致的接口

最大程度地提高了WEB应用在各应用服务器之间的移植

简化了JSP和WEB应用程序的开发

3.Spring

spring在英文里有春天、弹簧、跳跃和泉眼的意思

Spring 也表示是一个开源框架

是为了解决企业应用程序开发复 杂性由Rod Johnson创建的

框架的主要优势之一就是其分层架构

分层架构允许使用者选择使用哪一个组件

同时为 J2EE 应用程序开发提供集成的框架

Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情

然而

Spring的用途不仅限于服务器端的 开发

从简单性、可测试性和松耦合的角度而言

任何Java应用都可以从Spring中受益

4.Hibernate

Hibernate是一个开放源代码的对象关系映射框架

它对JDBC进行了非常轻量级的对象封装

使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库

Hibernate可以应用在任何使用JDBC的场合

既可以在Java的客户端程序使用

也可以在Servlet/JSP的Web应用中使用

最具革命意义的是

Hibernate可以在应用EJB的J2EE架构中取代CMP

完成数据持久化的重任

5.Lucene

Lucene是apache软件基金会4 jakarta项目组的一个子项目

是一个开放源代码的全文检索引擎工具包

即它不是一个完整的全文检索引擎

而是一个全文检索引擎的架构

提供了完整的 查询引擎和索引引擎

部分文本分析引擎(英文与德文两种西方语言)

Lucene的目的是为软件开发人员提供一个简单易用的工具包

以方便的在目标系统中 实现全文检索的功能

或者是以此为基础建立起完整的全文检索引擎

3.4.4 Mysql数据库

MySQL是一个小型关系型数据库管理系统

开发者为瑞典MySQL AB公司

在2008年1月16号被Sun公司收购

而2009年

SUN又被Oracle收购

MySQL是一种关联数据库管理系统

关联数据库将数据 保存在不同的表中

而不是将所有数据放在一个大仓库内

这样就增加了速度并提高了灵活性

MySQL的SQL"结构化查询语言"

SQL是用于访问数据库的最常用标准化语言

MySQL软件采用了GPL(GNU通用公共许可证)

由于其体积小、速度快、总体拥有成本低

尤其是开放源码这一特点

许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库

本系统使用C和C++编写

并使用了多种编译器进行测试

保证源代码的可移植性

支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

为多种编程语言提供了API

这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等 支持多线程

充分利用CPU资源

优化的SQL查询算法

有效地提高查询速度

既能够作为一个单独的应用程序应用在客户端服务器网络环境中

也能够作为一个库而嵌入到其他的软件中提供多语言支持

常见的编码如中文的GB 2312、BIG5

日文的Shift_JIS等都可以用作数据表名和数据列名

提供TCP/IP、ODBC和JDBC等多种数据库连接途径

提供用于管理、检查、优化数据库操作的管理工具

可以处理拥有上千万条记录的大型数据库

支持多种存储引擎

所以本BBS论坛系统也选择Mysql数据库

3.4.5 JDBC技术

数据库通信接口采用JDBC(Java Database Connectivity

Java数据库连接)

JDBC是一组API

定义了用来访问数据库源的标准JAVA类库

使用这种类库可以使用一种标准的方法、方便地访问数据库资源

JDBC是用于执行SQL语句的Java应用程序接口

由一组用Java语言编写的类与接口组成

在JSP中将使用JDBC来访问数据库

JDBC是一种规范

它让各数据库厂商为Java程序员提供标准的数据库访问类和接口

这样就使得独立于DBMS的Java应用程序的开发工具和产品成为可能

JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统

这样就使得程序员无须对特定的数据库的特点有过多的了解

从而大大简化了和加快了开发过程

一般的Java开发工具都带有JDBC - ODBC桥驱动程序

这样

只要是能够使用ODBC访问的数据库系统

也就能够使用JDBC访问了

有趣的是

不同于ODBC是Open Database Connectivity的简称

JDBC并不是Java Database Connecivity的简称

而是SUN的注册商标

至少官方说法是这样的

JDBC API 为访问不同的数据库提供了一种统一途径

像ODBC一样

JDBC

为开发者屏蔽了一些细节问题

另外

JDBC对数据库的访问也具有平台无关性

第4章 数据库设计

4.1 数据库分析

数据库的设计

在程序的开发中起着至关重要的作用

它往往决定了在后面的开发中进行怎样的程序编码

一个合理、有限的数据库设计可降低程序的复杂性

使程序开发的过程更为容易

本系统是一个中型的供求信息网站

考虑到开发成本、用户信息量客户需求等问题

决定采用Mysql作为项目中的数据库

Mysql 是一种中小型的关系型数据库

它具有很强的数据完整性、可伸缩性、可管理性、可编程性;具有均衡与完备的功能;具有较低的价格与性能比

Mysql数据库可以大容量地存储数据

并对数据进行合理地逻辑布局

应用数据库对象可以对数据进行复杂地操作

Mysql也提供了JDBC编程接口

这样可以非常方便地应用Java来操作数据库

4.2 数据库概念设计

E-R模型是对现实世界的一种抽象

它的主要成分是实体、联系和属性

使用这三种成分

我们可以建立许多应用环境的E-R模型

现在划出本系统所使用的数据库实体

它们分别为主题实体、回复实体、论坛实体、数据信息实体和用户实体 下面将介绍几个关键实体的E-R图

1.博客链接实体

图4.1 博客链接实体E-R图

2.主题类别实体

图4.2 主题类别实体E-R图

3.数据信息实体

图4.3 数据信息实体图

4.异常实体

图4.4 异常实体E-R图

5.论坛实体

图4.5 论坛实体E-R图

6.操作实体

图4.6 操作实体E-R图

7.回复实体

图4.7 回复实体E-R图

8.角色实体

图4.8 角色实体E-R图

9.会员实体

图4.9 会员实体E-R图

10.权限实体

图4.10 权限实体E-R图

11.主题实体

图4.11 主题实体E-R图

12.用户实体

图4.12 用户实体E-R图

13.用户角色实体

图4.13 用户角色实体E-R图

4.3 数据库逻辑设计

根据数据库概念设计

可以创建与实体对应的数据表

本系统中所包含的数据表如图所示

1. jk_bloglink(博客链接表)

Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

title_

varchar(128)

YES

NULL

description_

varchar(255)

YES

NULL

author_

varchar(64)

YES

NULL

url_

varchar(255)

YES

NULL

2.jk_category(主题类别表)

Field

Type

Key

Default

id_

varchar(255)

NO

PRI

NULL

name_

varchar(255)

YES

NULL

order_

int(11)

YES

NULL

3.jk_datadictitem(数据信息表) Field

Type

Null

Key

Default

id_

varchar(45)

NO

PRI

NULL

name_

varchar(128)

YES

NULL

stringValue_

text

YES

NULL

valueType_

varchar(128)

YES

isHibernatePO_

bit(1)

YES

NULL

4.jk_exceptionlog(异常信息表) Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

logTime_

datetime

YES

NULL

comment_

text

YES

NULL

operator_

varchar(45)

YES

NULL

operIpAddr_

varchar(16)

YES

NULL

className_

varchar(255)

YES

NULL

summary_

YES

NULL

detailMessage_

text

YES

NULL

5.jk_forum(论坛信息表)

Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

name_

varchar(255)

YES

NULL

description_

varchar(255)

YES

NULL

order_

int(11)

YES

NULL

categoryId_

varchar(255)

YES

NULL

topicCount_

int(11)

YES

NULL

articleCount_

int(11)

YES

NULL

lastTopicId_

varchar(255)

YES

NULL

lastArticlePostTime_

datetime

YES

NULL

6.jk_operationlog(操作信息表) Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

logTime_

datetime

YES

NULL

comment_

text

YES

NULL

operator_

varchar(45)

YES

NULL

operIpAddr_

varchar(46)

YES

NULL

entityType_

varchar(128)

YES

NULL

entityId_

tinyblob

YES

NULL

typeName_

varchar(32)

YES

NULL

7.jk_reply(回复信息表)

Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

title_

varchar(255)

YES

NULL

content_

text

YES

NULL

authorId_

varchar(45)

NULL

postTime_

datetime

YES

NULL

ipAddr_

varchar(16)

YES

NULL

deleted_

bit(1)

YES

NULL

floor_

int(11)

YES

NULL

topicId_

varchar(255)

YES

NULL

8.jk_role(角色信息表)

Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

name_

varchar(64)

YES

description_

varchar(255)

YES

NULL

defaultForNewUser_

bit(1)

YES

NULL

9.jk_role_systemprivileges(会员信息表) Field

Type

Null

Key

Default

roleId_

varchar(255)

NO

PRI

NULL

systemPrivilegeId_

varchar(255)

NO

PRI

NULL

10.jk_systemprivilege(权限信息表) Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

name_

varchar(255)

YES

action_

varchar(64)

YES

NULL

resource_

varchar(64)

YES

NULL

11.jk_topic(主题信息表) Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

title_

varchar(255)

YES

NULL

content_

text

YES

NULL

authorId_

varchar(45)

YES

NULL

postTime_

datetime

YES

NULL

ipAddr_

varchar(16) YES

NULL

deleted_

bit(1)

YES

NULL

type_

varchar(255) YES

NULL

forumId_

varchar(255) YES

NULL

summary_

text

YES

NULL

viewCount_ int(11)

YES

NULL

replyCount_ int(11)

YES

NULL

lastReplyId_ varchar(255) YES

NULL

lastArticlePostTime_ datetime

YES

NULL

nextFloor_

int(11)

YES

NULL

12.jk_user(用户信息表)

Field

Type

Null

Key

Default

id_

varchar(45)

NO

PRI

NULL

loginName_

varchar(128)

YES

NULL

password_

varchar(128)

YES

NULL

email_

varchar(128)

YES

NULL

nickname_

varchar(128)

YES

NULL

gender_

varchar(16)

YES

NULL

registrationTime_

Datetime

NULL

lastVisitTime_

Datetime

YES

NULL

lastVisitIpAddr_

varchar(15)

YES

NULL

topicCount_

int(11)

YES

NULL

articleCount_

int(11)

YES

NULL

locked_

bit(1)

YES

NULL

autoLoginAuthKey_

varchar(128)

YES

NULL

13.jk_user_role(用户角色信息表)

Field

Type

Null

Key

Default

userId_

varchar(45)

NO

PRI

roleId_

varchar(255)

NO

PRI

NULL

第5章 系统主要模块设计与实现

5.1 前台设计

5.1.1 前台页面主要部分的设计与实现

本系统中所有页面都采用了页面框架

该前台页面分为4个区域:页头、功能栏、内容显示区

网站前台首页面的运行结果如图5.1所示

图5.1 前台首页面的运行结果

实现前台页面的设计需要分别创建实现各区域的JSP文件

主要由show_left.jsp

show_right.jsp

show_top.jsp组成了show_main.jsp主页面

实现页面显示主要代码如下:

查看版面

*" framespacing="0" id="fs1">

*" id="fs2">

/>

5.1.2 查看首页面的论坛类别及回复

该页面的实现效果是:分类后的主题列表

以及对主题的回复页面的显示

主要由show_left.jsp

saveUI.jsp组成

如图5.2所示

图5.2 回复及论坛类别显示效果图

实现该页面的主要代码如下:

5.1.3 站内主题搜索页面

该显示实现的是搜索站内所发表的帖子

由result.jsp页面组成如图5.3所示

图5.3 搜索主题页面显示效果图

实现该页面的主要代码如下:

公告贴type:"公告" =

|

头条贴type:"头条"

|

精华贴type:"精华"

|

零回复replyCount:0

|

最近一周postTime:[${lastWeek} ${today}]

|

最近一天postTime:[${yesterday} ${today}]

5.1.4 查看根贴和回复贴内容

该显示方式实现的效果图是:显示后台管理的主要模块信息

本页面主要由left.jsp

right.jsp

top.jsp

top2.jsp

middle.jsp组成了index.jsp

如图5.4所示

TO TO

图5.4 后台管理页面效果图

实现该页面的主要代码如下:

后台管理

20px

*" border="0" id="framesetRows">

17px

*" border="0" id="framesetCols">

核心实现类有:

BlogLinkManageAction.java

CategoryManageAction.java

ForumManageAction.java

PortalManageAction.java

ReplyManageAction.java

RoleManageAction.java

TopicManageAction.java

TopicSearchManageAction.java

UserManageAction.java

结 论

我所选论文题目是"计算机系BBS论坛系统"

在这几个月的开发过程中

老师辛勤的指导

同学们不断的帮助

最终"计算机系BBS论坛系统" 毕业设计顺利完成

在系统开发期间

我通过各种渠道开始准备工作-通过网络、图书馆搜集相关学术论文、核心期刊、书籍等 搜集了一大堆与毕业设计相关的资料

在老师的指导下

摒弃了一些无关紧要的内容

保留了有参考价值的资料作为备用

在这段时期

我开始对所搜集的资料进行整理、分析研究

并制作了课题研究的方案及网站设计规划

开题报告完成之后随即进入紧张而有序的写作及网站创作之中

根据取其精华

去其糟粕的原则

我撰写了初稿

并加入了自己新颖的见解

我多次与指导老师电话或短信以及利用E-mail进行沟通

听取老师好的建议

积极采纳

经过查看大量的资料

认真对网站进行规划和几个月来辛勤的创作

终于完成了计算机系BBS论坛的开发

开发此BBS论坛的目的是提供一个供用户交流的平台

为广大用户提供交流经验、探讨问题的社区

因此

本论坛系统最基本的功能首先是发表主题

其次是其他人员根据主题发表自己的看法

此外

为了记录主题的发表者和主题的回复者信息

系统还提供用户注册和登录的功能

只有注册的用户登录后才能够发表和回复主题

未登录者只能浏览主题信息

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

在论坛系统的整个设计过程中

需要注意的是力求界面友好、简洁

易于操作

代码逻辑合理

系统架构合理以及确保系统的稳定性

毕业设计顺利完成

首先我要感谢我的指导老师以及周围同学的帮助

在你们的指导与帮助下

我的开发能力和水平逐渐提高

我会更进一步

致 谢

经过几个月的努力

毕业设计"计算机系BBS论坛"已经接近尾声

在系统开发期间

我基本上由一个java初学者变成了现在稍微有点经验的开发者

这都主要感谢我的指导老师和给我支持和帮助的同学们

如果没有指导老师的督促指导

以及同学们的支持

顺利完成这个设计就没那么顺利了

在本系统开发期间

我常与我的指导老师进行联系来咨询自己不懂的问题

指导老师凭借自己很多年来积累的经验给我细心指导

我也常常向身旁的同学们求教

他们也常常牺牲自己宝贵的时间来和我一起探讨很多问题

指导老师治学严谨和科学研究的精神也是我永远学习的榜样

并将积极影响我今后的学习和工作

同学们积极热情的态度也时时刻刻感染着我

感谢你们提出宝贵的意见和建议

使我顺利完成毕业设计

感谢我的母校-天水师范学院

是母校给我们提供了良好的学习环境;感谢那些曾给我授过课的每一位老师 是你们的悉心教导使我受益匪浅;感谢每一位支持我的同学

是你们让我的专业知识再一次得到提升;谢谢你们

参考文献

[1]霍尔

布朗.Servlet与JSP核心编程.清华大学出版社.2009

[2] 李宁.Java Web开发技术大全.清华大学出版社.2009

[3] 尼格瑞诺.JavaScript基础教程.人民邮电出版社.2012

[4] 温谦.HTML+CSS从入门到精通.人民邮电出版社.2008

[5] 卜炟.零基础学Struts

机械工业出版社.2009

[6] 刘伟

张利国.Hibernate开发与实战.电子工业出版社.2009

[7] 明日科技.Spring应用开发完全手册.人民邮电出版社.2007

[8] 王建国

王建英. Struts+Spring+Hibernate框架及应用开发.清华大学出版社.2011

[9] 达尔文.Java经典实例.中国电力出版社.2009

[10] 潘凯华

李慧

刘欣.MySql快速入门.清华大学出版社.2012

[11] 麦肯德利斯

哈彻.Lucene实战.人民邮电出版社.2011

[12] Bruce Eckel.Java编程思想.机械工业出版社.2007

[13] Donny.JSP与网站开发编程实战.科学出版社.2001

[14] 王薇

杜威.Java程序设计与实现.华中科技大学出版社.2010

[15] 耿祥义

张跃平.JSP实用教程.清华大学出版社.2007

[16] 孙卫琴.Tomcat与Java Web开发技术详解.电子工业出版社.2009

??

??

??

??

物理与信息科学学院2012届毕业论文

29

人生最大的幸福,是发现自己爱的人正好也爱着自己。

毕业论文

题 目 计算机系BBS论坛

学 院 物理与信息科学学院

姓 名 ______

专 业 计算机科学与技术

学 号 281030131 _

指导教师 _____

提交日期 ________

原创性声明

本人郑重声明:本人所呈交的论文是在指导教师的指导下独立进行研究所取得的成果 学位论文中凡是引用他人已经发表或未经发表的成果、数据、观点等均已明确注明出处 除文中已经注明引用的内容外

不包含任何其他个人或集体已经发表或撰写过的科研成果

本声明的法律责任由本人承担

论文作者签名: 年 月 日

论文指导教师签名:

计算机系BBS论坛

摘要

随着信息技术的快速发展

人与人之间交流方式越来越先进

在当今时代

QQ、留言板、博客、微信等已成为人们彼此沟通、交流信息的主要方式

此外

为了方便人们在某一专业领域探讨问题、发表意见和更深入的交流

BBS论坛就应运而生了

在此BBS论坛上

人们可以对计算机领域或者其他方面提出自己遇到的问题和见解

即发表相关问题的主题

来得到其他相关学界人士的解答

自己也可以去浏览和解答其他人不同程度的问题

从而达到相互学习和交流的目的

开发BBS论坛系统的目的是提供一个供用户交流的平台

为广大用户提供交流经验、探讨问题的网上社区

系统提供给用户注册和登录的功能

只有注册的用户登录后才能够发表和回复主题等操作来表达自己的思想和见解

未登录者只能浏览主题信息

因此

BBS论坛系统拥有的发表主题和回复等功能成了论坛的最大特色

使得本论坛深受人们的青睐

本论坛系统是基于Struts+jstl+Spring+hibernate+lucene实现的

它具有使用方便、操作简单、运行稳定、安全可靠等特点

关键词:BBS论坛

Struts

Spring

Hibernate

BBS forums of the department of computer science

Abstract

With the rapid development of information technology

more and more advanced means of communication between people. Today

QQ

message boards

blog

micro-letters and other people communicate with each other

the main way to exchange information. In addition

in order to easy for people to study the issue in a particular area of ??expertise views and more in-depth exchanges

BBS forums came into being. BBS forum

people can put forward the field of computer or other problems encountered and insights

issued a related theme

to get the answers of other academics

they would be to browse and to answer other people to varying degrees problems in order to achieve the purpose of mutual learning and exchange.

The development of BBS forum system aims to provide a platform for users to exchange

exchange experiences

to provide customers with problems addressed in the online community. The system provides functionality to the user registration and login. Only registered users to log on before we can publish and reply to the topic and other actions to express their ideas and opinions

not logged in can only browse the subject information. BBS forum system has released the topics and reply to other functions became the most significant feature of the forum makes the forum by the people of all ages.

This forum system is based on Struts + jstl + Spring + Hibernate + Lucene and it has easy to use

simple to operate

stable

safe and reliable.

Keywords: BBS forum

Struts

Spring

Hibernate.

目 录

第1章 绪 论 1

第2章 系统分析 2

2.1 需求分析 2

2.2 可行性分析 2

第3章 系统总体设计 4

3.1 系统目标 4

3.2 系统功能结构 4

3.2.1 前台功能结构 4

3.2.2 后台功能结构 5

3.3 系统流程图 5

3.4 系统开发环境 7

3.4.1 开发环境 7

3.4.2 系统平台体系结构的选择 7

3.4.3 主要技术 8

3.4.4 Mysql数据库 9

3.4.5 JDBC技术 10

第4章 数据库设计 11

4.1 数据库分析 11

4.2 数据库概念设计 11

4.3 数据库逻辑设计 17

第5章 系统主要模块设计与实现 21

5.1 前台设计 21

5.1.1 前台页面主要部分的设计与实现 21

5.1.2 查看首页面的论坛类别及回复 22

5.1.3 站内主题搜索页面 23

5.1.4 查看根贴和回复贴内容 24

结 论 27

致 谢 28

参考文献 29

第1章 绪 论

随着互联网日益深入社会生活

BBS开发技术已趋于成熟

BBS论坛的功能不断增加并且完善

Java技术所实现的"一次编写

到处运行"的优势很明显

继承这一优势的web开发技术越来越受到人们的注视

BBS作为一种流行的交流论坛平台

进行内外信息交流

已成为大众的广泛需要

为了进行更好的交流

用户想就自己的专业和爱好能和其他的人士进行及时专业的交流

这样以来我们就可以在网络这个虚拟的空间中更方便地实现交流

作为计算机系的我们

当然也就缺少不了专业学术的交流以及其他方面的探讨

所以开发这么一款计算机系BBS论坛也就成了必要的事

从而使得我们达到学术更好的交流与分享

Java是当今最流行的开发语言之一

具有简单、跨平台等很多优势

JSP则是Java在Internet/Intranet Web上的重要应用技术

得到了广泛的支持和承认

它可以和各种Java技术完好地结合在一起

从而实现非常复杂的应用

本网站主要使用Struts+jstl+Spring+hibernate+lucene技术在MyEclipse系统开发的 从而创建一个更为稳定

高效

安全的运行环境

本系统主要基于Struts+jstl+Spring+hibernate+lucene技术开发

计算机系BBS论坛系统最基本的功能首先是发表主题

此外

为了记录主题的发表者和回复者的相关信息

系统还需要提供用户注册和登录的功能

只有注册的用户登录后才能够发表和回复主题

未登录者只能浏览主题信息

本BBS论坛具备以下各大功能:用户注册、用户登录、站内主题搜索、显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看公告、查看头条、查看查看自己发表的帖子、查看根帖内容、发表帖子、回复帖子、Blog链接、后台管理、论坛类别管理、版面管理等

设计BBS论坛系统所要考虑的问题最重要的是合理设计系统的架构

提高系统的可扩展性

代码部分尽量做到封装

算法设计简单合理

保证程序的逻辑结构清晰

从而使程序具有较好的可读性和可移植性

有利于其他的设计者对程序的阅读和系统本身代码的维护和安全性;力求对数据库设计合理、操作安全与稳定

尽量避免数据库操作异常带来的严重损失

综合以上各个方面的因素

才能使得系统的综合性能提高

使得系统高效安全稳定的运行

带给用户更多方便

第2章 系统分析

2.1 需求分析

1.功能需求分析

开发计算机系BBS论坛系统的目的主要是提供给计算机系人士一个供交流专业学术的平台

为广大用户提供交流经验、探讨问题的社区

用户可以阅读他人关于某个主题的看法

也可以将自己的想法毫无保留地贴到公告栏中

这样

通过BBS论坛

广大用户的思想观点即会体现出来

可充分反应最广大人民群众的集体意见

因此

BBS论坛系统最基本的功能首先是发表主题

其次是其他人员根据主题发表自己的看法

此外

为了记录主题的发表者和主题回复者等的相关信息

系统还需要提供用户注册和登录的功能

只有注册的用户登录后才能够发表和回复主题以及其他的相关操作

而未登录者只能浏览主题信息

不能进行相关的操作

根据用户的需求及以上的分析

本BBS论坛需要具备以下主要的前台功能和后台功能

(1)系统前台功能:显示各论坛类别及版面、显示用户信息、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、站内主题搜索、查看根帖内容、Blog链接、用户注册、用户登录、发表帖子、回复帖子等

(2)系统后台功能:进入后台、论坛类别管理、版面管理、角色管理、会员管理、主题搜索管理、博客链接管理

2.2 可行性分析

可行性分析是在系统调查的基础上

针对新系统的开发是否具备必要性和可能性

对新系统的开发从技术、经济、社会的方面进行分析和研究

以避免投资失误

保证新系统的开发成功

可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决 从而综合性的提高系统的整体性能和系统的运行效率

1.技术可行性

技术上的可行性分析主要分析技术条件能否顺利完成开发工作

硬、软件能否满足开发者的需要等

该BBS论坛管理系统采用了流行的JSP语言和当前新兴的Browser/Server(浏览器/服务器)模式进行开发

三层的B/S体系结构具有许多传统Client/Server(客户机/服务器)体系结构不具备的优点 而且又紧密的结合了Internet/Intranet(国际互联网/企业内部互联网)技术

是技术发展的大势所趋

它把应用系统带入了一个崭新的发展时代

数据库服务器选用mysql5.5数据库

它能够批量处理数据

同时保持数据的完整性并提供许多高级管理功能

它的灵活性、安全性和易用性为数据库编程提供了良好的条件

因此

系统的软件开发平台已成熟可行

硬件方面

科技飞速发展的今天

硬件更新的速度越来越快

容量越来越大

可靠性越来越高

价格越来越低

其硬件平台能满足此系统的需要

2.经济可行性

主要是对项目的经济效益进行评估

本系统模拟的是提供一个供用户交流的平台

为广大用户提供交流经验、探讨问题的社区

但实际只是用于个人的毕业设计

只是模拟

也不存在资金的流动

故在经济上是可行的

3.社会可行性

随着Internet技术的快速发展

BBS论坛已成为人们彼此沟通、交流信息的主要方式

在论坛上

人们可以对计算机领域或者其他领域提出自己遇到的问题和自己的看法

随后

论坛上的其他人会根据自己的学识、经验发表意见或提出解决问题的方法

本BBS论坛不但拉近了人们之间的距离

而且它早已成为人们网上生活的必备交流工具

所以说计算机系BBS论坛对当今计算机相关专业人士是相当重要的

第3章 系统总体设计

3.1 系统目标

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

尤其是对像BBS论坛这样的数据流量特别大的网络管理系统

必须要满足使用方便、操作灵活等设计需求

本系统在设计时应满足以下几个目标:

1.采用人机对话的操作方式

界面设计美观友好

信息查看灵活、方便、快捷、准确

数据存储安全可靠

2.全面展示系统内所有分类的帖子

并进行分页显示

3.为用户提供一个方便、快捷的主题信息查看功能

4.实现在线发表帖子

5.提供登录模块

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

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

7.对用户输入的数据

系统进行严格的数据检验

尽可能排除人为的错误

8.系统最大限度地实现了易维护性和易操作性

9.系统运行稳定安全可靠

3.2 系统功能结构

3.2.1 前台功能结构

用户访问论坛首页面后

可进行查看版面下根贴信息、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根贴信息、用户注册等功能

用户在此BBS论坛中通过注册成为该网站的真正用户并成功登录系统后

可进行发表帖子、回复帖子、查看自己发表的帖子等操作

前台功能结构图如图3.1所示

图3.1 计算机系BBS前台功能结构图

3.2.2 后台功能结构

若用户的权限为管理员

则可进入后台

可进行论坛类别的管理、版面管理和用户管理的操作 后台功能结构图如图3.2所示

图3.2 计算机系BBS后台功能结构图

3.3 系统流程图

1.计算机系BBS论坛的系统后台流程图如图3.3所示

图3.3 BBS论坛系统后台流程图

2.计算机系BBS论坛的系统前台流程图如图3.4所示

图3.4 计算机系BBS论坛的系统前台流程图

3.4 系统开发环境

3.4.1 开发环境

在开发此论坛的时候

需要具备下面的软件和开发环境

服务器端:

● 操作系统:Windows XP

● Web服务器:Tomcat 6.0

● Java开发包:JDK 1.6

● 数据库:Mysql5.5

● 集成开发工具:Myeclipse9.0

● 浏览器:IE8.0

客户端:

● 浏览器:IE8.0

3.4.2 系统平台体系结构的选择

在应用开发领域中

目前系统平台的体系结构主要有两种

即C/S(Client/Server)结构和B/S(Brower/Server)结构

C/S结构

即大家熟知的客户机和服务器结构

它是软件系统体系结构

通过它可以充分利用两端硬件环境的优势

将任务合理分配到Client端和Server端来实现

降低了系统的通讯开销

B/S结构

即浏览器和服务器结构

它是一次性到位的开发

能实现不同的人员

从不同的地点

以不同的接入方式(比如LAN

WAN等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限

服务器数据库也很安全

特别是在JAVA这样的跨平台语言出现之后

B/S架构管理软件更是方便、快捷、高效

传统的C/S体系结构虽然采用的是开放模式

但这只是系统开发一级的开放性

在特定的应用中无论是Client端还是Server端都还需要特定的软件支持

由于没能提供用户真正期望的开放环境

C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件

加之产品的更新换代十分快

已经很难适应百台电脑以上局域网用户同时使用

而且代价高

效率低

B/S结构

是随着Internet技术的兴起

对C/S结构的一种变化或者改进的结构

在这种结构下

用户界面完全通过web浏览器实现

一部分事务逻辑在前端实现

但是主要事务逻辑在服务器端实现

用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能

并节约了开发成本

是一种全新的软件系统构造技术

因此本系统采用了B/S结构

3.4.3 主要技术

1.Struts

struts是开源软件

使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间 如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用

struts是一个不错的选择

2.Jstl

JSTL(JSP Standard Tag Library

JSP标准标签库)是一个不断完善的开放源代码的JSP标签库

是由apache的jakarta小组来维护的

JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上

如tomcat 4.x

在JSP 2.0中也是作为标准支持的

在应用程序服务器之间提供了一致的接口

最大程度地提高了WEB应用在各应用服务器之间的移植

简化了JSP和WEB应用程序的开发

3.Spring

spring在英文里有春天、弹簧、跳跃和泉眼的意思

Spring 也表示是一个开源框架

是为了解决企业应用程序开发复 杂性由Rod Johnson创建的

框架的主要优势之一就是其分层架构

分层架构允许使用者选择使用哪一个组件

同时为 J2EE 应用程序开发提供集成的框架

Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情

然而

Spring的用途不仅限于服务器端的 开发

从简单性、可测试性和松耦合的角度而言

任何Java应用都可以从Spring中受益

4.Hibernate

Hibernate是一个开放源代码的对象关系映射框架

它对JDBC进行了非常轻量级的对象封装

使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库

Hibernate可以应用在任何使用JDBC的场合

既可以在Java的客户端程序使用

也可以在Servlet/JSP的Web应用中使用

最具革命意义的是

Hibernate可以在应用EJB的J2EE架构中取代CMP

完成数据持久化的重任

5.Lucene

Lucene是apache软件基金会4 jakarta项目组的一个子项目

是一个开放源代码的全文检索引擎工具包

即它不是一个完整的全文检索引擎

而是一个全文检索引擎的架构

提供了完整的 查询引擎和索引引擎

部分文本分析引擎(英文与德文两种西方语言)

Lucene的目的是为软件开发人员提供一个简单易用的工具包

以方便的在目标系统中 实现全文检索的功能

或者是以此为基础建立起完整的全文检索引擎

3.4.4 Mysql数据库

MySQL是一个小型关系型数据库管理系统

开发者为瑞典MySQL AB公司

在2008年1月16号被Sun公司收购

而2009年

SUN又被Oracle收购

MySQL是一种关联数据库管理系统

关联数据库将数据 保存在不同的表中

而不是将所有数据放在一个大仓库内

这样就增加了速度并提高了灵活性

MySQL的SQL"结构化查询语言"

SQL是用于访问数据库的最常用标准化语言

MySQL软件采用了GPL(GNU通用公共许可证)

由于其体积小、速度快、总体拥有成本低

尤其是开放源码这一特点

许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库

本系统使用C和C++编写

并使用了多种编译器进行测试

保证源代码的可移植性

支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

为多种编程语言提供了API

这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等 支持多线程

充分利用CPU资源

优化的SQL查询算法

有效地提高查询速度

既能够作为一个单独的应用程序应用在客户端服务器网络环境中

也能够作为一个库而嵌入到其他的软件中提供多语言支持

常见的编码如中文的GB 2312、BIG5

日文的Shift_JIS等都可以用作数据表名和数据列名

提供TCP/IP、ODBC和JDBC等多种数据库连接途径

提供用于管理、检查、优化数据库操作的管理工具

可以处理拥有上千万条记录的大型数据库

支持多种存储引擎

所以本BBS论坛系统也选择Mysql数据库

3.4.5 JDBC技术

数据库通信接口采用JDBC(Java Database Connectivity

Java数据库连接)

JDBC是一组API

定义了用来访问数据库源的标准JAVA类库

使用这种类库可以使用一种标准的方法、方便地访问数据库资源

JDBC是用于执行SQL语句的Java应用程序接口

由一组用Java语言编写的类与接口组成

在JSP中将使用JDBC来访问数据库

JDBC是一种规范

它让各数据库厂商为Java程序员提供标准的数据库访问类和接口

这样就使得独立于DBMS的Java应用程序的开发工具和产品成为可能

JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统

这样就使得程序员无须对特定的数据库的特点有过多的了解

从而大大简化了和加快了开发过程

一般的Java开发工具都带有JDBC - ODBC桥驱动程序

这样

只要是能够使用ODBC访问的数据库系统

也就能够使用JDBC访问了

有趣的是

不同于ODBC是Open Database Connectivity的简称

JDBC并不是Java Database Connecivity的简称

而是SUN的注册商标

至少官方说法是这样的

JDBC API 为访问不同的数据库提供了一种统一途径

像ODBC一样

JDBC

为开发者屏蔽了一些细节问题

另外

JDBC对数据库的访问也具有平台无关性

第4章 数据库设计

4.1 数据库分析

数据库的设计

在程序的开发中起着至关重要的作用

它往往决定了在后面的开发中进行怎样的程序编码

一个合理、有限的数据库设计可降低程序的复杂性

使程序开发的过程更为容易

本系统是一个中型的供求信息网站

考虑到开发成本、用户信息量客户需求等问题

决定采用Mysql作为项目中的数据库

Mysql 是一种中小型的关系型数据库

它具有很强的数据完整性、可伸缩性、可管理性、可编程性;具有均衡与完备的功能;具有较低的价格与性能比

Mysql数据库可以大容量地存储数据

并对数据进行合理地逻辑布局

应用数据库对象可以对数据进行复杂地操作

Mysql也提供了JDBC编程接口

这样可以非常方便地应用Java来操作数据库

4.2 数据库概念设计

E-R模型是对现实世界的一种抽象

它的主要成分是实体、联系和属性

使用这三种成分

我们可以建立许多应用环境的E-R模型

现在划出本系统所使用的数据库实体

它们分别为主题实体、回复实体、论坛实体、数据信息实体和用户实体 下面将介绍几个关键实体的E-R图

1.博客链接实体

图4.1 博客链接实体E-R图

2.主题类别实体

图4.2 主题类别实体E-R图

3.数据信息实体

图4.3 数据信息实体图

4.异常实体

图4.4 异常实体E-R图

5.论坛实体

图4.5 论坛实体E-R图

6.操作实体

图4.6 操作实体E-R图

7.回复实体

图4.7 回复实体E-R图

8.角色实体

图4.8 角色实体E-R图

9.会员实体

图4.9 会员实体E-R图

10.权限实体

图4.10 权限实体E-R图

11.主题实体

图4.11 主题实体E-R图

12.用户实体

图4.12 用户实体E-R图

13.用户角色实体

图4.13 用户角色实体E-R图

4.3 数据库逻辑设计

根据数据库概念设计

可以创建与实体对应的数据表

本系统中所包含的数据表如图所示

1. jk_bloglink(博客链接表)

Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

title_

varchar(128)

YES

NULL

description_

varchar(255)

YES

NULL

author_

varchar(64)

YES

NULL

url_

varchar(255)

YES

NULL

2.jk_category(主题类别表)

Field

Type

Key

Default

id_

varchar(255)

NO

PRI

NULL

name_

varchar(255)

YES

NULL

order_

int(11)

YES

NULL

3.jk_datadictitem(数据信息表) Field

Type

Null

Key

Default

id_

varchar(45)

NO

PRI

NULL

name_

varchar(128)

YES

NULL

stringValue_

text

YES

NULL

valueType_

varchar(128)

YES

isHibernatePO_

bit(1)

YES

NULL

4.jk_exceptionlog(异常信息表) Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

logTime_

datetime

YES

NULL

comment_

text

YES

NULL

operator_

varchar(45)

YES

NULL

operIpAddr_

varchar(16)

YES

NULL

className_

varchar(255)

YES

NULL

summary_

YES

NULL

detailMessage_

text

YES

NULL

5.jk_forum(论坛信息表)

Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

name_

varchar(255)

YES

NULL

description_

varchar(255)

YES

NULL

order_

int(11)

YES

NULL

categoryId_

varchar(255)

YES

NULL

topicCount_

int(11)

YES

NULL

articleCount_

int(11)

YES

NULL

lastTopicId_

varchar(255)

YES

NULL

lastArticlePostTime_

datetime

YES

NULL

6.jk_operationlog(操作信息表) Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

logTime_

datetime

YES

NULL

comment_

text

YES

NULL

operator_

varchar(45)

YES

NULL

operIpAddr_

varchar(46)

YES

NULL

entityType_

varchar(128)

YES

NULL

entityId_

tinyblob

YES

NULL

typeName_

varchar(32)

YES

NULL

7.jk_reply(回复信息表)

Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

title_

varchar(255)

YES

NULL

content_

text

YES

NULL

authorId_

varchar(45)

NULL

postTime_

datetime

YES

NULL

ipAddr_

varchar(16)

YES

NULL

deleted_

bit(1)

YES

NULL

floor_

int(11)

YES

NULL

topicId_

varchar(255)

YES

NULL

8.jk_role(角色信息表)

Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

name_

varchar(64)

YES

description_

varchar(255)

YES

NULL

defaultForNewUser_

bit(1)

YES

NULL

9.jk_role_systemprivileges(会员信息表) Field

Type

Null

Key

Default

roleId_

varchar(255)

NO

PRI

NULL

systemPrivilegeId_

varchar(255)

NO

PRI

NULL

10.jk_systemprivilege(权限信息表) Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

name_

varchar(255)

YES

action_

varchar(64)

YES

NULL

resource_

varchar(64)

YES

NULL

11.jk_topic(主题信息表) Field

Type

Null

Key

Default

id_

varchar(255)

NO

PRI

NULL

title_

varchar(255)

YES

NULL

content_

text

YES

NULL

authorId_

varchar(45)

YES

NULL

postTime_

datetime

YES

NULL

ipAddr_

varchar(16) YES

NULL

deleted_

bit(1)

YES

NULL

type_

varchar(255) YES

NULL

forumId_

varchar(255) YES

NULL

summary_

text

YES

NULL

viewCount_ int(11)

YES

NULL

replyCount_ int(11)

YES

NULL

lastReplyId_ varchar(255) YES

NULL

lastArticlePostTime_ datetime

YES

NULL

nextFloor_

int(11)

YES

NULL

12.jk_user(用户信息表)

Field

Type

Null

Key

Default

id_

varchar(45)

NO

PRI

NULL

loginName_

varchar(128)

YES

NULL

password_

varchar(128)

YES

NULL

email_

varchar(128)

YES

NULL

nickname_

varchar(128)

YES

NULL

gender_

varchar(16)

YES

NULL

registrationTime_

Datetime

NULL

lastVisitTime_

Datetime

YES

NULL

lastVisitIpAddr_

varchar(15)

YES

NULL

topicCount_

int(11)

YES

NULL

articleCount_

int(11)

YES

NULL

locked_

bit(1)

YES

NULL

autoLoginAuthKey_

varchar(128)

YES

NULL

13.jk_user_role(用户角色信息表)

Field

Type

Null

Key

Default

userId_

varchar(45)

NO

PRI

roleId_

varchar(255)

NO

PRI

NULL

第5章 系统主要模块设计与实现

5.1 前台设计

5.1.1 前台页面主要部分的设计与实现

本系统中所有页面都采用了页面框架

该前台页面分为4个区域:页头、功能栏、内容显示区

网站前台首页面的运行结果如图5.1所示

图5.1 前台首页面的运行结果

实现前台页面的设计需要分别创建实现各区域的JSP文件

主要由show_left.jsp

show_right.jsp

show_top.jsp组成了show_main.jsp主页面

实现页面显示主要代码如下:

查看版面

*" framespacing="0" id="fs1">

*" id="fs2">

/>

5.1.2 查看首页面的论坛类别及回复

该页面的实现效果是:分类后的主题列表

以及对主题的回复页面的显示

主要由show_left.jsp

saveUI.jsp组成

如图5.2所示

图5.2 回复及论坛类别显示效果图

实现该页面的主要代码如下:

5.1.3 站内主题搜索页面

该显示实现的是搜索站内所发表的帖子

由result.jsp页面组成如图5.3所示

图5.3 搜索主题页面显示效果图

实现该页面的主要代码如下:

公告贴type:"公告" =

|

头条贴type:"头条"

|

精华贴type:"精华"

|

零回复replyCount:0

|

最近一周postTime:[${lastWeek} ${today}]

|

最近一天postTime:[${yesterday} ${today}]

5.1.4 查看根贴和回复贴内容

该显示方式实现的效果图是:显示后台管理的主要模块信息

本页面主要由left.jsp

right.jsp

top.jsp

top2.jsp

middle.jsp组成了index.jsp

如图5.4所示

TO TO

图5.4 后台管理页面效果图

实现该页面的主要代码如下:

后台管理

20px

*" border="0" id="framesetRows">

17px

*" border="0" id="framesetCols">

核心实现类有:

BlogLinkManageAction.java

CategoryManageAction.java

ForumManageAction.java

PortalManageAction.java

ReplyManageAction.java

RoleManageAction.java

TopicManageAction.java

TopicSearchManageAction.java

UserManageAction.java

结 论

我所选论文题目是"计算机系BBS论坛系统"

在这几个月的开发过程中

老师辛勤的指导

同学们不断的帮助

最终"计算机系BBS论坛系统" 毕业设计顺利完成

在系统开发期间

我通过各种渠道开始准备工作-通过网络、图书馆搜集相关学术论文、核心期刊、书籍等 搜集了一大堆与毕业设计相关的资料

在老师的指导下

摒弃了一些无关紧要的内容

保留了有参考价值的资料作为备用

在这段时期

我开始对所搜集的资料进行整理、分析研究

并制作了课题研究的方案及网站设计规划

开题报告完成之后随即进入紧张而有序的写作及网站创作之中

根据取其精华

去其糟粕的原则

我撰写了初稿

并加入了自己新颖的见解

我多次与指导老师电话或短信以及利用E-mail进行沟通

听取老师好的建议

积极采纳

经过查看大量的资料

认真对网站进行规划和几个月来辛勤的创作

终于完成了计算机系BBS论坛的开发

开发此BBS论坛的目的是提供一个供用户交流的平台

为广大用户提供交流经验、探讨问题的社区

因此

本论坛系统最基本的功能首先是发表主题

其次是其他人员根据主题发表自己的看法

此外

为了记录主题的发表者和主题的回复者信息

系统还提供用户注册和登录的功能

只有注册的用户登录后才能够发表和回复主题

未登录者只能浏览主题信息

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

在论坛系统的整个设计过程中

需要注意的是力求界面友好、简洁

易于操作

代码逻辑合理

系统架构合理以及确保系统的稳定性

毕业设计顺利完成

首先我要感谢我的指导老师以及周围同学的帮助

在你们的指导与帮助下

我的开发能力和水平逐渐提高

我会更进一步

致 谢

经过几个月的努力

毕业设计"计算机系BBS论坛"已经接近尾声

在系统开发期间

我基本上由一个java初学者变成了现在稍微有点经验的开发者

这都主要感谢我的指导老师和给我支持和帮助的同学们

如果没有指导老师的督促指导

以及同学们的支持

顺利完成这个设计就没那么顺利了

在本系统开发期间

我常与我的指导老师进行联系来咨询自己不懂的问题

指导老师凭借自己很多年来积累的经验给我细心指导

我也常常向身旁的同学们求教

他们也常常牺牲自己宝贵的时间来和我一起探讨很多问题

指导老师治学严谨和科学研究的精神也是我永远学习的榜样

并将积极影响我今后的学习和工作

同学们积极热情的态度也时时刻刻感染着我

感谢你们提出宝贵的意见和建议

使我顺利完成毕业设计

感谢我的母校-天水师范学院

是母校给我们提供了良好的学习环境;感谢那些曾给我授过课的每一位老师 是你们的悉心教导使我受益匪浅;感谢每一位支持我的同学

是你们让我的专业知识再一次得到提升;谢谢你们

参考文献

[1]霍尔

布朗.Servlet与JSP核心编程.清华大学出版社.2009

[2] 李宁.Java Web开发技术大全.清华大学出版社.2009

[3] 尼格瑞诺.JavaScript基础教程.人民邮电出版社.2012

[4] 温谦.HTML+CSS从入门到精通.人民邮电出版社.2008

[5] 卜炟.零基础学Struts

机械工业出版社.2009

[6] 刘伟

张利国.Hibernate开发与实战.电子工业出版社.2009

[7] 明日科技.Spring应用开发完全手册.人民邮电出版社.2007

[8] 王建国

王建英. Struts+Spring+Hibernate框架及应用开发.清华大学出版社.2011

[9] 达尔文.Java经典实例.中国电力出版社.2009

[10] 潘凯华

李慧

刘欣.MySql快速入门.清华大学出版社.2012

[11] 麦肯德利斯

哈彻.Lucene实战.人民邮电出版社.2011

[12] Bruce Eckel.Java编程思想.机械工业出版社.2007

[13] Donny.JSP与网站开发编程实战.科学出版社.2001

[14] 王薇

杜威.Java程序设计与实现.华中科技大学出版社.2010

[15] 耿祥义

张跃平.JSP实用教程.清华大学出版社.2007

[16] 孙卫琴.Tomcat与Java Web开发技术详解.电子工业出版社.2009

??

??

??

??

物理与信息科学学院2012届毕业论文

29


相关内容

  • 服装网页论坛大全
  • 服装论坛大全 服装论坛大全...平时整理的,大小通有 (国际的不全,欢迎各位跟贴补充哈 ^n^!!) 穿针引线服装论坛 http://www.eeff.net/ 我行我素时尚网: http://www.mrol.net/ 服装设计网论坛 http://bbs.topsjs.com 中国服装设计网论坛 ...

  • BBS论坛毕业论文
  • XX职业技术学院 毕业设计 设计题目 系别年级专业学姓号名 指导教师职称副教授 2012年3月28日 目录 BBS论坛........................................................................................... ...

  • BBS论坛管理总结
  • BBS 论坛管理总结 队长:许光明(0967020424) 队员:张云(0967020454) 队员:张小波(0967020449) 许光明篇 经过近2个月整个小组的努,已经基本完成了BBS 管理论坛系统的开发和设计. 完成了用户模块, 帖子模块和后台管理模块的开发, 并基本实现了前期所制定的功能. ...

  • 电子工程师必备60网站
  • 资料(PDF芯片)查询类网站: IC/PDF查询     http://www.21icsearch.com 电子元器件查询 http://www.chinadz.com/ IC/PDF查询     http://www.ic37.com/ 器件手册       http://www.datashe ...

  • 论坛活动方案
  • 活动方案之一: 活动主题: 疯狂上传 疯狂拿奖 2013装饰界设计大PK 活动时间: 2013年9月1日--2013年9月30日 活动理念: 本次活动以设计师相互学习提高技能为理念,重在通过此活动让设计师有一个展现自我.提高自我的平台.同时,为论坛提高人气. 活动规则: 1. 人数不限,凡爱好装饰设 ...

  • 生态农业休闲基地报告表
  • 建设项目基本情况 1 更多环评报告书.工程师考试资料来自--环境技术论坛:http://bbs.cnjlc.com 2 更多环评报告书.工程师考试资料来自--环境技术论坛:http://bbs.cnjlc.com 3 更多环评报告书.工程师考试资料来自--环境技术论坛:http://bbs.cnjl ...

  • 拾荒老人的傲骨
  • 拾荒老人的傲骨_原创力量_腾讯论坛[登录] 产品博客 | 意见反馈 | 帮助 首页 | 版面大全 版面 原创力量 最近访问及收藏版面 没有访问足迹和收藏 腾讯论坛 > 新闻论坛 > 原创力量 > 原创力量 > 拾荒老人的傲骨页码,1/94拾荒老人的傲骨[1147回复 / 98 ...

  • 网络编辑工作安排
  • 网络编辑工作: (1)网站自身文章不少于2000,每天站内更新文章量不少于网站总量的1%,均分配, 直至收录上万.(保证每天固定时间更新) (2)每天维护个人博客更新,需高质量文章为基础,每天高质量文章保证1-2篇. (3)每天原创文章不的少于1-2篇. (4)每个礼拜专题至少保证在1个,每月专题至 ...

  • 房屋买卖知识大汇总
  • 房屋买卖知识大汇总 房子有几个支撑价格区别的硬指标:楼层.电梯.朝向.结构.通风采光.是否有黑房.房龄.居住环境.物业.水电气.装修.顶楼,比如8楼的8楼(简称8/8),或9/9,无电梯,一梯多户(6-8户) 楼道黑.楼梯陡.厨房厕所窗户朝走道.朝向不好(东或西) .有黑房.房龄老(90年代初80年 ...