BBS论坛设计毕业设计
班级XXXX
学号XXXXX 毕业论文(设计)
题目BBS论坛系统
姓名xxx
系部信息工程系
专业软件开发
指导教师XXX 职称助教
日期
江苏畜牧兽医职业技术学院毕业论文(设计)
BBS论坛系统
陈新
【摘要】当今,随着网络的迅速发展,制作BBS论坛的技术和方法也越来越多。本文主要讲述利用Java Web的相关技术来制作一个简单论坛。通过实际制作,实现了BBS论坛系统应有的一些基本功能,如:登陆功能,通过在登陆界面输入用户名和密码来实现会员的登录,用户只有登录成功了才能进行一系列的操作;注册功能,用户首次登陆,需要先注册,注册时需要用户填写个人信息。除此之外,还有浏览帖子、发表帖子、回复贴子等等功能。制作本论坛所用的前台软件是MyEclipse,后台数据库是MySQL,运行时所用的服务器是Tomcat,综合运用了HTML、JSP以及JavaScript语言。
全文先对用到的软件进行了简单的介绍,然后依次对系统的应用进行需求分析、总体设计、详细设计;最后简要介绍了系统的发布和测试。
【关键词】BBS论坛;JSP技术;登陆;注册;浏览贴子;发表帖子;回复贴子。
1 概况
当前形势下,BBS论坛种类繁多,通过BBS可随时取得国际最新的软件及信息,也可以通过BBS来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS来刊登一些“征友”、“廉价转让”及“公司产品”等启事。只要您拥有1台计算机、1只调制解调器和1条电话线,就能够进入这个“超时代”的领域。
1.1 BBS历史背景
BBS的英文全称是Bulletin Board System,翻译为中文就是“电子公告板”。BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS 才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了
1
BBS论坛系统
很大的扩充。
BBS最初是为了给计算机爱好者提供一个互相交流的地方。70年代后期,计算机用户数目很少且用户之间相距很远。因此,BBS(当时全世界一共不到一百个站点)提供了一个简单方便的交流方式,用户通过BBS可以交换软件和信息。到了今天,BBS的用户才扩展到各行各业,花样非常多。
1.2 BBS制作目的
BBS论坛是一种比较好的交流平台,他能方便人们进行即时在线交流,发表各种信息,实现网络资源的共享。而且,也能促使人们敞开心扉去学习知识、追求进步,以至于能更好的利用网络资源。
鉴于BBS的这些优点,又加之制作BBS的一些基本知识我曾学习过,如《Java程序设计》、《JSP网页制作》以及《MyEclipse6.0基础教程》这些书我都看过或自学过。考虑到个人喜好,所以最后我决定选择Java Web开发——BBS论坛制作,这个题目作为我毕业论文,同时也能积累一点开发Java小项目的经验,达到锻炼自己在这方面能力的目的。
1.3 BBS制作的可行性
随着计算机软件的迅速发展,BBS的界面效果越来越美观,功能、作用和范围也得到了迅速扩大。与此同时,制作BBS论坛的方法和所用的软件种类也越来越多了。当前比较流行的,一个是基于JSP网页技术,一个是基于https://www.360docs.net/doc/1413017772.html,网页技术,还有一个是基于PHP网页技术。
而在这里,我将采用基于JSP网页技术的方法进行简单的BBS论坛制作。我所用的开发软件是MyEclipse6.5,它是一款可以做基础Java项目开发的工具;JDK1.6,当前进行Java开发的最新版本;数据库是MySQL,它是一款当前比较流行的进行中小量数据开发的中小型数据库;服务器是Tomcat5.5,它也是一款当前比较流行的软件,主要用于网络服务器的开发。这些东西对一个搞Java开发的人来说应该是很普遍的。因此,无论在技术还是软件上都应该可以实现的。
1.4 BBS制作的局限性
此次BBS论坛制作的界面效果比较粗糙,功能也不是很强大,但幸好一些基本的功能都还有,比如,用户(或管理员)登陆,发表新的帖子,查看已存在的帖子,回复别人发表的帖子(也叫跟帖)以及管理员删除垃圾帖子或着垃圾的跟帖等等。但是像一些高级功能,比如,搜寻或查找帖子的功能,
2
江苏畜牧兽医职业技术学院毕业论文(设计)
3 上传图片或文件的功能,个人空间的功能等。由于本人所学知识以及能力地限制,并没能将其实现。
2 相关软件及开发环境的选择 2.1硬件环境与软件环境要求
服务器端
硬件 处理器:Intel P4或更好
内存:1G 或更大
硬盘剩余空间:2G 或更大
软件 Microsoft Windows XP 或更高版本
JDK1.60或更高版本 MyEclipse5.5或更高版本
MySQL5.0或更高版本
Tomcat5.5或更高版本
Microsoft IE6.0浏览器或更高版本
客户机端
硬件
一般联网的计算机均可 软件
Microsoft Windows XP 或更高版本 Microsoft IE 6.0或更高版本
2.2制作工具
JDK1.6用于Java 程序的解释执行,MyEclipse5.5提供了一个良好的开发界面,MySQL5.0用于数据库的连接,Tomcat5.5 Web 服务器用于运行此项目。
3 应用需求分析
作为一个BBS 论坛,它应该具有BBS 所有的一些基本功能,包括:用户登陆功能,用户取回密码功能,用户浏览帖子的功能以及用户发表、回复、修改和删除帖子的功能等。接下来,我将详细阐述一下这些功能。
3.1用户登录和注册功能
进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“注册”按钮即可进入注册界面,注册完成后返回登录界面。然后,在对应的地方分别输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。
BBS 论坛系统
4
注意:若用户名(或者密码)为空时,点击了“登录”按钮,则系统会弹出一个对话框提示你用户名(或密码)为空,请重新输入,点击对话框的“确定”按钮,即可重新回到登录界面。
注册界面如下所示:
图3-1
3.2用户帖子的浏览
当用户登录成功后便进入该页面,在该页面可以浏览他人已经发表的主
题帖子,
图3-2
3.2.1帖子的总览 在主题页面中主要有两部分组成,一是用户的个人信息,再就是他人已经发表的主题帖子,每个帖子都包含了一些简单信息:主题、作者和时间。主题有下划线,那是以为对它进行了链接,鼠标单击主题便进入了下一页面
江苏畜牧兽医职业技术学院毕业论文(设计)
5
——该帖的详细内容页面。
3.2.2查看特定帖的详细信息
如上所述,单击主题便进入该帖的详细内容页面。里面主要包含了该帖的详细内容和他人对此帖的回复,点击“回复帖子”便可回复此贴。
图3-3
3.3用户帖子的发布
用户成功登陆后,可以进行一些操作,如浏览帖子、发表帖子等。
3.3.1帖子的发布
登陆成功进入主题页面后,点击“发表话题”按钮后,便可进入发表帖
子的界面。在该页面中填写完信息,点击“提交”即可。
图3-4
4 系统总体设计
4.1系统结构设计
BBS 论坛系统
6 本BBS 论坛系统共分为三大功能模块:
(1) 登陆管理功能系统;
(2) 注册功能系统;
(3) 找回密码功能系统。
登陆管理功能系统,又包括四个子模块:单纯的用户登录模块,用户发表帖子模块,用户回复他人帖子模块和用户删除自己所发表的帖子模块。
4.1.1各个页面的功能
有两个页面用于基本功能的实现,被其它页面所调用: 页面名称 主要功能
用于实现基本功能 Opendata.jsp 打开数据库链接
Convert.jsp
用于字符的转换 其余的页面如下表所示:
各个模块 页面名称 页面功能
开始登陆的界面 Login.html 系统启动时的首页
登录管理
功能系统 Enter.jsp
用于判断用户名和密码是否正
确
MainForm.jsp
登陆成功后转入该页面 TOPIC.jsp
浏览主题帖子的页面,在这可以查看各类帖子 SaveNewTitle.jsp 将新发表的帖子存入数据库表
TOPIC 中
Detail.jsp 用于显示帖子的内容及回复该
帖的内容
SaveRevert.jsp 将回复内容存入数据库表
Reply 中
注册功能系统 Register.jsp
该界面用于新用户注册 SaveRegister.jsp 保存新用户注册信息到数据库
表User 中
4.2数据库设计
根据本BBS 论坛功能的要求以及功能模块的划分,本信息数据库可存放在三个表中,它们是,用户信息数据库表User 、发表的帖子的数据库表TOPIC
江苏畜牧兽医职业技术学院毕业论文(设计)
7
和回复的帖子的数据库表Reply ,数据库表的具体设计如下所示:
4.2.1用户信息表User
表名:User
用户信息表User 包括六个字段:即,UID (用户的标识符)、UNAME (用户名)、UPASS (用户密码)等。
表的内容如下:
4.2.2存储帖子所有的信息表TOPIC
表名:TOPIC
信息表TOPIC 包括七个字段:即,TITLE (帖子的主题)、CONTENT (帖子的内容)、PUBLISHTIME (发帖的时间)、UID (帖子的标识)等。 表的内容如下:
4.2.3存储回复帖子的信息表REPL Y
表名:REPLY
信息表REPLY 包括七个字段:即,CONTENT (回帖的内容)、PUBLISHTIME (回帖的时间)、REPLYID (所回复的主贴的标识符)等。 表的内容如下:
BBS 论坛系统
8
5 系统设计的部分介绍
5.1建立数据库及数据库表
建立一个数据库Test 和三个数据库表(USER 、TOPIC 和REPLY )。 首先在MyEclipse5.5软件里配置MySQL5.0,配置完成后在MyEclipse 界面里建立名为“Test ”的数据库,然后再建立三个数据库表(USER 、TOPIC 和REPLY )。
创建表user :
stmt.executeUpdate("create table user(id int not null auto_increment," +
"username varchar(20) unique," +
"password varchar(20) not null," +
"sex varchar(8) not null,"+
"age varchar(4) ,"+
"birth varchar(20) not null,"+
"telephone varchar(12),"+
"email varchar(40) not null," +
"primary key (id))");
创建表TOPIC :
stmt.executeUpdate("create table TOPIC(name char(20) not null,"+
"email char(40) not null,"+
"subject char(60) not null,"+
"content text not null,"+
"time char(40),"+
"username char(20),"+
"id int not null auto_increment,primary key (id))");
创建表reply :
stmt.executeUpdate("create table reply(name char(20) not null,"+
"content text not null,"+
"time char(40),reply int,"+
"id int not null auto_increment,"+
"primary key (id))");
5.2用户登录功能的实现
江苏畜牧兽医职业技术学院毕业论文(设计)
通过Login.html界面传递参数username 和password 给Enter.jsp界面,然后查询数据库,判断用户名和密码是否正确。若判断正确则为用户建立一
个session,并进入了用户主界面。
<%
String username = request.getParameter("username");//参数传递,用户名
String password = request.getParameter("password");//参数传递,密码
PreparedStatement pstmt = null;// 数据库表达式
sql = "select * from User where username = ? and password= ?";
// SQL语句
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if (rs.next()) {//
request.getSession(true);//创建session
//保存登录用户到session中
session.putValue("username", username);
session.putValue("password", password);
session.putValue("userIP", request.getRemoteAddr());
session.putValue("enter", "true");
//登录成功主题页面
response.sendRedirect("MainForm.jsp");
} else
response.sendRedirect("login.html");//登陆失败转向登录页面%>
5.3新用户注册功能的实现
SaveRegister.jsp用于保存新用户的信息,这些信息是由Register.jsp页面传递而来,首先判断用户名是否已被注册过了,若被注册过则提示已注册。
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String age = request.getParameter("age");
String year = request.getParameter("year");
String month = request.getParameter("month");
String day = request.getParameter("day");
String telephone = request.getParameter("telephone");
String email = request.getParameter("email");
String msg = null;
username = convert(username);
sql = "select * from user where username='" + username + "'";
rs = stm.executeQuery(sql); //查询数据库
9
BBS论坛系统if (!rs.next()) {//如果不存在
sex = convert(sex);
age = convert(age);
String birth;
birth = year + "年" + month + "月" + day + "日";
sql = "insert into user ( username, password, sex, birth, age, telephone , email )values('"+ username+ "','"+ password + "','"+ sex+
"','" + birth + "','"+ age+ "','"+ telephone + "','"+ email + "')";
stm.executeUpdate(sql); //插入数据库中
msg = "恭喜你,已注册成功!";
response.sendRedirect("login.html");
} else {//如果注册用户已存在
msg = "你所注册的用户已经存在,请你重新注册!";
out.println("
"+ msg + "
");
out.println("");
}
%>
6 论坛的发布测试
MyEclipse 支持发布Web, EJB 和Enterprise Application 项目到任何MyEclipse 支持的服务器上。它支持散包和打包发布。目前来说Tomcat 和JBoss 都是支持散包发布的。
散包发布一般是开发时候来使用,MyEclipse 会把所有的文件按照Java EE 规定的目录结构放在服务器的发布目录下。在这种情况下,MyEclipse 还会自动把修改过的文件,例如JSP 文件,类文件等等复制过去,实现自动同步功能,这时修改了JSP 页面不需要重新发布就能在浏览器里刷新后看到新的结果。这样对开发来说是非常方便的。
6.1本论坛的发布测试分三步完成:
6.1.1散包发布JSPBBS项目
JSPBBS项目文件夹下包含了类库文件及资源文件。其中src文件夹下包含一个Java文件JDBC_BBS.java,用于创建数据库表;WebRoot文件夹下存放了所有的jsp页面,其下的Pictures文件夹存放了页面制作所需的图片。在MyEclipse界面下散包文档结构如图6-1所示:
10
江苏畜牧兽医职业技术学院毕业论文(设计)
11
图6-1
在MyEclipse 的Package Explorer 视图下单击“发布”按钮
进入发布界
面,如图6-2所示:
图6-2
在Project 对应的选项中选择JSPBBS 项目,
然后单击右面的
按
钮进入New Deployment 对话框,如图6-3:
BBS 论坛系统
12
图6-3 在该对话框的Server 对应的选项中选择“
图6-4 最后单击完成发布。
6.1.2启动Tomcat 服务器
在MyEclipse
界面下点击按钮,在下拉菜单中选择Tomcat5.x 服务器并单击“开始”按钮启动服务器,若启动成功显示以下信息:
江苏畜牧兽医职业技术学院毕业论文(设计)
13
图6-5
6.1.3打开IE 浏览器进行测试
JSPBBS 发布完且Tomcat 服务器开启后,再打开IE7.0(或以上版本)浏览器,在其地址栏中输入:http://localhost:8080/JSPBBS (其中localhost 为本地主机IP 地址,8080为Tomcat 服务器端口号,JSPBBS 我项目名称)按回车即可进入BBS 论坛首页登录界面。如图6-6所示:
图6-6
对于第一次登陆的用户来说,首先需要注册,单击“注册”按钮即可进入注册界面,如图6-7:
BBS 论坛系统
14
图6-7
注册成功即可登陆论坛。
江苏畜牧兽医职业技术学院毕业论文(设计)
参考文献
[1]刘长炯.MyEclipse 6 Java 开发中文教程[DK].北京:2007:(99)
[2]郑阿奇.MySQL实用教程[M].北京:电子工业出版社,2009:1-21
[3]孙卫琴.Tomcat与Java Web开发技术详解(第2版)[M].北京:电子工业出版社,2009:110-220
[4]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2002:56-110
[5]谷雨,阎隽,高春蓉.JSP从入门到精通[M].北京:电子工业出版社,2002:100-104
[6]李迎秋,姜仲.JSP实用教程[M].大连:大连理工大学出版社,2007:113-200
[7]赵明昌译.JSP数据库编程指南[M].北京:北京希望电子出版社,2001:37-48
[8]葛蒙,程显峰.JavaScript实践与提高[M].北京:中国电力出版社,2002:108-228
[9]黄嘉辉.Java网络程序设计[M].北京:清华大学出版社,2002:445-470
[10]李绪成.Java Web开发教程——入门与提高篇[M].北京:清华大学出版社,2009:150-198
[11]舒红平.Web数据库编程:Java[M].西安:西安电子科技大学出版社,2006:132-185
15
BBS论坛系统
致谢
本次毕业设计之所以能够如期完成主要是指导老师及时的辅导帮助,为此在此特别感谢老师的谆谆教导。同时也应该感谢这三年以来教过我们课的老师,没有他们给予我们的理论知识以及操作技能,就不可能完成此次毕业设计。
还有感谢这次答辩的评委老师,他们给我指出系统的不足与优点,这些对于我们以后再工作中给予很到帮助。
最后还有感谢同学之间的互帮互助。
16