admin 管理员组文章数量: 887021
2023年12月18日发(作者:sql如何使用索引)
河南XXXXXXXXX学校
毕 业 论 文
题 目
学 号
班 级
专 业
XXXXXXXXXXXX 系 别
XXXXXXX
作者姓名
XXX 完成时间XXXX
指导教师
XXXX 职 称
XXXX
基于JAVA技术的校园论坛系统的开发
摘 要
论坛最早是用来公布股市价格等类信息的,而且只能在苹果计算机上运行。直到个人计算机普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。在Internet飞速发展的今天,校园论坛在Internet应用上的地位也越来越重要。
本文主要介绍了使用JAVA、SQL Server 2005数据库、JDK+Dreamwaver开发环境、JDBC数据访问途径以及HTML网页编程语言开发校园论坛系统的大致流程。本论坛实现了会员注册、会员登录、会员管理、帖子管理、帖子发表、帖子回复、帖子浏览、帖子检索等功能。
关键词: JAVA JSP 数据库 校园论坛
1
目 录
一 引言 ............................................................................................................ 3
二 系统分析 .................................................................................................... 3
(一)需求性分析 ...................................................................................... 3
(二)可行性分析 ...................................................................................... 4
三 系统总体设计 ............................................................................................ 4
(一)项目规划 .......................................................................................... 4
(二)功能模块 .......................................................................................... 5
(三)系统功能结构图 .............................................................................. 6
(四)数据库设计 ...................................................................................... 6
四 校园论坛系统的设计流程 ...................................................................... 11
(一)会员注册流程 ................................................................................ 11
(二)会员登陆流程 ................................................................................ 13
(三)会员管理流程 ................................................................................ 15
(四)论坛版块管理流程 ........................................................................ 18
(五)帖子发表 ........................................................................................ 20
(六)帖子回复 ........................................................................................ 23
(七)帖子管理 ........................................................................................ 25
五 开发小结 .................................................................................................. 28
六 参考文献 .................................................................................................. 29
七 致谢 .......................................................................................................... 30
2
一 引言
随着信息技术的发展,网络的作用越来越多的渗入人们的生活。它在网络飞速发展的今天,Internet成为人们快速获取、发布和传递信息的重要渠道,众所周知,论坛是当今网络中的知名服务之一。它开辟了一块“公共”的空间供所有用户发表和读取信息,允许用户对自身感兴趣的话题展开讨论,从而起到集思广益的作用。本论坛是针对在校大学生的具体需求进行开发,在这里,学生可以通过论坛进行信息查询、信息搜索、信息交流、信息共享,因此具有很好的现实意义。
互联网正在融入我们的生活,影响和改变着我们的生活。网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,校园论坛正是一种供人们进行交流的网络空间。它不受时间和空间的约束,论坛用户可以发表自己的观点,大家一起探讨某个问题。
校园论坛系统是一个注册用户登录后能够浏览论坛上的帖子,并且游客能够注册成为用户。论坛注册会员能够修改自己的资料信息,申请版主,发表帖子,让大家积极参与讨论。论坛管理员能够便于管理论坛,包括浏览游客留言,审核留言,对于不健康或是不利于社会稳定的留言能进行删除操作,会员管理以及论坛版主管理等等。
二 系统分析
(一)需求性分析
校园论坛系统为师生提供一个相互交流、帮助的平台,用以更好的增强本校师生的团结互助精神。整个系统分为会员个人中心管理系统、论坛后台管理系统。个人中心管理系统将实现以下功能:注册、登录、设置密码、找回密码、发表主题、回复、帖子管理等等;后台管理子系统除了具备个人中心管理系统的功能外还将实现以下功能:查看、设置版主 、删除用户。
校园论坛像日常生活中的黑板报一样,电子公告牌按不同的主题,分主题分成很多个布告栏。布告栏的设立的依据是大多数BBS使用者的要求和喜好,使用者可以阅读他人关于某个主题的最新看法,也可以将自己的想法毫无保留地贴到公告栏中。
同样地,别人对你的观点的回应也是很快的。如果需要独下的交流,也可以将想说的话直接发到某个人的电子信箱中,如果想与正在使用的某个人聊天,可以启动聊天程序加人闲谈者的行列。虽然谈话的双方素不相识,却可以亲近地交谈。在BBS里,人们之间的交流打破了空间、3
时间的限制。自BBS建立以来,校园BBS很快地发展了起来。
总体战略目标:通过校园论坛的建立为为本校师生提供一个方便的交流学习、相互帮助的平台,更好的增强本校师生的团结互助精神。
(二)可行性分析
随着计算机的发展进入了一个新的时期,网络技术的发展也日趋完善。我国的网民不断增加。大学生的数量增加,让我们意识到仅仅靠课堂的时间交流学习是不够的,我们还需要一个可以随时沟通和交流的平台。
同时,由于我国经济的发展和信息技术的普及,使网络的操作和使用得以大众化。设计并实现本校园论坛目的主要在于为本校的老师、学生的学习提供简洁的交流界面,让大家有一个很好的交流。因此,在本论坛中注册了的用户,可以通过发贴回帖的方式在论坛中进行交流,以至增强老师与老师之间、同学与同学之间、老师与同学之间在学习,生活等等方面的交流。可以提供学习等论坛公告发布、站内搜索、论坛管理、论坛设置、数据处理、管理操作等功能。
校园论坛系统操作简便,用户通过发贴回帖的方式在论坛中进行交流,结合管理员在线对论坛信息进行实时调整管理,从而成为最为稳定的校园交流平台。
三 系统总体设计
(一)项目规划
校园论坛是一个功能比较完善的论坛系统。整个系统分为会员个人中心管理系统、论坛后台管理系统。
1、个人中心管理系统
个人中心管理系统将实现以下功能:注册、登录、设置密码、找回密码、发表主题、回复、帖子管理等等;
2、后台管理子系统除
后台管理子系统除了具备个人中心管理系统的功能外还将实现以下功能:查看、设置版主 、删除用户。
4
(二)功能模块
校园论坛系统的功能主要包括以下几个方面:本校园论坛详细介绍了论坛设计方案、后台管理功能。它可以提供校园论坛的论坛公告发布、站内发送消息、站内搜索、论坛管理、论坛设置、用户处理、文章管理、管理员操作等功能。本论坛使用JAVA作为主体语言,主要有:用户管理系统、论坛页面管理系统、论坛文章处理系统、管理操作系统等。
与注册用户相关的功能,其实就是论坛前台的主要功能。论坛系统的前台,是用户讨论问题的平台,发帖、浏览、回帖一直惯穿用户整个的前台活动。同时,由于论坛系统的帖子管理是管理员在帖子浏览时进行的,所以编辑帖子、删除帖子、等到功能也安排在前台实现,其他与管理员相关的功能,包括用户管理都是管理员在后台进行的操作。具体功能的分配结果如表所示。
表1 论坛功能和用户权限对应表
对象实体 前后台
帖子 前台
用户 后台
功能方法
浏览列表
查看帖子
发帖
回帖
搜索
编辑(自己所有)
编辑(全部)
删除
转移
注册
注册用户登录
管理员登录
添加
删除
设定权限
用户类型
注册用户
注册用户
注册用户
注册用户
注册用户
注册用户
管理员
管理员
管理员
注册用户
注册用户
管理员
管理员
管理员
管理员
5
(三)系统功能结构图
会员注册
会员登录
会员管理
BBS论坛系统
系统主要功能模块
图1 校园论坛功能结构图
帖子管
理
帖子发表
帖子回复
帖子浏览
帖子检索
(四)数据库设计
本系统数据库采用SQL Server 2005数据库,系统数据库名称为db_SBBS。下面主要介绍数据库描述、数据库列表、逻辑结构设计、物理结构设计。物理结构设计下是对4个主要表内容的介绍。
这4个表分别是用户表(TBL_USER)、板块表(TBL_BOARO)、主题表(TBL_TOPIC )、回复表(TBL_REPLY)。用户表记录的是用户的基本信息。板块表是对各个板块内容记录。主题表是对板块中不同主题内容的记录,也就是不同用户发表的不同内容的帖子。回复录表是对不主题、不同用户的帖子的回复的记录。
1、数据库描述
顶层流程图:
6
用户输入数据校园论坛系统输出数据显示器系统时钟当前日期
图2 数据库顶层流程图
第0层流程图:
登录信息用户注册信息用户注册系统用户登录系统用户权限对板块、帖子的操作用户资料用户表
图3 数据库第0层流程图
第一层流程图:
(1):用户对帖子的操作
帖子内容发帖帖子信息搜索帖子搜索关键字搜索结果主贴表用户帖子内容查看帖子帖子内容回帖表回复帖子修改、删除帖子
图4 数据库第一层流程图
7
(2):管理员对用户的管理:
设置版主用户信息板块表管理员查看用户信息用户信息用户表删除用户信息图5 管理员对用户的管理
2、数据库列表:
表2 数据库列表
序号
1
2
3
4
关系
名称
用户信息
版块信息
主贴信息
回帖信息
描述
注册用户的名称、密码、权限等基本信息
论坛所有版块的名称及父版块及版主ID等信息
主帖ID、名称、及发帖人ID等信息
回帖ID、名称、及发帖人ID、相应主帖的ID等信息
表3 逻辑结构设计
3、逻辑结构设计
序号
1
2
3
关系
名称
用户信息
版块信息
主贴信息
关系的属性
用户ID、名称、密码、性别、注册时间、头像、权限
版块ID、版块名称、父版块ID、生成时间、版主ID
主帖ID、主帖名称、所属版块ID、发帖时间、最后8
4 回帖信息
修改时间、发帖用户
回帖ID、回帖名称、回帖时间、最后修改时间、回帖用户、所对应的主帖ID
4、物理结构设计
表4 用户表
表名
主键
序号
1
2
3
4
5
6
7
TBL_USER
uId
字段名称
uId
uName
uPass
head
regTime
gender
statu
实体名称 用户表
字段说类型
明
用户id
用户名
用户码
用户像
注册间
用户别
用户级
密头时性等int
varchar
varchar
varchar
位数
4
20
20
100
属性
非空
非空
非空
非空
非空
非空
非空
备注
标识
唯一
datatime 8
smallint 2
Varchar
50
表5 版块表
表名
主键
序号
1
2
3
TBL_BOARO
boardId
字段名称
boardId
uName
parentId
实体名称 版块表
字段说明 类型
版块id
版块名
int
varchar
位数
4
50
4
属性
非空
非空
非空
备注
标识
副版块id varchar
9
4 uId 版主id varchar
表6 主题表
4 非空
表名
主键
序号
1
2
3
4
5
6
7
8
TBL_TOPIC
topicId
字段名称
topicId
title
content
publishTime
modifyTime
uId
boardId
views
实体名称 主题表
字段说类型
明
主题id
标题
内容
int
varchar
varchar
位数
4
50
1000
属性
非空
非空
非空
非空
非空
非空
非空
非空
备注
标识
发布时间 datatime 8
修改时间 datatime 8
用户id
版块id
int
int
表7 回复表
4
4
10 浏览次数 int
表名
主键
序号
1
2
3
4
/5
6
7
TBL_REPLY
replyId
字段名称
replyId
title
content
publishTime
modifyTime
uId
topicId
实体名称 回复表
字段说明 类型
回复id
标题
内容
int
varchar
varchar
位数
4
50
1000
属性
非空
非空
非空
非空
非空
非空
非空
备注
标识
发布时间 datatime 8
修改时间 datatime 8
用户id
主题id
int
int
4
4
10
四 校园论坛系统的设计流程
(一)会员注册流程
会员填写个人信息—>信息合法性检验—>会员信息持久化
具体流程图如下:
图6 会员注册流程图
注册页面如下:
11
图7 会员注册页面图
核心代码为:
racterEncoding("GBK");
String uname=ameter("uName");
String upass=ameter("uPass");
UserDao user Dao =new UserDaoImp1();
User user=(User)meUser(uname);
if( user!=null && ss().equals(upass)){
ribute("user",user);
direct("../");
}else{
direct("../");
} //接受JSP传递出来的参数,设置到User中
public int addUser(User user) //定义添加用户方法
{
String name = me();
String pass = ss();
String head = ad();
int sex = x();
Date date = Time();
SimpleDateFormat format = new
SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
12
String dateString = (date);
sqlStr = "insert into TBL_USER values('" + name + "','" +
pass + "','"
+ head + "','" + dateString + "'," + sex +
",'general')";
n(sqlStr);
eSQL(salts, null);
n("添加一个新的用户成功!");
return 1;
}
(二)会员登陆流程
输入用户凭证—> 基于角色授权
具体流程图:
图8 会员登陆流程图
登陆界面如下:
13
图9 会员登陆界面图
核心代码如下:
racterEncoding("GBK");
String uname=ameter("uName");
String upass=ameter("uPass");
UserDao userDao =new UserDaoImp1();
User user=(User)meUser(uname);
//接受JSP传递出来的参数,设置到User中
if( user!=null && ss().equals(upass)){
ribute("user",user);
direct("../");
}else{
direct("../");
}
public User findnameUser(String uName) {
// TODO Auto-generated method stub
User user = new User();// 主题对象
sqlStr = "select * from TBL_USER where uName='" + uName +
"'";
try {
conn = n();
pstmt = eStatement(sqlStr);
rs = eQuery();
14
/* 将结果集中的信息取出保存到list中 */
while (()) {
(("uId"));
me(ing("uName"));
ss(ing("uPass"));
ad(ing("head"));
Time(e("regTime"));
x(("gender"));
}
} catch (Exception e) {
// TODO: handle exception
tackTrace();
} finally {
ll(conn, pstmt, rs);
}
return user;
}
(三)会员管理流程
持有管理员角色角色调整或分配为版主或删除用户
具体流程图:
15
图10 会员管理流程图
管理界面如下:
图11 会员管理界面图
核心代码如下:
racterEncoding("gbk");
SmartUpload sUpload=new SmartUpload();
lize(pageContext);
16
();
("images/head");
String img=es().getFile(0).getFileName();
String name=uest().getParameter("username");
String pwd=uest().getParameter("userpass");
String sex=uest().getParameter("usersex");//接受JSP传递出来的参数,设置到User中
public int delUser(User user) {
int id=();
delReply(id);
delTopic(id);
delBoard(id);
String sql="delete from TBL_USER where uId=?";
conn = n();
try {
pstmt = eStatement(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
(1, ());
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
int num = 0;
try {
num = eUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
return num;
}//删除用户
17
(四)论坛版块管理流程
持有管理员角色 添加、删除、调整、置顶、隐藏版块
具体流程图:
图12 论坛把板块管理流程图
版块管理界面如下:
图13 论坛把板块管理流程图
18
核心代码如下:
racterEncoding("gbk");
Board board=new Board();
BoardDaoImp1 boardDaoImp1=new BoardDaoImp1();
int id=nt(ameter("id"));
int
currentPage=nt(ameter("currentPage"));
board=ards(id);
int num=rd(board); 接受JSP传递出来的参数,设置到Board中
public Map findBoard(int parentId) {
// TODO Auto-generated method stubm
List listMainBoard=new ArrayList();//保存主版块的List
String sql="select * from TBL_BOARD where
parentId="+parentId;
try {
conn=n();
pstmt=eStatement(sql);
rs=eQuery();
while(()){
Board board=new Board();
rdId(("boardId"));
rdName(ing("boardName"));
entId(("parentId"));
(board);
}
} catch (Exception e) {
// TODO: handle exceptio
}//查找版块
19
(五)帖子发表
注册用户选择版块发表主题,主题持久化,具体流程图:
图14
发帖流程图
发帖界面如下:
20
图15
发帖界面图
核心代码如下:
public int addTopic(Topic topic){
int num=0;
conn=n();
sql="insert into tbl_topic values(?,?,?,?,?,?)";
try {
pstmt=eStatement(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
ing(1,le());
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
ing(2,tent());
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss");
21
String pubTime=(new ());
String modifyTime=(new ());
try {
ing(3,pubTime);
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
ing(4,modifyTime);
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
(5,());
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
(6,rdId());
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
num=eUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
if (num>0) {
n("添加成功");
return num;
}
else {
22
return 0;
}
}//添加帖子
(六)帖子回复
用户 针对主题发表回复 回复持久化
具体流程图:
图16
帖子回复流程图
回帖界面如下:
图17
回帖帖界面图
23
核心代码如下:
public int addReply(Reply reply){
int num=0;
sql="insert into TBL_REPLY values(?,?,?,?,?,?)";
conn=n();
try {
pstmt=eStatement(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
ing(1,le());
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
ing(2,tent());
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
SimpleDateFormat dateFormat=new
SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String pubTime=(new Date());
String modifyTime=(new Date());
try {
ing(3,pubTime);
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
ing(4,modifyTime);
} catch (SQLException e) {
24
// TODO Auto-generated catch block
tackTrace();
}
try {
(5,());
} catch (SQLException e1) {
// TODO Auto-generated catch block
tackTrace();
}
try {
(6,icId());
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
try {
num=eUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
if (num>0) {
return num;
}
else {
return 0;
}
}//添加回复
(七)帖子管理
持有管理员或版主角色 转移、置顶、删除等操作
具体流程图:
25
图17
帖子管理流程图
删帖界面如下:
图18
删帖界面图
26
核心代码如下:
public int deleReply(int replyId) {
// TODO Auto-generated method stub
if(replyId!=0){
sql="delete TBL_REPLY where replyId="+replyId;
eSQL(sql, null);
n("成功删除回帖");
return 1;
}
else {
return 0;
}
}//删除帖子
/*
27
五 开发小结
本文设计是采用B/S架构,使用j2se1.5.0_06运行环境、基于JAVA和SQL Server2005数据库服务器而开发的校园论坛系统。本网站具有帖子检索、帖子浏览、帖子回复、帖子发表、帖子管理、会员管理、会员登陆和会员注册等功能。用户只要通过注册就可以进入本论坛发帖,登陆后就可以在本论坛进行各种相应的操作。
在这次网站的开发的过程中我主要担任的是网页设计和文档这一块,这次设计是对我三年大学学习和能力的检测,回想这些日子以来,有过欢乐,有过痛苦,自己在生活的磨炼中也逐渐走向成熟。想想自己正向着自己的目标一步步地迈近,感到十分的欣慰。在这次的毕业设计中,学到了很多东西,在网页设计、数据库设计、编程技术方面有了长足的进步,对系统开发过程、步骤有了比较深刻的认识。当然本次毕业设计的网站由于各种原因存在很多的不足,还有许多地方需要进一步完善
通过做这次毕业设计,让我切实的明白了理论联系上实际并不是一件简单的事。我们平时很少动手操作,这也让我认识到了很多以前没有见到过的问题,让我学到了更多的知识,增强了我动手操作能力、实践能力、发现问题和解决问题能力,为以后的学习、生活、工作积累了经验,打下了一定基础。当然,在学习过程中遇到的不少困难,大多是老师和同学为我耐心的讲解,我还需要多到图书馆去借阅相关书籍,读一些课外资料,或者上网搜索一些资料。使我在有充分理论知识的前提下去增强动手能力。我所具备的知识是远远不够的,以后还要在课下多和老师同学进行交流。
在这次系统开发过程中出现了很多这样那样的问题,以后我会好好纠正这些问题尽量避免这些问题的再次出现。总的来说,我在系统的开发整个过程中取得了一些收获,也得到了一些教训,在今后的学习和工作中避免同样的教训出现,同时多思考,多总结。
28
六 参考文献
[1] 刘竹林:《软件工程与项目管理》,北京师范大学出版社,2008年第一版。
[2] 赵增敏:《JSP动态网站开发》,电子工业出版社.,2008年第一版。
[3] 徐 芳 :《软件测试技术》,机械工业出版社 ,2006年第一版。
[4]弗拉纳根(美):《Javascript权威指南》,东南大学出版社 ,2011年第一版。
[5]冯文惠等:《网页设计使用教程》,人民邮电出版社,2006年第一版。
[6]蔡中民:《SQL Server实用教程》,电子工业出版社,2009年第一版。
[7]邹天思:《JavaScript程序设计》,人民邮电出版社,2009年第一版。
[8]达克特(美)著,王德才等译:《HTML、XHTML、CSS与Javascript入门经典》, 清华大学出版社社,2011年第一版。
[9]曾海:《JavaScript程序设计基础》,人民邮电出版社,2009年第一版。
[10]周涛等:《SQL Server 2005数据库基础应用》,清华大学出版社,2007年第一版。
29
七 致谢
时光荏苒,三年的大学生涯已悄悄逝去,毕业之际,我们的毕业设计也接近了尾声。在论文即将完稿之际,我心中感慨颇多,在河南商业高等专科学校学习这三年时间里,我的老师和同学都给过我很多的帮助、关心和鼓舞,在此,我要深深地表示感谢!
首先,我要深深感谢我的指导老师刘彦楠老师。在日常的学习生活中刘老师给了我很大的帮助;在毕业设计中,刘老师给了我系统的总体思路;在论文的撰写过程中,刘老师对我的论文提出了指导性的意见和建议。这样,我的论文才能够顺利完成。
其次,感谢我的小组组员们。在当今社会一个人的战斗是注定不会打赢的,没有她们的支持和帮助,我们的毕业设计不会如期顺利的完成。虽然在这当中我们有过分歧有过徘徊,但是每次我总能得到她们无私的帮助和中肯的建议。如果没有组员们的齐心协力和辛勤工作这次完成的困难很大。
最后,还要感谢大学三年来所有的领导和老师,为我们打下计算机专业知识的基础;感谢所有的同学们,正是因为有了你们的支持和鼓励,此次毕业设计才会顺利完成。更要要感谢母校,感谢学校为我提供了这次机会,及给予我的帮助。
再一次深深感谢所有曾经帮助过我、关心过我的各位老师、同学和朋友!30
指导教师评语:
论文成绩:
指导教师签名:
年 月 日
论文答辩小组意见:
组长签字:
年 月 日
系审核意见:
主任签章:
年 月 日
31
版权声明:本文标题:基于JAVA技术的校园论坛系统的开发 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702851997h433253.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论