人生最大的幸福,是发现自己爱的人正好也爱着自己。
毕业论文
题 目 计算机系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
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
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