




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
BBS小型论坛系统课程综合实验报告课程名称 动态网页设计与网站建设 课题名称 BBS小型论坛 专 业 计算机应用技术 姓 名 赵子源 班 级 文专计1211 学 号 201290609126 指导教师 姜远明 2014年 6月 18日摘要当今,随着网络的迅速发展,制作BBS论坛的技术和方法也越来越多。本文主要讲述利用Java Web的相关技术来制作一个简单论坛。通过实际制作,实现了BBS论坛系统应有的一些基本功能,如:登陆功能,通过在登陆界面输入用户名和密码来实现会员的登录,用户只有登录成功了才能进行一系列的操作;注册功能,用户首次登陆,需要先注册,注册时需要用户填写个人信息;找回密码功能,当用户忘记密码时可以通过此功能找回密码,找回密码时需要用户记得注册时填写的个人信息。除此之外,还有浏览帖子、发表帖子、回复贴子以及删除帖子等等功能。制作本论坛所用的前台软件是MyEclipse,后台数据库是MySQL,运行时所用的服务器是Tomcat,综合运用了HTML、JSP以及JavaScript语言。关键词:BBS 论坛; JSP 技术; 登陆;注册; 找回密码;浏览贴子; 发表帖子; 回复贴子; 删除帖子目 录一、概论(1)(一)、BBS历史背景(1)(二)、BBS制作目的(1)(三)、BBS制作的可行性(1)(四)、BBS制作的局限性(2)二、相关软件、技术介绍及开发环境的选择 (2)(一)、开发环境介绍(2)(二)、JDK1.6的简单介绍(3)(三)、MyEclipse6.5软件的简单介绍(3)(四)、MySQL 数据库的简单介绍(3)(五)、JSP(Java Server Pages) 网页设计技术介绍 (3)(六)、Tomcat5.5服务器介绍 (4)三、应用需求分析(4)(一)、用户登录和注册功能 (4)(二)、用户找回密码功能(5)(三)、用户帖子的浏览 (5)1、帖子的总览(6)2、查看特定帖的详细信息(6)(四)、用户帖子的发布/删除功能(6)1、帖子的发布(6)2、帖子的删除(7)(五)、用户回复他人帖子(7)(六)、管理员对帖子的查看/发表/删除功能(8)1、管理员查看或发表帖子(8)2、管理员删除帖子(8)四、系统总体设计(8)(一)、系统结构设计(8)1、各个页面的功能及示意图(8)2、各个页面之间的调用关系(9)(二)、数据库设计 (10)1、用户信息表 (10)2、已发帖子的信息表 (10)3、已回复帖子的信息表 (11)五、系统详细设计(11)(一)、建立数据库及数据库表(11)(二)、用户登录功能的实现(12)1、登陆界面的制作(12)2、登陆功能的实现 (13)(三)、浏览主题帖子功能的实现(14)1、翻页功能的实现(14)2、浏览帖子的实现 (16)(四)、主题帖子详细内容页面的制作(16)(五)、在帖子详细内容页面里实现回复功能(17)(六)、用户发表新帖子页面的制作(18)(七)、新用户注册功能的实现(19)(八)、用户取回密码功能的实现(20)(九)、用户和管理员删除帖子功能的实现(21)六、BBS论坛的发布测试(22)参考文献 (26) BBS小型论坛系统(一)、BBS历史背景BBS的英文全称是Bulletin Board System,翻译为中文就是“电子公告板”。BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。(二)、BBS制作目的BBS论坛是一种比较好的交流平台,他能方便人们进行即时在线交流,发表各种信息,实现网络资源的共享。而且,也能促使人们敞开心扉去学习知识、追求进步,以至于能更好的利用网络资源。 (三)、BBS制作的可行性 随着计算机软件的迅速发展,BBS的界面效果越来越美观,功能、作用和范围也得到了迅速扩大。与此同时,制作BBS论坛的方法和所用的软件种类也越来越多了。而在这里,我将采用基于JSP网页技术的方法进行简单的BBS论坛制作。我所用的开发软件是MyEclipse6.5,它是一款可以做基础Java项目开发的工具;JDK1.6,当前进行Java开发的最新版本;数据库是MySQL,它是一款当前比较流行的进行中小量数据开发的中小型数据库;服务器是Tomcat5.5,它也是一款当前比较流行的软件,主要用于网络服务器的开发。(四)、BBS制作的局限性 此次BBS论坛制作的界面效果比较粗糙,功能也不是很强大,但幸好一些基本的功能都还有,比如,用户(或管理员)登陆,发表新的帖子,查看已存在的帖子,回复别人发表的帖子(也叫跟帖)以及管理员删除垃圾帖子或着垃圾的跟帖等等。但是像一些高级功能,比如,搜寻或查找帖子的功能,上传图片或文件的功能,个人空间的功能等。由于本人所学知识以及能力地限制,并没能将其实现。 二、相关软件、技术介绍及开发环境的选择三、应用需求分析作为一个BBS论坛,它应该具有BBS所有的一些基本功能,包括:用户登陆功能,用户取回密码功能,用户浏览帖子的功能以及用户发表、回复、修改和删除帖子的功能等。接下来,我将详细阐述一下这些功能。(一)、用户登录和注册功能进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“新用户注册”按钮即可进入注册界面,注册完成后返回登录界面。然后,在对应的地方分别输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。注册界面如下所示:图4-1(二)、登录功能 输入正确的姓名、密码可以进入系统图4-2(三)可以进入主界面(四)、用户帖子的浏览 当用户登录成功后便进入该页面,在该页面可以浏览他人已经发表的主题帖子,图4-31、 帖子的总览在主题页面中主要有两部分组成,一是用户的个人信息,再就是他人已经发表的主题帖子,每个帖子都包含了一些简单信息:主题、作者和时间。2、查看特定帖的详细信息如上所述,单击主题便进入该帖的详细内容页面。里面主要包含了该帖的详细内容和他人对此帖的回复,点击“我要回复”便可回复此贴。图4-4(四)、用户帖子的发布/修改/删除功能。1、 帖子的发布登陆成功进入主题页面后,点击“发表新的主题文章”按钮后,便可进入发表帖子的界面。在该页面中填写完信息,点击“发送新的主题”即可。图4-52、帖子的删除 在主题帖子页面中,每幅帖子的最左面都有一个删除按钮(如图4-3所示),点击此按钮便可删除你所发表的帖子。(六)、管理员对帖子的查看/发表/删除功能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用于用户找回密码2、各个页面之间的调用关系各个页面之间的调用关系如下图所示:(二)、数据库设计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(create table student(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);创建表discuss:stmt.executeUpdate(create table discuss(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);(二)、用户登录功能的实现1、 登陆界面的制作(1)JavaScript标记语言判断输入的用户名和密码是否为空:/ 验证输入不为空的脚本代码 function checkForm(form) if(form.username.value = ) alert(用户名不能为空!);form.username.focus();return false;if(form.password.value = ) alert(密码不能为空!);form.password.focus();return false;return true;(2)登陆界面的制作:用户名:密码 :2、 登陆功能的实现通过Login.html界面传递参数username 和 password 给Enter.jsp界面,然后查询数据库,判断用户名和密码是否正确。若判断正确则为用户建立一个session,并进入了用户主界面。(三)、浏览主题帖子功能的实现1、翻页功能的实现功能的实现:首先确定每页所能容纳帖子的最大数目,在这里我设定MaxNum=10;然后连接数据库查询帖子的总数,从而判断总的页数,即lastPage,接着根据请求的页码pageNO判断出该页码是否合法,若pageNOlastPage,即所求的页码超出了最大页数,则改正pageNO=lastPage,然后确定要显示的第一个帖子的标识码firstNum和最后一个帖子的标识码lastNum,最后连接数据库将标识码在firstNum和lastNum之间的帖子的信息查询出来。程序为: lastPage)pageNO = lastPage;firstNum = (pageNO - 1) * MaxNum + 1;lastNum = pageNO * MaxNum;if (pageNO = 1)prePage = 1;elseprePage = pageNO - 1;if (pageNO = lastPage)nextPage = pageNO;elsenextPage = pageNO + 1;sql = select * from discuss where id between + firstNum+ and + lastNum;rs = stm.executeQuery(sql);%页面的制作:目前页数:总页数:a href=discuss.jsp?pageNO= 【第一页】a href=discuss.jsp?pageNO= 【上一页】a href=discuss.jsp?pageNO= 【下一页】a href=discuss.jsp?pageNO=【最后一页】输入页次:2、浏览帖子的实现每幅帖子都有三部分组成:主题、作者和时间,通过上述分页功能选出了需要显示出来的帖子,下面就是将它们显示在页面上的程序:%String name, email, subject, content, time;int reply, id;while (rs.next() name = rs.getString(1);email = rs.getString(2);subject = rs.getString(3);content = rs.getString(4);time = rs.getString(5);id = rs.getInt(7);out.print( + subject + );out.print( + name + );out.print( + time + );%(四)、主题帖子详细内容页面的制作 通过Discuss.jsp页面传递参数ID,然后进行数据库查询获得帖子的详细信息,并显示的页面上。(五)、在帖子详细内容页面里实现回复功能 在Detail.jsp 页面里实现回复功能,让用户可以在同一页面实现浏览贴子、回复帖子和浏览别人回复的帖子的功能:1、 Detail.jsp页面中的代码:此部分代码是显示该帖子的内容,并给用户提供了一个回帖按钮,点此按钮便可链接到其他页面:form name=form2 action=saveRevert.jsp?id= method=postonsubmit=return checkForm(this);昵称内容2、 SaveRevert.jsp页面中的代码:此页面的功能保存由Detail.jsp页面传来的回帖信息,保存次信息到Reply数据库表中:(六)、用户发表新帖子页面的制作 1、NewTitle.jsp页面发表新的主题文章 此界面提供用户输入功能,输入完成后“发表心得主题”按钮便可提交数据给SaveNewTitle.jsp页面: 姓名 E-mail 主题 内容 返回主页2、SaveNewTitle.jsp页面用于保存由NewTitle.jsp页面传来的数据信息首先将传递来的数据进行转换,然后将其插入数据库Discuss中:(七)、新用户注册功能的实现 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 student where username= + username + ;rs = stm.executeQuery(sql); /查询数据库if (!rs.next() /如果不存在sex = convert(sex);age = convert(age);String birth;birth = year + 年 + month + 月 + day + 日;sql = insert into student ( 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();%(八)、用户取回密码功能的实现GetPassword.jsp页面用于取回密码,给该页面传递一些用户填写的信息,将该用户注册时的对应信息与此信息进行比较,当该信息与用户注册时填写的一样时,便能取回密码,否则不能:%if (request.getParameter(username) != null/username用户名& request.getParameter(sex) != null/sex性别& request.getParameter(email) != null) /email电子邮箱String username = request.getParameter(username);String sex = request.getParameter(sex);String email = request.getParameter(email);username = convert(username);sex = convert(sex);email = convert(email);sql = select * from student where username= + username+ and sex= + sex + and email= + email + ;rs = stm.executeQuery(sql);/从数据库中查找对应信息if (rs.next() /如果找到String password = rs.getString(3);String errmsg = 正确的填写信息,你的密码为:;out.println(提示信息:+ errmsg + password + );out.println(); else String errmsg = 对不起,你暂时还不能取回你的密码,原因是你没能正确的填写信息!;out.println(提示信息:+ errmsg + );out.println();%(九)、用户和管理员删除帖子功能的实现 Delete.jsp页面用于删除帖子,在此页面获得两个参数id和replyid。其中id为帖子的标识符,replyid为是否是回帖,当replyid0 时表示要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 植物生长规律与园艺师考试试题及答案
- 2024调酒师考试增值服务与技巧-试题及答案
- 2024年农艺师考试热点问题试题及答案
- 物理光学试题及答案初中
- 农业职业经理人考试如何全面理解知识点的联系试题及答案
- 福建事业单位考试公益基金管理知识题及答案
- 石油工程技术试题及答案
- 新闻笔试考试试题及答案
- 海南高三文综试题及答案
- 2024花艺师考试的激情引领试题及答案
- 《传统康复方法学》期末复习考试题库及答案
- 臭氧参考光度计nist srpqaqc手册
- 盘点数据统计表
- 07FK02 防空地下室通风设备安装
- 优质课一等奖小学综合实践《奇妙的绳结:平结手链》
- 银行保险客户KYC基础信息表
- CRPS电源设计向导 CRPS Design Guide r-2017
- 2022年家政服务员(高级)理论考试题库-下(多选、判断题部分)
- (完整版)东南大学工程项目管理陆惠民第四章工程项目管理组织(课后习题答案)
- GB/T 41888-2022船舶和海上技术船舶气囊下水工艺
- SH/T 1627.1-1996工业用乙腈
评论
0/150
提交评论