BBS论坛设计毕业设计.doc
《BBS论坛设计毕业设计.doc》由会员分享,可在线阅读,更多相关《BBS论坛设计毕业设计.doc(18页珍藏版)》请在冰点文库上搜索。
班级XXXX
学号XXXXX
毕业论文(设计)
题目BBS论坛系统
姓 名xxx
系 部 信息工程系
专 业 软件开发
指导教师XXX职称助教
日 期
江苏畜牧兽医职业技术学院毕业论文(设计)
BBS论坛系统
陈新
【摘要】当今,随着网络的迅速发展,制作BBS论坛的技术和方法也越来越多。
本文主要讲述利用JavaWeb的相关技术来制作一个简单论坛。
通过实际制作,实现了BBS论坛系统应有的一些基本功能,如:
登陆功能,通过在登陆界面输入用户名和密码来实现会员的登录,用户只有登录成功了才能进行一系列的操作;注册功能,用户首次登陆,需要先注册,注册时需要用户填写个人信息。
除此之外,还有浏览帖子、发表帖子、回复贴子等等功能。
制作本论坛所用的前台软件是MyEclipse,后台数据库是MySQL,运行时所用的服务器是Tomcat,综合运用了HTML、JSP以及JavaScript语言。
全文先对用到的软件进行了简单的介绍,然后依次对系统的应用进行需求分析、总体设计、详细设计;最后简要介绍了系统的发布和测试。
【关键词】BBS论坛;JSP技术;登陆;注册;浏览贴子;发表帖子;回复贴子。
1概况
当前形势下,BBS论坛种类繁多,通过BBS可随时取得国际最新的软件及信息,也可以通过BBS来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS来刊登一些“征友”、“廉价转让”及“公司产品”等启事。
只要您拥有1台计算机、1只调制解调器和1条电话线,就能够进入这个“超时代”的领域。
1.1BBS历史背景
BBS的英文全称是BulletinBoardSystem,翻译为中文就是“电子公告板”。
BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。
早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。
一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。
近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。
BBS最初是为了给计算机爱好者提供一个互相交流的地方。
70年代后期,计算机用户数目很少且用户之间相距很远。
因此,BBS(当时全世界一共不到一百个站点)提供了一个简单方便的交流方式,用户通过BBS可以交换软件和信息。
到了今天,BBS的用户才扩展到各行各业,花样非常多。
1.2BBS制作目的
BBS论坛是一种比较好的交流平台,他能方便人们进行即时在线交流,发表各种信息,实现网络资源的共享。
而且,也能促使人们敞开心扉去学习知识、追求进步,以至于能更好的利用网络资源。
鉴于BBS的这些优点,又加之制作BBS的一些基本知识我曾学习过,如《Java程序设计》、《JSP网页制作》以及《MyEclipse6.0基础教程》这些书我都看过或自学过。
考虑到个人喜好,所以最后我决定选择JavaWeb开发——BBS论坛制作,这个题目作为我毕业论文,同时也能积累一点开发Java小项目的经验,达到锻炼自己在这方面能力的目的。
1.3BBS制作的可行性
随着计算机软件的迅速发展,BBS的界面效果越来越美观,功能、作用和范围也得到了迅速扩大。
与此同时,制作BBS论坛的方法和所用的软件种类也越来越多了。
当前比较流行的,一个是基于JSP网页技术,一个是基于ASP.net网页技术,还有一个是基于PHP网页技术。
而在这里,我将采用基于JSP网页技术的方法进行简单的BBS论坛制作。
我所用的开发软件是MyEclipse6.5,它是一款可以做基础Java项目开发的工具;JDK1.6,当前进行Java开发的最新版本;数据库是MySQL,它是一款当前比较流行的进行中小量数据开发的中小型数据库;服务器是Tomcat5.5,它也是一款当前比较流行的软件,主要用于网络服务器的开发。
这些东西对一个搞Java开发的人来说应该是很普遍的。
因此,无论在技术还是软件上都应该可以实现的。
1.4BBS制作的局限性
此次BBS论坛制作的界面效果比较粗糙,功能也不是很强大,但幸好一些基本的功能都还有,比如,用户(或管理员)登陆,发表新的帖子,查看已存在的帖子,回复别人发表的帖子(也叫跟帖)以及管理员删除垃圾帖子或着垃圾的跟帖等等。
但是像一些高级功能,比如,搜寻或查找帖子的功能,上传图片或文件的功能,个人空间的功能等。
由于本人所学知识以及能力地限制,并没能将其实现。
2相关软件及开发环境的选择
2.1硬件环境与软件环境要求
服务器端
硬件
处理器:
IntelP4或更好
内存:
1G或更大
硬盘剩余空间:
2G或更大
软件
MicrosoftWindowsXP或更高版本
JDK1.60或更高版本
MyEclipse5.5或更高版本
MySQL5.0或更高版本
Tomcat5.5或更高版本
MicrosoftIE6.0浏览器或更高版本
客户机端
硬件
一般联网的计算机均可
软件
MicrosoftWindowsXP或更高版本
MicrosoftIE6.0或更高版本
2.2制作工具
JDK1.6用于Java程序的解释执行,MyEclipse5.5提供了一个良好的开发界面,MySQL5.0用于数据库的连接,Tomcat5.5Web服务器用于运行此项目。
3应用需求分析
作为一个BBS论坛,它应该具有BBS所有的一些基本功能,包括:
用户登陆功能,用户取回密码功能,用户浏览帖子的功能以及用户发表、回复、修改和删除帖子的功能等。
接下来,我将详细阐述一下这些功能。
3.1用户登录和注册功能
进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“注册”按钮即可进入注册界面,注册完成后返回登录界面。
然后,在对应的地方分别输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。
若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。
注意:
若用户名(或者密码)为空时,点击了“登录”按钮,则系统会弹出一个对话框提示你用户名(或密码)为空,请重新输入,点击对话框的“确定”按钮,即可重新回到登录界面。
注册界面如下所示:
图3-1
3.2用户帖子的浏览
当用户登录成功后便进入该页面,在该页面可以浏览他人已经发表的主题帖子,
图3-2
3.2.1帖子的总览
在主题页面中主要有两部分组成,一是用户的个人信息,再就是他人已经发表的主题帖子,每个帖子都包含了一些简单信息:
主题、作者和时间。
主题有下划线,那是以为对它进行了链接,鼠标单击主题便进入了下一页面——该帖的详细内容页面。
3.2.2查看特定帖的详细信息
如上所述,单击主题便进入该帖的详细内容页面。
里面主要包含了该帖的详细内容和他人对此帖的回复,点击“回复帖子”便可回复此贴。
图3-3
3.3用户帖子的发布
用户成功登陆后,可以进行一些操作,如浏览帖子、发表帖子等。
3.3.1帖子的发布
登陆成功进入主题页面后,点击“发表话题”按钮后,便可进入发表帖子的界面。
在该页面中填写完信息,点击“提交”即可。
图3-4
4系统总体设计
4.1系统结构设计
本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和回复的帖子的数据库表Reply,数据库表的具体设计如下所示:
4.2.1用户信息表User
表名:
User
用户信息表User包括六个字段:
即,UID(用户的标识符)、UNAME(用户名)、UPASS(用户密码)等。
表的内容如下:
4.2.2存储帖子所有的信息表TOPIC
表名:
TOPIC
信息表TOPIC包括七个字段:
即,TITLE(帖子的主题)、CONTENT(帖子的内容)、PUBLISHTIME(发帖的时间)、UID(帖子的标识)等。
表的内容如下:
4.2.3存储回复帖子的信息表REPLY
表名:
REPLY
信息表REPLY包括七个字段:
即,CONTENT(回帖的内容)、PUBLISHTIME(回帖的时间)、REPLYID(所回复的主贴的标识符)等。
表的内容如下:
5系统设计的部分介绍
5.1建立数据库及数据库表
建立一个数据库Test和三个数据库表(USER、TOPIC和REPLY)。
首先在MyEclipse5.5软件里配置MySQL5.0,配置完成后在MyEclipse界面里建立名为“Test”的数据库,然后再建立三个数据库表(USER、TOPIC和REPLY)。
创建表user:
stmt.executeUpdate("createtableuser(idintnotnullauto_increment,"+
"usernamevarchar(20)unique,"+
"passwordvarchar(20)notnull,"+
"sexvarchar(8)notnull,"+
"agevarchar(4),"+
"birthvarchar(20)notnull,"+
"telephonevarchar(12),"+
"emailvarchar(40)notnull,"+
"primarykey(id))");
创建表TOPIC:
stmt.executeUpdate("createtableTOPIC(namechar(20)notnull,"+
"emailchar(40)notnull,"+
"subjectchar(60)notnull,"+
"contenttextnotnull,"+
"timechar(40),"+
"usernamechar(20),"+
"idintnotnullauto_increment,primarykey(id))");
创建表reply:
stmt.executeUpdate("createtablereply(namechar(20)notnull,"+
"contenttextnotnull,"+
"timechar(40),replyint,"+
"idintnotnullauto_increment,"+
"primarykey(id))");
5.2用户登录功能的实现
通过Login.html界面传递参数username和password给Enter.jsp界面,然后查询数据库,判断用户名和密码是否正确。
若判断正确则为用户建立一个session,并进入了用户主界面。
<%
Stringusername=request.getParameter("username");//参数传递,用户名
Stringpassword=request.getParameter("password");//参数传递,密码
PreparedStatementpstmt=null;//数据库表达式
sql="select*fromUserwhereusername=?
andpassword=?
";
//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页面传递而来,首先判断用户名是否已被注册过了,若被注册过则提示已注册。
<%
Stringusername=request.getParameter("username");
Stringpassword=request.getParameter("password");
Stringsex=request.getParameter("sex");
Stringage=request.getParameter("age");
Stringyear=request.getParameter("year");
Stringmonth=request.getParameter("month");
Stringday=request.getParameter("day");
Stringtelephone=request.getParameter("telephone");
Stringemail=request.getParameter("email");
Stringmsg=null;
username=convert(username);
sql="select*fromuserwhereusername='"+username+"'";
rs=stm.executeQuery(sql);//查询数据库
if(!
rs.next()){//如果不存在
sex=convert(sex);
age=convert(age);
Stringbirth;
birth=year+"年"+month+"月"+day+"日";
sql="insertintouser(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和EnterpriseApplication项目到任何MyEclipse支持的服务器上。
它支持散包和打包发布。
目前来说Tomcat和JBoss都是支持散包发布的。
散包发布一般是开发时候来使用,MyEclipse会把所有的文件按照JavaEE规定的目录结构放在服务器的发布目录下。
在这种情况下,MyEclipse还会自动把修改过的文件,例如JSP文件,类文件等等复制过去,实现自动同步功能,这时修改了JSP页面不需要重新发布就能在浏览器里刷新后看到新的结果。
这样对开发来说是非常方便的。
6.1本论坛的发布测试分三步完成:
6.1.1散包发布JSPBBS项目
JSPBBS项目文件夹下包含了类库文件及资源文件。
其中src文件夹下包含一个Java文件JDBC_BBS.java,用于创建数据库表;WebRoot文件夹下存放了所有的jsp页面,其下的Pictures文件夹存放了页面制作所需的图片。
在MyEclipse界面下散包文档结构如图6-1所示:
图6-1
在MyEclipse的PackageExplorer视图下单击“发布”按钮进入发布界面,如图6-2所示:
图6-2
在Project对应的选项中选择JSPBBS项目,然后单击右面的按钮进入NewDeployment对话框,如图6-3:
图6-3
在该对话框的Server对应的选项中选择“”,在DeployLocation对应的选项中选择“D:
\apache-tomcat-5.5.27\webapps\JSPBBS”路径,单击返回ProjectDeployment对话框,如图6-4:
图6-4
最后单击完成发布。
6.1.2启动Tomcat服务器
在MyEclipse界面下点击按钮,在下拉菜单中选择Tomcat5.x服务器并单击“开始”按钮启动服务器,若启动成功显示以下信息:
图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:
图6-7
注册成功即可登陆论坛。
参考文献
[1]刘长炯.MyEclipse6Java开发中文教程[DK].北京:
2007:
(99)
[2]郑阿奇.MySQL实用教程[M].北京:
电子工业出版社,2009:
1-21
[3]孙卫琴.Tomcat与JavaWeb开发技术详解(第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]李绪成.JavaWeb开发教程——入门与提高篇[M].北京:
清华大学出版社,2009:
150-198
[11]舒红平.Web数据库编程:
Java[M].西安:
西安电子科技大学出版社,2006:
132-185
致谢
本次毕业设计之所以能够如期完成主要是指导老师及时的辅导帮助,为此在此特别感谢老师的谆谆教导。
同时也应该感谢这三年以来教过我们课的老师,没有他们给予我们的理论知识以及操作技能,就不可能完成此次毕业设计。
还有感谢这次答辩的评委老师,他们给我指出系统的不足与优点,这些对于我们以后再工作中给予很到帮助。
最后还有感谢同学之间的互帮互助。
15