基于java_web的学生信息交流和自主管理系统的设计与实现.doc_第1页
基于java_web的学生信息交流和自主管理系统的设计与实现.doc_第2页
基于java_web的学生信息交流和自主管理系统的设计与实现.doc_第3页
基于java_web的学生信息交流和自主管理系统的设计与实现.doc_第4页
基于java_web的学生信息交流和自主管理系统的设计与实现.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于java web的学生信息交流和自主管理系统的设计与实现摘要:现在网络上有很多的社交网站,也有很多的用户常驻其中,但由于他们受众人群比较广泛,用户的年龄、职业的差别决定了这些网站必须做到通用性才能很好的让大众接受,因此他们也缺失了一些独有的个性;在此背景上,决定做一个面向大学生自己的信息交流平台,让大学生可以在上面做专属于自己的事情,这样就能更好地让兴趣相投的人一块交流。这次的项目是面向学生这个特殊群体的,所以其中的模块都是具有定制特性的,希望以此可以很好满足用户的期望。网络已经是大学生必不可少的东西,大学生也迫切的希望能在网络尽情释放自己,展现自己,这次的项目正是出于这个想法,借此打造出具有独特魅力的信息交流平台。该项目主要是基于java web体系结构实现的,开发工具为Eclipse,以Oracle作为数据存储层,结合流行的开源框架Struts2完成了项目的整体架构。关键词:信息交流 ;社交 ;Java Web ;Struts2The Design and Implementation of Students Information Exchange and Independent Management SystemAbstract: Nowadays, there are a lot of social community web sites on the Internet,and many users are used to communicating with each other through them.However,due to the wide range of customers,their different ages, and occupations, these sites must be no more ordinary in order that they can be accepted by the public.As a result ,it is no surprise that they will miss some unique personality.As for this phenomenon, I decide to develop an information exchanging platform for college students, so that students can do their own business.At the same time, more users sharing the same interests can communicate on it together.This project keeps focus on a special groupstudents ,and all of the modules have certain properties,hoping that it can meet the users expectations. Internet has become indispensable for the college students,and the students are eager to release themselves and show themselves.Motivated by this idea, the project tries to create an information communicated platform with unique characters. This project is based on JavaWeb architecture, using eclipse as development tools and Oracle as database.Moreover,it is combined with popular open source framework,which is called Struts2 ,to complete the overall structure .Key words: Information Exchange;Social;Java Web;Struts2目 录1 前言(1)1.1开发背景(1)1.2 系统设计的目标(1)2 相关技术介绍(1)2.1 jsp技术简介(1)2.2 开源框架Struts2技术简介(1)2.3 Oracle数据库技术简介(2)2.4 JQuery脚本库技术简介(2)2.5 Eclipse开发工具简介(3)3 系统的可行性研究与需求分析(3)3.1 可行性研究(3)3.1.1 技术可行性(3)3.1.2 经济可行性(3)3.1.3 营运可行性(3)3.2 需求分析(3)3.2.1 系统需求(3)3.2.2 性能需求(3)3.3 功能分析(4)4 系统总体设计(4)4.1 系统主要功能设计(4)4.2 各模块功能设计(5)4.3 数据库设计(6)4.3.1 数据库的逻辑结构(6)4.3.2 数据库的连接(10)5 系统详细设计与实现(10)5.1 系统登陆模块设计(10)5.2 系统注册模块设计(10)5.3 首页模块设计(11)5.4 博文模块设计(12)5.4.1 浏览全部博文(12)5.4.2 发表博文(13)5.4.3 博文详细(15)5.5 问答模块设计(16)5.5.1 浏览全部问题(16)5.5.2 问答详细(17)5.5.3 提出问题(18)5.6 个人中心设计(19)5.6.1 个人资料更新(19)5.6.2 个人内容管理(20)5.6.3 后台管理(20)6 系统调试与测试(22)6.1 测试概论(22)6.2 程序的测试(22)6.2.1 学生登录测试(22)6.2.2 学生注册测试(23)6.2.3 发表博文测试(23)6.3 测试结果(24)结论(25)参考文献(26)致谢(27)1 前言1.1开发背景 网络已经成为当代大学生生活和学习中不可或缺的一样东西,生活中需要交流,学习上也需要交流。网络正好满足了这个需求,很多的社交网站也应运而生。网络交流成为了大学生的日常活动,离开了网络,很多大学生都会有一种孤独感,或者被社会抛弃的感觉这正好反映了大学生对网络的依赖性和网络交流的重要性。大多数的社交网站用户人群比较广泛,用户的年龄、职业的差别决定了这些网站必须做到通用性才能很好的让大众接受,因此他们也缺失了一些独有的个性。当然,网上也有很多别具一格的社交论坛,里边聚集着一群有共同爱好的人。在此背景上,我决定做一个面向大学生自己的信息交流平台,用属于大学生的元素来吸引大学生在上面绽放自己年轻的光彩。1.2 系统设计的目标这次的项目是针对大学生所做的,目的是为了设计出具有学校生活色彩的应用系统,让使用者可以快速的融入其中。现在的大学生迫切的需要有共享自己的想法的平台,本系统正是要满足的这样的需求。2 相关技术介绍2.1 jsp技术简介jsp是sun公司在web编程领域所开发的一项技术,上面可以写html标签,也可以写一下java代码进行逻辑处理,结合了显示处理和后台处理。受益于java语言的无平台限制性,解释jsp的中间件服务器可以运行在任何装有jvm环境的机器,代码不需要做任何的修改。2.2 开源框架Struts2技术简介Struts 2是Struts1的升级版本,它融合了webwork框架的优点,吸收了很多现在比较流行的软件思想,受到很多的开发者的喜爱。现在由apache开源组织进行维护和升级,每个开发者都可以贡献自己的一份力量。Struts2主要是对web编程中的请求控制进行了进一步的整合和封装,简化了很多繁琐复杂的工作,通过几个简单的配置就可以让开发者完成前台到后台的一系列流程。这样可以让开发者把精力放在业务逻辑的处理,而不用重复的进行请求的处理,一定程度上提高了开发效率。图2.1为Struts2的工作流程:图2.1 Struts2工作原理2.3 Oracle数据库技术简介Oracle数据库系统是一种企业级的关系型数据库,由美国Oracle公司(甲骨文)开发。它比较适合一些大中型的企业应用。Oracle数据库系统是现今数据库系统中对数据库设计原理实现的最为完整的数据库,安全性很高,适合一些对信息安全有很高要求的系统开发。Oracle现在的版本为Oracle Database 12c,其对数据库云进行了很好的支持,对处理大数据提供了不错的支撑。2.4 JQuery脚本库技术简介JQuery是一个开源的js脚本库,全球使用人数很高,也有很多的开发者在对其进行优化和扩展。它主要优点是能够兼容多种浏览器,对不同的浏览器内核进行了很好的兼容。使用JQuery可以对DOM进行很多操作,也可以让开发者做出很多动态显示特效。另外,它封装的Ajax功能也是非常简便易用,功能强大。JQuery提供了丰富的API供开发者使用,利用它可以很轻松的开发出强大的web系统。2.5 Eclipse开发工具简介Eclipse是一种功能强大的集成开发工具,主要用于java语言的开发。它提供了丰富的快捷键,让开发者可以利用纯键盘进行快速的编程。Eclipse允许开发者在其提供的API基础上开发特殊需求的插件,此插件可以完美的融合到Eclipse上,很大程度上增强的它自身的功能,方便了开发者的开发。另外,它提供的debug调试功能对于排查开发过程中难以发现的bug起到了很明显的作用。3 系统的可行性研究与需求分析3.1 可行性研究3.1.1 技术可行性技术方面主要使用了比较流行的Struts2框架,网上相关资料比较丰富,实现起来相对容易。数据库Oracle也是比较成熟的数据库,应对本系统也不会出现性能问题。其他的技术像Ajax也有很多丰富的实例,不存在无法实现的问题。由此可知,技术上是可行的。3.1.2 经济可行性本系统的开发过程中所使用的资源均属于开源免费的,不需要额外支付费用,开发人员上也不需要很大的需求,所以产生的费用也不是很大,系统后期的部署和维护也是相对比较容易,对服务器的要求也不是很苛刻,所有开支不是很大,所以,经济上是可行的。3.1.3 营运可行性本系统主要是针对大学生所开发的应用系统,在潜在用户量这方面是很客观的,营运过程中,宣传也是比较简单,同学之间相互了解是很有效的宣传方式。所以在运行上是可行的。3.2 需求分析在系统开发之前,需求分析是很关键的。一个好的需求直接决定了系统开发的成败。需求分析主要是了解用户的主观想法,借此来总结需要实现的功能以及实现过程中的细节。3.2.1 系统需求对于该系统的实现方式,java是很好的选择。因为java在web方向上有很多成熟的体系结构,它是经过了很多人验证后确实可行的方案,所以使用起来会比较容易。3.2.2 性能需求系统运行过程中会产生很多的数据,在数据到大一定量以后,就会导致系统性能问题。所以在实现方式上,数据源方面需要使用连接池加快访问数据库的速度,后期在服务器上需要提高服务器的配置,以达到要求的运行速度。3.3 功能分析学生信息交流平台主要包括首页展示,博文模块,问答模块,个人中心和关于。其中首页主要是对博文和问答的一系列展示,包括最新博文,最新图文,热门博文,各类型博文,以及最新的待解决问题,另外还包括活跃学生的排行展示;博文模块主要是对博文展示,发表博文,回复博文,查找博文等一系列的用户操作;问答模块就是对学生用户所提问题的展现和其他学生对其进行回答的展示,另外,提问者还可以对自己满意的回答进行采纳,此时问题状态改为已解决;个人中心主要有基本资料,密码,头像的更新,另外可以管理自己的博文和问答,实现用户的自主管理;此外,学生还会有自己相应的角色,比如管理员,博文管理员,问答管理员,普通用户,对应的角色可以管理整个系统的相应模块,这样就使用户具备了后台管理员的部分权限,默认情况下,管理员具有所有权限,只有管理员可以管理系统的所有学生用户;关于模块就是对整个系统的介绍。4 系统总体设计4.1 系统主要功能设计图4.1 功能模块图该系统主要有:首页展示,博文模块,问答模块,个人中心模块和关于模块。其中博文模块下有包括查看博文,发表博文,回复博文和按类别、用户、标题查询博文;问答模块下有提出问题,回答问题,采纳问题,查找答案等;个人中心包括用户个人资料,密码,头像的修改,以及对自己博文和问答的查阅与更新,个人中心还包括后台管理部分,用户可以根据自己的权限做相应的操作。图4.1为学生信息交流平台的功能模块图。4.2 各模块功能设计主要功能有:1. 用户登录注册:注册时对用户输入的信息进行有效验证,并对已经注册用户名进行提示,防止出现同样的用户名。2. 博文模块:对所有博文进行分页展示,可以根据类别,用户名,标题进行查询,点击博文进入博文详细,可以浏览博文内容和回复详细,回复具有一级回复和二级回复,可对二级回复进行隐藏和显示,另外可以点击发表博文来表达自己的观点。3. 问答模块:对最新的问题进行展示,可以根据关键字模糊查询问题,点击问题进入问题详细,可以查看问题详情和回答列表,如果是提问人,还可以对满意的答案进行采纳,同样也可以提出问题等待别人回答。4. 个人中心:首先包括对个人资料的更新,其中有个人基本资料,个人密码,个人头像;还有就是对自己的博文和问答的管理。个人中心还包括后台的管理,用户可以根据自己的权限来管理相应的模块。5. 关于:对本系统的一个介绍,让用户对系统有个全面的认识。4.3 数据库设计4.3.1 数据库的逻辑结构数据库设计需要满足一些严格的约束和规则。要搞清楚实体和表之间的对应关系,还有他们之间的各种联系。设计过程要充分考虑数据冗余与性能上的平衡,尽量在表的设计上做到最优。学生信息交流平台的数据库包含下列数据表:(1)学生信息表主要用于保存注册用户的各类信息,包括用户名,密码,昵称,邮箱等。表4.1 学生信息表(student)名称类型可为空注释STUNONUMBER(8)学生编号STUACCOUNTVARCHAR2(45)Y账号STUPASSWORDVARCHAR2(45)Y密码STUSEXVARCHAR2(4)Y性别STUNICKNAMEVARCHAR2(50)Y昵称STUBIRTHDATEY生日STUPHOTOVARCHAR2(100)Y头像STUHOBBYVARCHAR2(100)Y爱好STUYXVARCHAR2(100)Y院系STUZYVARCHAR2(100)Y专业STUEMAILVARCHAR2(100)Y邮箱STUTELVARCHAR2(40)Y手机STATUSINTEGERY状态ROLEIDNUMBER(2)Y角色idREGDATEDATEY注册日期 (2)用户角色表主要用于保存注册用户的角色信息。表4.2 用户角色表(role)名称类型可为空注释ROLEIDNUMBER(2)角色idROLENAMEVARCHAR2(20)Y角色名ROLEVALUENUMBER(4)Y角色权限值 (3)用户权限表主要用于保存注册用户操作的各类权限。表4.3 用户权限表(permission)名称类型可为空注释PIDNUMBER(4)权限idPNAMEVARCHAR2(45)Y权限名称PURLVARCHAR2(100)Y路径 (4)博文表主要用于保存博文的各类信息,包括标题,内容,时间,发布人等。表4.4 博文信息表(blog)名称类型可为空注释BLOGIDVARCHAR2(20)博文idBLOGTITLEVARCHAR2(100)Y博文标题BLOGCONTENTVARCHAR2(4000)Y博文内容BLOGTAGVARCHAR2(20)Y博文标签BLOGREADNUMBER(8)Y浏览数BLOGREPLYNUMBER(8)Y回复数BLOGTIMEDATEY发布时间STUNONUMBER(8)Y发布人编号 (5)博文一级回复表主要用于保存注册博文的一级回复,包括id,内容,时间,博文id等。表4.5 博文一级回复表(replyone)名称类型可为空注释RONEIDVARCHAR2(20)回复idRONECONTENTVARCHAR2(500)Y回复内容RONEDATEDATEY回复时间STUNONUMBER(8)Y回复人编号BLOGIDVARCHAR2(20)Y所回复博文 (6)博文二级回复表主要用于保存注册博文的二级回复,包括id,内容,时间,一级回复id等。表4.6 博文二级回复表(replytwo)名称类型可为空注释RTWOIDVARCHAR2(20)回复idRTWOCONTENTVARCHAR2(500)Y回复内容RTWODATEDATEY回复时间STUNONUMBER(8)Y回复人编号RONEIDVARCHAR2(20)Y一级回复id (7)问题表主要用于保存注册问题的各类信息,包括问题标题,内容,时间,问题状态等。表4.7 问题表(ask)名称类型可为空注释ASKIDVARCHAR2(20)问题编号ASKTITLEVARCHAR2(100)Y问题标题ASKCONTENTVARCHAR2(2000)Y问题内容ASKREADNUMBER(8)Y阅读数ASKANSWERNUMBER(8)Y回答数ASKTIMEDATEY提问时间STUNONUMBER(8)Y提问人编号STATUSINTEGERY问题状态 (8)回答表主要用于保存回答的各类信息,包括回答内容,回答时间,是否采纳等。表4.8 回答表(answer)名称类型可为空注释ANSWERIDVARCHAR2(20)回答idANSWERCONTENTVARCHAR2(1000)Y回答内容ANSWERTIMEDATEY回答时间AGREECOUNTNUMBER(8)Y赞同数ACCEPTINTEGERY是否被采纳(0未采纳 1已采纳)STUNONUMBER(8)Y回答人编号ASKIDVARCHAR2(20)Y问题id (9)图片表主要用于保存图片的各类信息,包括图片名称,图片路径,对应表名称,对应记录,上传时间等。表4.9 图片表(pics)名称类型可为空注释PICIDVARCHAR2(20)Y图片idPICNAMEVARCHAR2(100)Y图片名称PICURLVARCHAR2(100)Y图片路径TABLENAMEVARCHAR2(20)Y对应表名称RECODEIDVARCHAR2(20)Y对应记录idUPTIMEDATEY上传时间4.3.2 数据库的连接本系统运用了dbcp数据库连接池来提高数据库的连接效率。dbcp是 apache组织上的一个 java 连接池项目,同时也是 tomcat 使用的连接池组件。系统中使用dbcp需要3个jar包:commons-pool.jar,commons-collections.jar; commons-dbcp.jar。系统中频繁的建立数据库连接是非常耗费资源的操作,所以dbcp连接池会预先创建一些连接存在内存中维护,这样系统中需要用到连接的时候直接去池中取,省掉了临时创建的时间,提高了运行效率。首先需要在meta-inf中加入数据库连接池配置文件context.xml,然后配置监听器初始化数据源,之后代码中就可以使用getDataSource()得到的数据源来获取数据库连接。5 系统详细设计与实现5.1 系统登陆模块设计登陆模块主要功能就是验证用户输入的用户名密码是否正确,如果输入有误就进行相应的提示,如果登陆成功就跳转到首页。图5.1为登陆页面:图5.1 系统登陆界面登陆过程使用JQuery实现的ajax方式进行后台的验证,验证结果通过js动态的显示在页面上,填写完登陆信息发送请求到后台,此时会经过Struts2的拦截器interceptor来查询该用户的具体权限,并保存到session中。这样就可以方便的在具体的操作中判断用户是否具有该权限,也可以根据用户的权限动态的显示页面上的模块。5.2 系统注册模块设计图5.2 系统注册界面注册模块是用户从游客到会员的必经之道,只有注册的用户才能进行发表博文,提问题等一系列操作。图5.2为注册页面。首先,当用户输入用户名以后会去异步请求后台,验证该用户名是否已经注册,如果已经注册就禁止该用户名的重复注册,接着会对密码和重复密码进行有效性验证,判断两次密码输入是否一致,并作相应提示。另外,还有对邮箱和手机的合法性验证,主要是使用了正则表达式。其中,验证邮箱合法性的正则为:/w+w+.w+$/,验证手机合法性的正则为:/(131-9|155-9|182-9)d8$/。这样就可以有效的避免用户的恶意输入。最后注册成功后就会跳转到登陆界面,并且用户名输入框已经默认带有用户刚注册成功的用户名,方便了用户登陆。5.3 首页模块设计登陆成功后进入首页,首页主要是对平台中内容的全面展示。图5.3为系统首页:图5.3 系统首页首先会有一个图片轮播,展示的是最新的博文中所夹带的图片,点击图片可以查看该博文详细,然后就是对热门博文以及各种类型博文的展示。5.4 博文模块设计5.4.1 浏览全部博文点击导航栏的博文选项,首先会进入到全部博文的页面,上边显示的是根据发表时间的降序排列的所有博文的分页显示。左侧有博文的各个分类,点击某个分类可以选择浏览具体分类的博文。下方还有博文搜索的输入框,可以根据输入的关键字按照标题或博主搜索相关内容。具体显示如图5.4:图5.4 博文纵览页在blog.jsp中全部博文处只是一个空的div,页面上所显示的内容都是在页面刚开始加载时动态的去后台请求,然后数据返回到另外一个blogList.jsp的页面中进行组织,最后把整个页面加载进了刚才的空白div,代码如下:$(document).ready(function()$(#showDiv).load(/STUINFO/blog_findbytag.action?timestamp=+(new Date().getTime(););5.4.2 发表博文点击博文页面中的发表博文按钮就会进入到发表博文的页面,在进入页面前,会判断当前有没有用户登陆,如果没有登陆就提示请登录然后跳转到登陆页面,这样可以有效避免游客的非法操作。页面如图5.5:图5.5 发表博文页其中用到了第三方插件ckeditor,这是一个富文本编辑器插件,可以取代原始的textarea文本域进行丰富的文本输入,在此基础上又额外添加了上传图片的功能,使发表的博文可以图文并茂,更加生动。在标题框输入标题时,右上角的字数会实时的变化,提示用户当前的字数,如果超过最大值就会将输入框边框变为红色来提醒用户输入非法。填写完毕,点击发表按钮,表单中的数据会提交到后台进行处理。其中,为了避免用户的恶意js注入,对输入的内容进行了特殊字符转义处理,替换提交内容中的, , &。还要对博文内容进行解析,判断是否含有图片,如果包含则需要提取出来进行单独的图片上传和保存。其中用到了正则表达式对内容中图片路径的格式进行匹配,正则表达式为:bsrc=(+)。代码如下:/如果博文中包含img标记if(blogcontent.indexOf(img) != -1)IPicsBiz picsBiz = new PicsBizImpl();Pattern pattern = Ppile(bsrc=(+);Matcher matcher = pattern.matcher(blogcontent);while(matcher.find()if(matcher.group(1).indexOf(ckeditor/plugins/) != -1)continue;Pics pic = new Pics();pic.setPicname(this.blog.getBlogtitle();pic.setPicurl(matcher.group(1);pic.setRecodeid(blogid);pic.setTablename(blog);pic.setUptime(new Date();picsBiz.addPic(pic);5.4.3 博文详细博文详细页主要是对博文的具体内容,博主的信息以及该博文回复信息的一系列展示,如图5.6。详细页左侧会显示发表该博文的用户的详细信息,右侧是该博文的详细,包括博文标题,博文类别,发表时间和博文内容。下方就是所有的回复列表,回复包括一级回复和二级回复,其中每条回复又有相应的回复人信息。这个就涉及到数据的对应关系,一条回复对应唯一的一个用户,一篇博文对应多条一级回复,一条一级回复又对应多条二级回复。所以就需要特定的数据结构来存储其对应关系,使用OneToOne泛型类来表示一对一的关系,使用OneToMany 来表示一对多的关系,这样查询数据库时,按照其要求的结果组装数据,将其封装到对应的一对一或一对多实体Bean中,传到前台进行显示。封装的部分代码如下:/封装一级回复与对应的二级回复ListOneToManyOneToOne, OneToOne data = null;if(replyones != null)data = new ArrayListOneToManyOneToOne, OneToOne(replyones.size();for(Replyone replyone : replyones)Student student = this.studentBiz.findByStuno(replyone.getStuno();OneToOne entity = new OneToOne(replyone, student);ListOneToOne many = this.replytwoBiz.findAllByRoneId( and roneid=? , replyone.getRoneid();data.add(new OneToManyOneToOne, OneToOne(entity, many);点击一级回复中的回复按钮会弹出一个新的div层,弹出方式为淡出淡入,该实现是运用了JQuery的动态效果。在该弹出层中对一级回复进行二次回复;另外,右上角的收起回复点击可以将二级回复隐藏,同时收起回复变为展开回复,再次点击可显示二级回复。图5.6 博文详细页5.5 问答模块设计5.5.1 浏览全部问题点击导航栏有问必答进入到问答页面,主要有按提问时间降序排列的问题列表,按照关键字搜索答案的搜索框以及提出问题的按钮。界面如图5.7:图5.7 有问必答页5.5.2 问答详细问答详细主要是对问题的具体展现,包括问题的标题,内容,提问时间,提问人以及被浏览次数等,下方还会有对该问题的具体回答列表。如果该问题是已采纳状态,则问题下方会显示所采纳的答案。右侧还会有最新的几条待解决问题供其他用户浏览。界面如图5.8:图5.8 问答详细页如果当前登录用户为该问题的提问人,则在每条回答的后面会有采纳的按钮,点击采纳会将该答案设为最佳答案,并将问题状态设为已解决。此时,所有回答的采纳按钮将不会再显示,避免重复采纳。5.5.3 提出问题提出问题页同发表博文页基本一致,同样是引用了第三方富文本编辑器插件ckeditor来进行问题的编辑,同样具有图片上传功能。5.6 个人中心设计5.6.1 个人资料更新在个人中心,用户可以对自己的个人资料进行查看和更新,其中包括基本信息的更新,用户密码的更新和用户头像的更新。1. 基本信息的更新包括用户生日,昵称,性别,爱好,手机,邮箱等的更新,同样也有相应的有效性验证来保证用户输入的合法。 界面如图5.9:图5.9 基本资料更新2. 个人密码更新必须输入原始密码才能修改,当用户输入完毕,发送请求到后台,后台会对原始密码进行校验,如果不正确会提示旧密码不正确。3. 个人头像更新会提供一个属性为file的input节点用于选择文件,后台使用struts2的封装好的File对象进行上传处理。而且会对文件的格式进行验证,如果不是.jpg,.png,.gif,.jpeg中的其中一种,则上传失败,页面上显示格式不正确提示用户。5.6.2 个人内容管理在内容管理模块中,用户可以对自己的博文和问答进行删除和更新。博文管理中,用户可以根据关键字,博文类别和博文日期进行相应的筛选,选出符合条件的博文进行管理。管理过程中,可以批量操作,提供了全选,反选和批量删除的按钮方便用户操作。界面如图5.10:图5.10 我的博文管理查询中会根据用户所选择的的过滤条件进行针对性的筛选,对用户选择的条件进行过滤,没有选择的则默认不作为过滤条件。其中关键的就是动态的拼接查询sql语句。5.6.3 后台管理本系统将后台管理融入到了个人中心,实现了自我管理。每个用户都有自己的权限,用户可以根据自己的权限在个人中心进行相应的后台管理。1. 权限原理介绍 后台管理页面中的用户管理,博文管理,问答管理都是根据登陆用户的权限列表动态显示的。下表为用户权限表:表5.1 权限具体条目表权限id权限名权限路径1用户管理/role_findall.action2博文管理/jsp/personal/manager/blogManager.jsp4问答管理/jsp/personal/manager/askManager.jsp下表为用户角色表:表5.2 角色具体条目表角色id角色名角色值1超级管理员72博文管理员23问答管理员40普通用户0其中,权限的id值分别设为了1,2,4;角色表中超级管理员具有所有的权限,所以其角色值为1+2+4=7;博文管理员只具有博文管理的权限,所以其角色值为2,同理问答管理员角色值为4;普通用户没有任何权限,所以其角色值为0。这样分配以后,用户登陆后可以根据用户的角色值来判断该用户是否具有某个权限。例如:想要判断角色值为7的超级管理员是否具有用户管理的权限,则需要计算该角色值按位与用户管理权限id的结果,即7&1 != 0,如果不等于0就说明该用户具有此权限。此方法是巧妙的利用了按位与的特性,只要符合这样的规则,就可以很简单的判断对应角色的对应权限。2. 用户管理在用户管理中,管理员可以根据不同的筛选条件来选择符合条件的用户列表。同时,可以控制特定用户是否有效,无效的禁止登陆,另外还可以修改用户的角色,让某个用户具有特定的权限。界面如图5.11:图5.11 用户管理3. 博文管理博文管理中,同样可以根据博主,博文标签,关键字和起止时间进行查询。在查询出的博文列表中会列出博主昵称,博文标题,博文标签和发表时间,管理员可以进行删除和批量删除。4. 问答管理问答管理中,管理员可以根据提问人,问题状态,关键字和提问时间进行查询,列表中也会相应的列举出提问人昵称,问题标题,问题状态和提问时间。管理员可以进行删除和批量删除。6 系统调试与测试6.1 测试概论软件测试在系统开发过程中是必不可少的一个环节,一个好的系统必然是在发布前经历了系统全面的测试。其在软件工程学上也是有很重要的地位,因为它直接决定了一个系统的好与坏。软件测试有很多种测试方法,比如白盒测试,黑盒测试,还有程序员经常说的冒烟测试,这些测试方法都能够很有效的发现系统潜在的漏洞。只有全面的测试才能保证项目的正常发布。6.2 程序的测试6.2.1 学生登录测试登录过程主要是对用户名密码的合法性判断,测试用例如下:表6.1 登录测试用例编号测试项用例目的输入数据实际结果结果比较说明001学生登陆测试用户名密码为空是否可登陆用户名:空密码:空提示输入用户名,输入密码符合002学生登陆测试用户名不存在,是否可登陆用户名:555密码:555提示用户名不存在符合003学生登陆测试密码输入错误是否可登陆用户名:admin密码:555提示密码错误符合6.2.2 学生注册测试注册信息包括用户名,密码,昵称,生日,爱好,邮箱和手机等,测试过程主要是对这些信息的验证,测试用例如下:表6.2 注册测试用例编号测试项用例目的输入数据实际结果结果比较说明001学生注册测试已注册用户名是否可注册用户名:admin提示用户名已存在符合002学生注册测试两次密码不同是否可注册密码:123重复密码:456提示两次密码不一致符合003学生注册测试邮箱格式不合法是否可注册邮箱:1111.ss提示邮箱格式不正确符合004学生注册手机格式不正确是否可注册手机:111222233手机格式不正确符合6.2.3 发表博文测试发表博文需要填写博文的标题,博文类型和博文内容,要对标题的长度,博文内容进行验证,测试用例如下:表6.3 发表博文测试用例编号测试项用例目的输入数据实际结果结果比较说明001发表博文测试标题为空是否可发表标题:空标题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论