《基于校园网的实名认证校园BBS系统毕业设计.doc》由会员分享,可在线阅读,更多相关《基于校园网的实名认证校园BBS系统毕业设计.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录第一章 系统概述11.1课题背景11.2研究意义11.3系统中涉及的技术21.3.1 JSP技术21.3.2 MyEclipse的介绍21.3.3 数据库的选择3第二章 可行性研究42.1 可行性分析42.1.1 技术可行性42.1.2 经济可行性42.1.3 管理可行性42.2 数据字典52.2.1 数据存储52.2.2 数据处理6第三章 概要设计73.1 系统设计73.2 实名认证过程73.3 数据结构设计113.3.1 实体-属性图设计113.3.2 各实体之间的E-R图123.3.3 数据表设计12第四章 详细设计144.1 系统结构与程序的关系144.2 主要功能以及界面的实现1
2、44.2.1 用户注册登录模块154.2.2账户信息模块184.2.3帖子发布模块19第五章 系统测试235.1测试环境235.2功能测试23第六章 总 结29参考文献30致谢31I第一章 系统概述1.1课题背景随着计算机技术的飞速发展,现在社会各方面的信息化越来越高,各个高校的校园网发展也越来越快,作为校园网中的一个重要应用,BBS(Bulletin Board System)系统在最近几年的时间里发展迅速,现在已经成为Internet上不可或缺的主要服务之一,作为一个有多人参加的讨论系统,网络安全的问题不得不考虑,而目前为止,需要实名认证的BBS系统在Internet上还没有发现,所以现在
3、开发一个有安全保障的BBS系统时机已经成熟。随着校园网的繁荣,校园BBS系统已经成为了BBS家族中重要的组成部分之一。由于校园的特殊性,校园BBS论坛的主要功能从同学之间交流学习、相互讨论等,逐渐演变成同学获取外界信息、联络情感的主要集中平台,所以说校园BBS系统已经开始影响着学生的思想和行为,也就是说为了广大学生能够有个更好的学习环境,和同学之间有个良好的交流氛围,对校园BBS系统进行实名认证已经迫在眉睫,这样就可以更好的监管校园BBS系统,控制不良信息的传播,给校园的广大学生一个更好的学习条件。所以,基于上述的考虑,本人运用了基于JSP技术开发了实名认证的校园BBS系统,该系统具有操作简单
4、,运行高效等特点。虽然本系统现阶段只是实现了BBS系统的基本功能,但是已经具有了用户实名注册与登陆、文章发布与回复、管理员后台管理等功能,这样在一定程度上也限制了不良信息在校园BBS论坛中的传播。1.2研究意义随着计算机的飞速发展和普及,BBS的活动将会进一步高涨,这种增长也带动了用户群数量的增长,继而引发了网络安全问题。由于BBS系统具有传播信息容量大,可共享资源,及形态多样和迅速方便等特点,已经发展成为了新的传播媒体及网络交互平台。正如上述所诉,作为BBS系统的一部分,校园BBS系统同样具有上述特点,又因为校园作为一个特殊的场所,确保学生接触的信息可靠安全已经成为现代教育系统不可忽略的一点
5、,该系统的开发与研究,对于学校的道德文明建设及构建和谐校园具有重要的意义。所以说实名认证的校园BBS系统可以有效地抑制不良信息在校园的传播,对于在学生周围构建良好的社交氛围和讨论交流的环境起到的重要的作用。1.3系统中涉及的技术1.3.1 JSP技术JSP是java server page的简称,是由Sun Microsystems公司倡导以及许多公司参与在一起建立的一种动态网页技术,他实现了Html语法中的Java1。JSP技术是用JAVA语言作为脚本语言,JSP网页为整个服务器端的JAVA库单元提供一个接口来服务于HTTP的应用程序。它使用了Java编程语言编写类XML的tags和scri
6、ptlets,来封装产生动态网页的处理逻辑,网页还能通过tags和scriptlets访问存在于服务端资源的应用逻辑。JSP技术将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易1。1.3.2 MyEclipse的介绍MyEclipse是一个开放的源代码,是基于Java可扩张的开发平台,多数人都是将MyEclipse作为Java集成开发环境使用2。MyEclipse为MyEclipse提供一个大量私有和开源Java工具的集合,这解决了各种开源工具不一致的缺点,并且MyEclipse是一个相当优秀的用于开发Java、J2EE的Eclipse插件
7、集合,MyEclipse的功能比较齐全,支持也比较广泛,尤其是对各种开源产品的支持2。图1-1 MyEclipse界面图1-2 Myeclipse操作界面1.3.3 数据库的选择数据库是数据管理的最新技术,是计算机科学的重要分支。从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理等,越来越多的应用领域采用数据库技术来存储和处理信息资源1。到目前为止,国内外使用最多的数据库有Oracle,Sql Server,Access,MySQL等。SQL(Structured Query Language),即结构化查询语言,是关系数据库的标准语言,SQL是一个通用的、功能极强的关系数据库
8、语言。其功能并不仅仅是查询。当前,几乎所有的关系数据管理软件都支持SQL。 MySQL是一个小、中型的数据库管理系统,与其他的数据库有着很好的接口,具有功能强大、使用方便等特点4。通过MySQL工具,用户可以很方便的使用和管理数据库,对数据库可以实施各类操作,如创建和编辑数据表、使用各种查询工具进行查询工作1。与其他的数据库管理系统相比,MySQL具有以下优点:存储文件单一、可以处理多种数据信息(比如文本文件和其他数据库文件)、支持长文件名,可以在文件名内加空格,是文件更加便于理解和查找、使用简单,用户无需了解编程语言,就可以轻松地设计开发数据库程序4。第二章 可行性研究2.1 可行性分析可行
9、性分析的目的是使新系统以最小的开发成本取得最佳的经济效益,通过前期的初步调查和系统目标分析,对即将要开发的实名认证的校园BBS系统从技术、经济和管理上进行是否可行的分析与研究,这样既能保证资源的合理利用,也可以避免在日常的开发工作中因为失误而造成的种种浪费现象。2.1.1 技术可行性在技术方面,本系统的开发语言是基于JSP的Java语言,由于Java语言是比较常用的语言,所以在日常的开发中可以减少不必要的浪费。在开发系统的初期阶段,由于自身在知识和技术上的欠缺,在日常的工作中遇到了一些的困难和麻烦,但是通过与同学的交流和自身对已学知识的回顾,在指导老师的细心指导下,以及翻阅了相关的资料,才使得
10、本系统能够顺利的开发出来。在系统开发的后期,通过这一段时间的实践和操作,对本系统的一些细节和不完善的地方进行了改进,使得该系统更加的完善和更方便的使用。2.1.2 经济可行性在经济方面,由于本系统的功能比较简单且规模较小,所以不需要投入大量的资金,而且本系统具有一定的实用性,这在一方面也改善了本系统的使用方法在人力和财力上的消耗。基于上述的特点,本系统能够做到在资源利用上的合理节约及合理利用,一经使用便可获得良好的收益成效。2.1.3 管理可行性在管理方面,在没有使用实名认证的校园BBS系统,需要大量的人力监管和管理校园BBS系统,及时处理不良信息的发布,并且效率较低且准确性不高。在设计此系统
11、后,可以对校园BBS系统进行及时方便的管理,不良信息的处理可以得到有效地抑制,这在管理方面节约了大量的人力和财力。2.2 数据字典数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库中占用很重要的地位5。2.2.1 数据存储数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以是手工文档或手工凭单,也可以是计算机文档5。对数据存储的描述通常包括以下内容:数据存储描述=数据存储名,说明,编号,输入的数据流,输出的数据流, 组成:数据结构,数据量,存取频度,存取方式5名字:用户信息表描述:记录用户的基本信息编号:A1组成:用户名,密码
12、,真实姓名,性别,电话,头像名字:帖子回复表描述:记录帖子的回复信息编号:A2组成:帖子标题,回复时间,回复内容,用户ID,主题ID名字:帖子主题表描述:记录帖子主题的信息编号:A3组成:帖子主题名,主题内容,时间,用户ID,版块ID名字:版块表描述:记录版块的相关信息编号:A4组成:版块名,相关介绍名字:真实姓名表描述:记录用户的真实信息编号:A5组成:真实姓名,身份证号2.2.2 数据处理1用户注册登陆模块表2-1 用户注册登陆模块模块名:用户注册登陆模块模块标识:U1其中涉及到的基本功能一下四点:1 用户登录功能:用户可以通过用户名与密码登陆本系统。 2 用户注册功能:游客可以通过注册成
13、为系统用户。3 用户退出功能:用户退出后,自动变成游客,游客的权限只能浏览帖子。2. 用户信息模块表2-2 用户信息模块模块名:用户信息模块模块标识:U2该模块主要完成用户对个人基本信息的管理,通过我的信息,用户对个人信息进行管理。其中涉及到的基本功能有以下几种:1 修改个人信息。2 更换个人头像。3. 文章发布模块表2-3 文章发布模块模块名称:文章发布模块模块标识:U3该模块主要完成用户发布文章的各种功能。其中涉及到的基本操作有以下几种:1 发布文章:用户可以通过此模块发布文章。2 回复文章:注册用户可以通过此模块回复任何已存在的话题。4版块管理模块表2-4 版块管理模块模块名:版块管理模
14、块模块标识:U5论坛管理员可以通过后台管理系统控制论坛的版块,管理员可以完成下列功能:添加论坛版块、管理论坛版块、管理论坛管理员等操作。第三章 概要设计3.1 系统设计系统设计的基本工作应该自顶向下地进行。首先设计总体结构,然后再逐层深入,直至进行每一个模块的设计。总体设计主要是指在系统分析的基础上,对整个系统的划分(子系统)、机器设备(包括软、硬设备)的配置、数据的存储规律以及整个系统实现规划等方面进行合理的安排9。该系统在整体功能模块如图所示:校园BBS系统后台管理前台管理用户注册登陆用户浏览信息用户发帖回帖用户传载资料管理员登陆论坛分类管理论坛帖子管理用户信息管理图3-1 系统框架图3.
15、2 实名认证过程本系统的实名认证过程主要集中在用户的注册和管理员对帖子的管理上,一方面,在用户注册时,用户在填写个人信息时,其中的用户名不可重复,真实姓名必须有效,而真实姓名检测是否有效是根据数据库中t_name表,该表模拟的是记录个人信息(如真实姓名、身份证号)的表,这样就可以通过检测该表来完成用户在注册时的实名认证,如果上述信息有其中一项不合法,都会提示相关的错误信息,方便用户发现错误;另一个方面,管理员对帖子的管理上,管理员可以删除某用户发布的非法帖子,而用户则不能删除个人发布的帖子。管理员在删除非法帖子后,该帖子的相关信息(比如发帖人ID、发帖时间、帖子内容等)仍然保存在数据库中,这样
16、在一定程度上也保障了论坛的和谐气氛,以及发现和删除非法帖子后能够及时做出后期处理。1) 实名认证的校园BBS框架图:实名认证的校园BBS系统用户注册管理员管理用户名不重复真实姓名有效删除非法帖子保存帖子信息图3-2 实名认证系统框架图2) 各模块的功能如下:以下主要说明用户注册登陆模块、帖子发布与删除模块,其中在用户的注册和文章的删除过程中,体现了本系统实名认证的特点,即用户在注册过程中必须填写个人真实姓名,且必须有效;在帖子删除过程中,用户无法删除个人所发布的帖子,管理员在删除帖子后,所删除帖子的相关信息还会保留在数据库中。1 用户注册登陆模块:要完成论坛的各项操作,用户必须登陆论坛系统,用
17、户登陆论坛系统要有论坛账号。如果命令是登录,则使用JDBC连接数据库,取得用户输入的帐号和密码并查询数据库,将得出的结果和用户输入的信息做比较。如果用户需要注册账号,点击注册,用户填写信息后,将检测用户填写的真实姓名是否有效,如果账号允许注册且真实姓名有效,则完成账号的注册,将信息写入到数据库中,如果账号已经存在,则返回错误信息,告诉用户该账号已经存在,请用户重新输入,并完成注册,进程结束。a. 用户注册流程图如下图所示: 开始注册是否成功Y提示注册成功N结束返回首页图3-3 用户注册流程图b. 注册实名认证流程图如下图所示:开始注册填写真实姓名查询数据库是否有效Y完成注册提示姓名无效N结束图
18、3-4 实名认证过程c. 用户登录流程图如下图所示:开始登陆是否合法Y进入论坛主页N结束返回首页图3-5 用户登录流程图2 帖子发布模块:在没有登陆本系统时,游客只有浏览帖子的权限, 用户登陆系统后,可以查看其他所有用户发的帖子,并可以发布自己的帖子,也可响应回复其他用户和自己发表的话题。a. 帖子发布模块流程图如下图所示:开始登陆是否合法Y主题板块N发布帖子返回首页发帖成功返回发帖界面结束YN图3-6 用户发帖回帖流程图b. 管理员删除帖子模块流程图如下图所示:打开管理员登陆是否合法删除帖子成功删除,并在数据库中保存其相关信息结束返回界面YN图3-7 管理员删除帖子流程图3.3 数据结构设计
19、3.3.1 实体-属性图设计以下为进行需求分析时制作的实体属性图:注册用户用户ID性别密码电话真实姓名帖子帖子编号用户ID帖子标题帖子内容发帖时间图3-7 用户与帖子实体-属性图3.3.2 各实体之间的E-R图用户ID帖子标题发帖时间帖子内容帖子编号用户ID密码真实姓名性别帖子用户浏览M1管理管理MN管理员用户名密码11图3-7 系统ER图3.3.3 数据表设计在做系统需求分析时,根据系统的需要以及ER图对数据进行分析制作了数据表。以下即为数据库的六张表:表3-1 t_user用户信息表字段名类型长度是否允许为空idint4否loginnamevarchar50否loginpwvarchar5
20、0否namevarchar50否sexvarchar2是idcardvarchar50否addressvarchar20是telvarchar50是emailvarchar50是QQvarchar50是表3-2 t_huifu帖子回复表字段名类型长度是否允许为空idint4否titlevarchar20否comtetnvarchar50否shijianvarchar50否user_idint4否zhuti_idint4否表3-3 t_zhuti帖子主题表字段名类型长度是否允许为空idint4否titlevarchar50否contetnvarchar50否fujianvarchar50否fuy
21、uanshimingvarchar50否Shijianvarchar50否user_idint4否catelog_idint4否表3-4 t_admin管理员表字段名类型长度是否允许为空user_idint4否user_namevarchar50是user_pwvarchar50是表3-5 t_catelog论坛类别表字段名类型长度是否允许为空idint4否namevarchar50是jieshaovarchar500否表3-6 t_name论坛类别表字段名类型长度是否允许为空idint11否namevarchar50是idcardvarchar20是第四章 详细设计4.1 系统结构与程序的关
22、系表4-1 各项功能需求模块的实现同各块程序的分配关系功能模块相关程序注册登陆userReg.jsp;login.jsp;loginSuccess.jsp;default.jsp;userinfo.jsp账户信息userMana.jsp;userPw.jsp;lutanGuanliyuanAdd.jsp;lutanGuanliyuanMana.jsp文章发布zhutiADD.jsp;zhutiDetail.jsp;huifuAdd.jsp版块管理catelogAll.jsp;catelogDetail.jsp;top.jsp;down.jsp信息管理Left.jsp;adminAdd.jsp;
23、adminMana.jsp;sysPro.jsp系统详细运行流程图:用户输入个人信息是否合法完成注册登陆身份是否有效发帖回帖退出是否有效管理论坛注册登陆管理员YN普通用户NYNY查询数据库查询数据库图4-1 系统详细运行流程图4.2 主要功能以及界面的实现当今社会随着科技与生活水平的提高,人们的审美观也随之增高,追求简约易懂、通用清楚的审美。在计算机技术日益发达的今天,各类软件界面设计的风格也随着人们的审美观的改变而改变。正是遵循着这个原则,本系统界面的设计具有灵活性、人性性、简易性、语言通用化等特点。4.2.1 用户注册登录模块1) 用户登陆页面该部分主要完成用户的登录功能,可以通过登陆身份
24、来选择普通用户或是论坛管理员,通过查询数据库验证信息正确后,即可登录。图4.2 用户登陆页面这个界面是登陆界面,即通过用户输入用户名ID与密码登陆论坛系统。主要代码:function check1() if(document.ThisForm.userName.value=) alert(请输入用户名);document.ThisForm.userName.focus();return false; if(document.ThisForm.userPw.value=) alert(请输入密码);document.ThisForm.userPw.focus();return false; fu
25、nction callback(data) document.getElementById(indicator).style.display=none; if(data=no) alert(用户名或密码错误); if(data=yes) alert(通过验证,系统登录成功); 上面代码实现用户登陆界面,对用户信息进行验证,如果用户名和密码没有错误,则进入论坛系统,可以拥有注册用户所有的权限。否则提示错误信息。2) 注册页面该部分主要完成用户的注册功能,其中用户名不可重复,且姓名有效,才能够完成注册操作,如果上述信息有一项无效,则无法完成注册操作。主要代码:function closeOpen(
26、) window.returnValue=false; window.close(); function check1() if(document.form1.loginname.value=) alert(请输入用户名); return false; if(document.form1.loginpw.value=) alert(请输入密码); return false; document.form1.submit(); function up() pop.setContent(contentUrl,/upload/upload.jsp); pop.setContent(title,文件上传
27、); pop.build(); pop.show(); public String userReg() if(null=tnameDAO.findByUserName(name)|tnameDAO.findByUserName( name).size=0) Map request=(Map)ServletActionContext.getContext().get(request);request.put(msg, 姓名无效,请重新注册); Map request=(Map)ServletActionContext.getContext().get(request);request.put(m
28、sg, 用户名已存在); else TUser user=new TUser();user.setLoginname(loginname);user.setLoginpw(loginpw);user.setName(name);user.setSex(sex);user.setAge(age);user.setAddress(address);user.setTel(tel);user.setEmail(email);user.setQq(qq);user.setType(1);user.setFujian(fujian);user.setDel(no);userDAO.save(user);
29、Map request=(Map)ServletActionContext.getContext().get(request);request.put(msg, 注册成功,请登录);return msg;上面代码实现对用户信息的验证,提示新用户需要注意的问题,帮助新用户完成注册,这样就使注册功能更加的完善与人性化。4.2.2账户信息模块1) 主题显示:2) 主要代码: function zhutiAdd(catelogId) test=$sessionScope.user=null alert(请先登录); test=$sessionScope.user!=null pop.setConten
30、t(contentUrl,url); pop.setContent(title,发新帖); pop.build(); pop.show(); function check() if(document.formAdd.name.value=) alert(请输入板块名称); return false; document.formAdd.submit(); function catelogDel(id) if(confirm(您确定删除吗?) window.location.href=/catelogDel.action?id=+id; function catelogAdd() var url=
31、/admin/catelog/catelogAdd.jsp; window.location.href=url; 本页面实现对文章的分页显示功能,验证页面,对各个版块的主题进行显示和处理,可以提高用户的浏览速度,结构更整洁。4.2.3帖子发布模块1) 帖子发表:2) 部分代码:public String zhutiAdd() TZhuti zhuti=new TZhuti();zhuti.setTitle(title);zhuti.setContent(content);zhuti.setFujian(fujian);zhuti.setFujianYuanshiming(fujianYuans
32、himing); zhuti.setShijian(newSimpleDateFormat(yyyy-MM-dd).format(newDate() );zhuti.setUserId(userId);zhuti.setCatelogId(catelogId);zhuti.setDel(no);hutiDAO.save(zhuti);HttpServletRequest req=ServletActionContext.getRequest();req.setAttribute(msg, 发帖成功);return msg;public String zhutiDel() TZhuti zhut
33、i=zhutiDAO.findById(id);zhuti.setDel(yes);zhutiDAO.attachDirty(zhuti);HttpServletRequest req=ServletActionContext.getRequest();req.setAttribute(msg, 成功删除);return msg;本页面提供用户的发帖功能,用户可以根据自己的需要发表帖子,并且用户还可以上传资料与其他用户共享。但是用户不能删除自己发布帖子,只有管理员有删除帖子的权限,并且数据库还会保存已删除帖子的信息,比如发帖人ID、真实姓名、发帖内容、发帖时间等信息。4.2.4版块管理模块1)
34、 版块管理:2) 部分代码:function check() if(document.formAdd.name.value=) alert(请输入板块名称); return false; type=button value=提交 onclick=check()/   function catelogDel(id) if(confirm(您确定删除吗?) window.location.href=/catelogDel.action?id=+id; function check() if(document.formAdd.loginname.value=) alert(请输入
35、账号); return false; if(document.formAdd.loginpw.value=) alert(请输入账号); return false; document.formAdd.submit(); function lutanGuanliyuanDel(id) if(confirm(您确定删除吗?) window.location.href=/lutanGuanliyuanDel.action?id=+id; function lutanGuanliyuanAdd() varurl=/admin/lutanGuanliyuan/lutanGuanliyuanAdd.jsp
36、; window.location.href=url; function check() var userPwReal=$sessionScope.admin.userPw; if(document.formPw.userPw.value !=userPwReal) alert(原密码不正确); return ; if(document.formPw.userPw1.value =) alert(新密码不能空); return ; document.getElementById(indicator).style.display=block; loginService.adminPwEdit(d
37、ocument.formPw.userPw1.value,callback); function callback(data) document.getElementById(indicator).style.display=none; alert(修改成功); 管理员可以通过后台管理系统控制论坛的版块,管理员可以完成下列功能:注册用户的管理、论坛管理员的管理、版块的管理等操作。第五章 系统测试5.1测试环境1) 硬件环境如下表所示:名称配置CPUInter(R) Core (TM)i3 M3502.26GHz内存2.00GB DDR2硬盘300GB显卡NVIDIA GEFORCE 310M显
38、示器14.1”液晶输入设备键盘、鼠标2) 软件环境如下:操作系统:中文Windows 7数据库软件:MySQL 5.1 运行软件:Myeclipse6.0 + Tomcat65.2功能测试在功能测试中,对所有模块采用黑盒测试,测试模块如下所示:1.登陆模块测试如表5-1表5-1 登陆模块测试测试数据预期结果实际结果问题与说明在论坛首页输入用户名与密码,点击登陆按钮能够进入进行相关操作成功完成操作说明界面跳转连接正常输入用户名ID0001密码0001能够登陆提示登录成功通过判断验证0001为合法用户输入用户名ID1111密码1111跳出错误提示,提示游客注册跳出错误提示如图5-1数据库中该用户名
39、与密码不对应,不能成功登陆2.管理员功能模块测试如表5-2表5-2 管理员功能模块测试测试数据预期结果实际结果问题与说明管理员任命一用户为论坛管理员能够任命论坛管理员成功任命论坛管理员,如图5-2管理员具有论坛的最高权限管理员管理论坛版块能够管理用户论坛版块可以添加或删除版块,如图5-3管理员具有论坛的最高权限管理员管理注册用户能够管理用户可以管理注册用户,如图5-4管理员拥有最高权限3.帖子发布与删除模块测试如表5-3表5-3 文章发布测试模块测试数据预期结果实际结果问题与说明用户通过点击发帖按钮,进入发帖界面通过填写标题、内容、附件可以发帖成功发布文章,结果如图5-5调用相关程序,进行发帖操