JSP课程设计基于JSP技术开发的BBS论坛系统.docx
- 文档编号:25394600
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:18
- 大小:202.92KB
JSP课程设计基于JSP技术开发的BBS论坛系统.docx
《JSP课程设计基于JSP技术开发的BBS论坛系统.docx》由会员分享,可在线阅读,更多相关《JSP课程设计基于JSP技术开发的BBS论坛系统.docx(18页珍藏版)》请在冰豆网上搜索。
JSP课程设计基于JSP技术开发的BBS论坛系统
JSP程序设计-课程设计
基于JSP技术开发的BBS论坛系统
院系:
专业班级:
组长:
2010年12月15日
摘要
当今,随着网络的迅速发展,制作BBS论坛的技术和方法也越来越多。
本文主要讲述利用JavaWeb的相关技术来制作一个简单论坛。
通过实际制作,实现了BBS论坛系统应有的一些基本功能,如:
登陆功能,通过在登陆界面输入用户名和密码来实现会员的登录,用户只有登录成功了才能进行一系列的操作;注册功能,用户首次登陆,需要先注册,注册时需要用户填写个人信息;找回密码功能,当用户忘记密码时可以通过此功能找回密码,找回密码时需要用户记得注册时填写的个人信息。
除此之外,还有浏览帖子、发表帖子、回复贴子以及删除帖子等等功能。
制作本论坛所用的前台软件是MyEclipse,后台数据库是MySQL,运行时所用的服务器是Tomcat,综合运用了HTML、JSP以及JavaScript语言。
关键词:
BBS论坛;JSP技术;登陆;注册;找回密码;浏览贴子;发表帖子;回复贴子;删除帖子
一、概论
当前形势下,BBS论坛种类繁多,通过BBS可随时取得国际最新的软件及信息,也可以通过BBS来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS来刊登一些“征友”、“廉价转让”及“公司产品”等启事。
只要您拥有1台计算机、1只调制解调器和1条电话线,就能够进入这个“超时代”的领域。
(一)、BBS历史背景
BBS的英文全称是BulletinBoardSystem,翻译为中文就是“电子公告板”。
BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。
早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。
一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。
近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。
(二)、BBS制作目的
BBS论坛是一种比较好的交流平台,他能方便人们进行即时在线交流,发表各种信息,实现网络资源的共享。
而且,也能促使人们敞开心扉去学习知识、追求进步,以至于能更好的利用网络资源。
(三)、BBS制作的可行性
随着计算机软件的迅速发展,BBS的界面效果越来越美观,功能、作用和范围也得到了迅速扩大。
与此同时,制作BBS论坛的方法和所用的软件种类也越来越多了。
而在这里,我将采用基于JSP网页技术的方法进行简单的BBS论坛制作。
我所用的开发软件是MyEclipse6.5,它是一款可以做基础Java项目开发的工具;JDK1.6,当前进行Java开发的最新版本;数据库是MySQL,它是一款当前比较流行的进行中小量数据开发的中小型数据库;服务器是Tomcat5.5,它也是一款当前比较流行的软件,主要用于网络服务器的开发。
(四)、BBS制作的局限性
此次BBS论坛制作的界面效果比较粗糙,功能也不是很强大,但幸好一些基本的功能都还有,比如,用户(或管理员)登陆,发表新的帖子,查看已存在的帖子,回复别人发表的帖子(也叫跟帖)以及管理员删除垃圾帖子或着垃圾的跟帖等等。
但是像一些高级功能,比如,搜寻或查找帖子的功能,上传图片或文件的功能,个人空间的功能等。
由于本人所学知识以及能力地限制,并没能将其实现。
二、相关软件、技术介绍及开发环境的选择
(一)、开发环境介绍
1、硬件环境与软件环境要求
服务器端
硬件
处理器:
IntelP4或更好
内存:
1G或更大
硬盘剩余空间:
2G或更大
软件
MicrosoftWindowsXP或更高版本
JDK1.60或更高版本
MyEclipse6.0或更高版本
MySQL5.0或更高版本
Tomcat5.5或更高版本
MicrosoftIE6.0浏览器或更高版本
客户机端
硬件
一般联网的计算机均可
软件
MicrosoftWindowsXP或更高版本
MicrosoftIE6.0或更高版本
2、制作工具
JDK1.6用于Java程序的解释执行,MyEclipse6.5提供了一个良好的开发界面,MySQL5.0用于数据库的连接,Tomcat5.5Web服务器用于运行此项目。
(二)、JDK(JavaDevelopmentKit)
JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。
自从Java推出以来,JDK已经成为使用最广泛的JavaSDK(Softwaredevelopmentkit)。
(三)、MyEclipse6.5软件的简单介绍
MyEclipse6.5集中了开源和商业软件的开发支持的大多数框架,方便易用,功能强大,获得了广大开发人员的喜爱。
它支持开发调试基于Spring,Hibernate,Struts,JSF,JPA,EJB,WebService等JavaEE技术的项目。
(四)、MySQL数据库介绍
MySQL是一个小型关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
(五)、JSP(JavaServerPages)网页设计技术介绍
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
(六)、Tomcat5.5服务器介绍
Tomcat服务器是一个免费的开放源代码的Web应用服务器,Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
三、应用需求分析
作为一个BBS论坛,它应该具有BBS所有的一些基本功能,包括:
用户登陆功能,用户取回密码功能,用户浏览帖子的功能以及用户发表、回复、修改和删除帖子的功能等。
接下来,我将详细阐述一下这些功能。
(一)、用户登录和注册功能
进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“新用户注册”按钮即可进入注册界面,注册完成后返回登录界面。
然后,在对应的地方分别输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。
若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。
注册界面如下所示:
图4-1用户登录界面
(二)、用户找回密码功能
在有些时候,我们可能会忘记登录密码,这时就用到了密码找回功能,通过正确的回答当初注册时的一些信息即可取回密码。
图4-2密码找回
(三)、用户帖子的浏览
当用户登录成功后便进入该页面,在该页面可以浏览他人已经发表的主题帖子,
图4-3帖子浏览
在主题页面中主要有两部分组成,一是用户的个人信息,再就是他人已经发表的主题帖子,每个帖子都包含了一些简单信息:
主题、作者和时间。
(四)、用户帖子的发布/修改/删除功能
登陆成功进入主题页面后,点击“发表新的主题文章”按钮后,便可进入发表帖子的界面。
在该页面中填写完信息,点击“发送新的主题”即可。
图4-4发表新话题
(五)、用户回复他人帖子
打开他人的帖子,点击“我要回复”便可对该贴进行回复,如要想对其他回复此贴的人进行回复,可以点击回复(如图4-6)对其进行回复。
图4-6帖子回复
(六)、管理员对帖子的查看/发表/删除功能
1、管理员查看或发表帖子
管理员查看或发表帖子与普通用户的一样。
2、管理员删除帖子
管理员删除帖子与普通用户的区别在于,他可以删除任何人发表的贴子,另外他还有一项特权,就是可以删除任何人回复的垃圾帖子。
四、系统总体设计
(一)、系统结构设计
本BBS论坛系统共分为三大功能模块:
(1)登陆管理功能系统;
(2)注册功能系统;
(3)找回密码功能系统。
登陆管理功能系统,又包括四个子模块:
单纯的用户登录模块,用户发表帖子模块,用户回复他人帖子模块和用户删除自己所发表的帖子模块。
1、各个页面的功能及示意图
有两个页面用于基本功能的实现,被其它页面所调用:
页面名称
主要功能
用于实现基本功能
Opendata.jsp
打开数据库链接
Convert.jsp
用于字符的转换
其余的页面如下表所示:
各个模块
页面名称
页面功能
开始登陆的界面
Login.html
系统启动时的首页
登录管理
功能系统
Enter.jsp
用于判断用户名和密码是否正确
MainForm.jsp
登陆成功后转入该页面
Discuss.jsp
浏览主题帖子的页面,在这可以查看各类帖子
Person.jsp
显示个人信息的页面
NewTitle.jsp
发表新的主题帖子的页面
SaveNewTitle.jsp
将新发表的帖子存入数据库表Discuss中
Detail.jsp
用于显示帖子的内容及回复该帖的内容
SaveRevert.jsp
将回复内容存入数据库表Reply中
Delete.jsp
用于删除帖子
注册功能系统
Register.jsp
该界面用于新用户注册
SaveRegister.jsp
保存新用户注册信息到数据库表Student中
找回密码功能系统
GetPassword.jsp
用于用户找回密码
(二)、数据库设计
1、用户信息表Student
表名:
Student
用户信息表Student包括八个字段:
即,ID(用户的标识符)、USERNAME(用户名)、PASSWORD(用户密码)、SEX(性别)、AGE(年龄)、BIRTH(生日)、TELEPHONE(联系电话)、EMAIL(电子邮箱)等。
STUDENT表的属性如下图所示:
STUDENT表的内容如下图所示:
2、存储帖子所用的信息表DISCUSS
表名:
DISCUSS
信息表DISCUSS包括七个字段:
即,NAME(发帖人的昵称)、EMAIL(电子邮箱)、SUBJECT(帖子的主题)、CONTENT(帖子的内容)、TIME(发帖的时间)、USERNAME(用户名)、ID(帖子的标识)等。
表的属性:
表的内容:
3、存储回复帖子的信息表REPLY
表名:
REPLY
信息表REPLY包括五个字段:
即,NAME(回帖人的昵称)、CONTENT(回帖的内容)、TIME(回帖的时间)、REPLY(所回复的主贴的标识符)、ID(回复贴的标识符)等。
表的属性:
表的内容:
五、系统详细设计
(一)、建立数据库及数据库表
建立一个数据库Test和三个数据库表(STUDENT、DISCUSS和REPLY)。
首先在MyEclipse6.5软件里配置MySQL5.0,配置完成后在MyEclipse界面里建立名为“Test”的数据库,然后再建立三个数据库表(STUDENT、DISCUSS和REPLY)。
创建表student:
stmt.executeUpdate("createtablestudent(idintnotnullauto_increment,"+
"usernamevarchar(20)unique,"+
"passwordvarchar(20)notnull,"+
"sexvarchar(8)notnull,"+
"agevarchar(4),"+
"birthvarchar(20)notnull,"+
"telephonevarchar(12),"+
"emailvarchar(40)notnull,"+
"primarykey(id))");
创建表discuss:
stmt.executeUpdate("createtablediscuss(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))");
(二)、用户登录功能的实现
1、登陆界面的制作
(1)JavaScript标记语言判断输入的用户名和密码是否为空:
//验证输入不为空的脚本代码
functioncheckForm(form){
if(form.username.value==""){
alert("用户名不能为空!
");
form.username.focus();
returnfalse;
}
if(form.password.value==""){
alert("密码不能为空!
");
form.password.focus();
returnfalse;
}
returntrue;
}
(2)登陆界面的制作:
用户名:
密码:
2、登陆功能的实现
通过Login.html界面传递参数username和password给Enter.jsp界面,然后查询数据库,判断用户名和密码是否正确。
若判断正确则为用户建立一个session,并进入了用户主界面。
<%
Stringusername=request.getParameter("username");//参数传递,用户名
Stringpassword=request.getParameter("password");//参数传递,密码
PreparedStatementpstmt=null;//数据库表达式
sql="select*fromStudentwhereusername=?
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");//登陆失败转向登录页面
%>
(三)、用户发表新帖子页面的制作
1、NewTitle.jsp页面发表新的主题文章
此界面提供用户输入功能,输入完成后“发表心得主题”按钮便可提交数据给SaveNewTitle.jsp页面:
pageNO=1method=postonsubmit="returncheckForm(this);">
主题
内容
pageNO=1>返回主页 2、SaveNewTitle.jsp页面用于保存由NewTitle.jsp页面传来的数据信息 首先将传递来的数据进行转换,然后将其插入数据库Discuss中: <% Stringname=request.getParameter("name"); Stringemail=request.getParameter("email"); Stringsubject=request.getParameter("subject"); Stringcontent=request.getParameter("content"); intyear,month,day,hour,minute,second; Stringtime; GregorianCalendarcalendar; calendar=newGregorianCalendar(); year=calendar.get(Calendar.YEAR); month=calendar.get(Calendar.MONTH)+1; day=calendar.get(Calendar.DAY_OF_MONTH); hour=calendar.get(Calendar.HOUR_OF_DAY); minute=calendar.get(Calendar.MINUTE); second=calendar.get(Calendar.SECOND); time=year+"年"+month+"月"+day+"日"+hour+": "+minute +": "+second; name=convert(name); subject=convert(subject); content=convert(content); content=Replace(content); Stringusername=session.getValue("username").toString(); sql="insertintodiscuss(name,email,subject,content,time,username)values('"+name+"','"+email+"','"+subject+"','"+content+"','"+time+"','"+username+"')"; stm.executeUpdate(sql);//插入数据库中 response.sendRedirect("discuss.jsp"); %> (六)参考文献: [1]刘长炯.《MyEclipse6Java开发中文教程》[DK].北京: 2007: 1-99 [2]郑阿奇.《MySQL实用教程》[M].北京: 电子工业出版社,2009: 1-218 [3]孙卫琴.《Tomcat与JavaWeb开发技术详解(第2版)》[M].北京: 电子工业出版社,2009: 1-220 [4]萨师煊,王珊.《数据库系统概论》[M].北京: 高等教育出版社,2002: 56-110 [5]谷雨,阎隽,高春蓉等译.《JSP从入门到精通》[M].北京: 电子工业出版社,2002: 1-104 [6]李迎秋,姜仲.《JSP实用教程》[M].大连: 大连理工大学出版社,2007: 1-200 [7]赵明昌译.《JSP数据库编程指南》[M].北京: 北京希
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 课程设计 基于 技术开发 BBS 论坛 系统