基于jsp+servlet框架电子会议厅系统设计与开发_第1页
基于jsp+servlet框架电子会议厅系统设计与开发_第2页
基于jsp+servlet框架电子会议厅系统设计与开发_第3页
基于jsp+servlet框架电子会议厅系统设计与开发_第4页
基于jsp+servlet框架电子会议厅系统设计与开发_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)题目JAVAWEB设计网络11班级电子会议厅系统设计与开发系别软件工程系专业计算机网络技术班级网络10日期20130301毕业设计(论文)任务书课题内容性质软件开发课题来源性质教师收集的结合生产实际的课题设计/论文校内(外)指导教师职称工作单位及部门联系方式孔昊教授软件工程系网络教研、题目说明(目的和意义)随着互联网技术的迅猛发展与JAVA语言的不断完善与优化,JAVAWEB应用开发是一条很重要的开发途径。SUN公司推出的MODEL2模式规范了JAVAWEB的应用开发,而不断涌现出的优秀开源框架使得WEB的开发更加迅速、便捷,大大降低了系统的耦合度,每个层次在系统中都具有明确的分工。在框架的开发应用中,STRUTS是MODEL2的经典实现,具有组件的模块化、灵活性和重用性的优点;HIBERNATE由于其功能与性能的优越而成为STRUTS框架最理想的底层数据交换组件;SPRING则致力于JAVAEE应用的各层的解决方案,而不是仅仅专注于某一层的方案,它贯穿于表现层、业务层及持久层,并与其它框架无缝地整合。以JSP技术为基础,整合STRUTS、HIBERNATE与SPRING技术开发JAVAWEB应用已经成为主流的JAVAWEB开发技术体系。二、设计(论文)要求(工作量、内容)【设计内容】由于WEB开发的领域较广,本次设计不固定于某个具体项目,而将范围限定于网站的开发与设计中。比如在线新闻发布系统、在线销售系统、校务办公系统等常见网站系统。以“XX班级电子会议厅”系统为例,功能要求如下信息浏览、信息查询、信息评论、后台信息发布和维护。前台设计信息浏览(按照类别、时间等自定义方式进行查看)、信息评论、信息查询(按照时间段、标题关键字等自定义方式进行查询)。后台管理信息发布、信息维护(删除、修改某条信息)、评论维护(删除)。自定义模块用户可视具体网站要求,添加必要模块,如最新信息公布、图片展示等。【实施步骤】熟练掌握STRUTS、HIBERNATE、SPRING的开发过程,明确层次处理和细节实现(占工作量的15)根据功能要求设计所有的视图页面,明确数据走向,从理论上勾勒出成功的结构模型。占工作量的15设计合理数据库根据上面的工作,设计数据库。从结构、数量、表之间的关系方面确定最合理的表,确保功能顺利进行。占工作量的10子模块细化从划分的功能模块入手,为每一个模块设计MVC处理方式,重点确定控制层、逻辑业务层、DAO层及外部容器的相互关系占工作量的15子模块实现应用STRUTSSPRINGHIBERNATE技术实现模块功能,进行编程、测试和修改。占工作量的30系统调试各小组进行功能整合,由小到大地调试功能模块,完成整个系统要求。占工作量的10功能完善和改进做最后的修缮和调整,使得功能全面、贴近实际运行环境。占5三、进度表日期内容第15周第16周第17、18周第19周第20周确定设计内容,分析功能模块,明确数据走向及相互关系;设计合理的数据库,建立数据表。细化子模块,明确各模块的设计细节及层次结构。利用SSH架构逐一实现各个子模块,并完成调试。完成系统的整合,做功能修缮和调整。书写并上交论文,制作电子文档,为答辩做准备。完成日期2013年1月11日答辩日期2013年2月25日四、主要参考文献、资料、设备和实习地点及翻译工作量【设备】实践基地资源、个人设备资源及实习地点的设备资源,按照设计要求进行配置和安装。【设计环境】软件WINDOWSXP,JDK60以上版本,TOMCAT50以上版本,MYSQL50,DREAMWEAVER70以上,MYECLIPSE71以上版本。硬件以软件安装要求为准则,在设计的过程中确保程序调试的流畅。【实习地点】计算机实践基地、学生选定的调式地点与学生自己考察的外部地点相结合。【翻译工作量】对论文标题、关键字、摘要进行英文翻译。【参考文献】林建素,孟康健ECLIPSE开发学习笔记(第1版)北京电子工业出版社20084陈天河STRUTS、HIBERNATE|、SPRING集成开发宝典(第1版)北京电子工业出20075刘斌大型门户网站是这样炼成的(第1版)电子工业出版社20103孔昊,卢霞JAVAWEB设计实用教程(第1版)机械工业出版社20124指导教师签字教研室主任签字主管系领导签字年月日年月日年月日摘要随着计算机和网络技术的飞速发展,利用网络管理已经成为当代一种发展趋势。本文主要介绍了班级电子会议厅系统设计与实现过程,详细论述了总体设计思想、数据库设计和功能模块设计,实现了班级事务发布、维护、浏览、评论、查询等各个功能。在整个系统的设计过程中,充分考虑了数据库的安全性、一致性、稳定性和可靠性等问题,且操作界面简单,以方便征求广大同学对班级事物的建议和意见,从而加强班委工作的有效性。系统采用了先进的WEB开发技术和MVC模式设计,基于JSPSERVLET框架开发完成。系统的WEB服务器采用TOMCAT50,后台数据库使用MYSQL50,开发工具使用ECLIPSE32关键词班级事务管理系统;WEB开发;B/S架构;JSPSERVLET框架ABSTRACTALONGWITHTHEDEVELOPMENTOFTHEFINANCIALINTERNET,THEMANUALOPERATIONANDTHEOLDMANAGEMENTMODEHAVESERIOUSLYRESTRICTEDTHEQUALITYANDEFFICIENCYOFTHEPROBLEM,ANDTHECOMPUTERMANAGEMENTINSTEADOFMANUALMANAGEMENTISVERYNECESSARYTHISARTICLEMAINLYINTRODUCEDTHEBANKMANAGEMENTSYSTEMDESIGNANDREALIZATIONPROCESS,DISCUSSESTHEGENERALDESIGNTHOUGHT,DATABASEDESIGNANDFUNCTIONMODULEDESIGNREALIZETHEBANKMANAGEMENTSYSTEMOFEACHFUNCTIONTHEWHOLESYSTEMDESIGNPROCESS,FULLYCONSIDEREDTHEDATABASESECURITY,CONSISTENCYANDSTABILITYANDRELIABILITYOFTHEPROBLEM,ANDHASSTRONGGUIDEFUNCTION,FORTHEOPERATORPROVIDINGRICHDECISIONFUNCTIONS,ANDEASYTOOPERATEUSINGTHISSYSTEMINSTEADOFMANUALOPERATION,CANGREATLYDECREASEINTIMEANDSPACEWASTE,FORBANKCANSAVETHEMALOTOFMANPOWERANDMATERIALRESOURCESKEYWORDSCLASSAFFAIRSMANAGEMENTSYSTEMB/SSTRUCTUREWEBDEVELOPMENTJSPSERVLETFRAMEWORK目录1电子会议厅系统概述111开发背景及意义1111电子会议厅系统背景1112电子会议厅的发展趋势112班级电子会议厅系统内容与需求2121具体内容介绍2122系统功能需求22MVC设计模式321MVC组件的关系和功能322MVC的框架结构43系统分析531任务描述532功能分析54数据库设计741数据库需求分析742数据库实体设计743数据库逻辑结构设计95框架结构设计1051框架结构分析1052控制器设计1153JAVABEAN设计1254WEB项目建立与目录结构设计126功能设计与实现1561班级事务发布功能15611视图设计15612控制器设计16613处理BEAN设计1762班级事务维护功能19621视图设计21622控制器设计23623处理BEAN设计2563班级事务浏览功能26631视图设计27632控制器设计28633处理BEAN设计2964班级事务评论功能29641视图设计29642控制器设计30643处理BEAN设计3065班级事务查询功能31651视图设计32652控制器设计33653处理BEAN设计347系统测试3871软件测试理论3872本系统测试过程38设计总结39参考文献41致谢语421电子会议厅系统概述11开发背景及意义111电子会议厅系统背景现在随着计算机应用范围的不断扩大,其优异的性能已逐渐被人们所接受,在社会经济不断提高的环境下,计算机技术进行的各种管理给人们带来了很大的方便。与传统的管理方式相比,计算机快捷、高效、方便的特点为人类所不及。日益快捷的生活节奏要求人们工作的效率不断提高,为了适应现代的生活方式的转变,使用计算机进行各种事务管理的系统应运而生。电子会议厅系统就是利用网络进行班级事务管理的系统,与传统的开班会形式的班级事务管理相比该系统具有高效快捷的特点。电子会议厅系统利用的已经非常成熟的框架技术。班级电子会议厅可以拉近学生间的距离,方便学生们对班级中各项事务给出意见和建议,从而加强班委工作的有效性。112电子会议厅的发展趋势目前,很多管理者还是沿用以前的管理方式,这样的话,做出来的决策只能代表一部分人的想法,而不是所有人。而当今社会,是一个追求民主的时代。所以说,班级电子会议厅必然成为一种发展趋势。电子会议厅系统是一个利用网络进行班级事务管理的系统。该系统利用三大框架技术(STRUTSSPRINGHIBERNATE)作为技术支撑,以JAVAWEB开发中的MVC模式为设计理念,以实现功能健全的班级事务管理系统为目的。电子会议厅系统是一个对班级事务进行网上管理的JAVAWEB工程,这个系统有两类用户,管理员和普通用户。管理员实时的发布一些班级事务的消息,普通用户能够看到消息内容,并且可以对事务做出评论。管理员可以对消息的内容进行编辑,例如,对消息内容进行修改、删除等。普通用户只能浏览消息内容。12班级电子会议厅系统内容与需求121具体内容介绍(1)收集班级事务管理系统的需求(2)数据库设计(3)系统设计与实现(4)系统测试122系统功能需求系统能够实现班级事务发布、班级事务维护(包括对班级事务的编辑、修改、删除等)班级事务查询(包括按时间查询和按关键字查询)。2MVC设计模式21MVC组件的关系和功能MVC模式的核心思想是有效地组合“视图”、“模型”和“控制器”,即模型视图控制器(MODELVIEWCONTROLLER),简称MVC。典型的MVC模式所包含的模块、每个模块的功能以及模块之间的协作关系如图21所示图21MVC组件的关系和功能模型是整个应用程序的核心,可以用来封装应用程序的状态和数据状态可以用来控制对模型的调用,而数据是视图中要向客户端展示的内容。视图是用来显示模型内容的组件,是用来显示用户数据并且与用户进行交互的前端。在设计过程中,可以把它形象地理解为页面,如HTML、JSP、XML等。控制器用来对用户的请求做出反应,创建和设定模型,协调模型和视图之间的行为,三者共同为用户服务。22MVC的框架结构MVC模式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。MVC的框架结构图如图22所示,可以很清楚的看出它的工作流程。图22MVC框架结构3系统分析31任务描述为某个班级创建一个“电子会议厅”,实现对班级事务的管理和讨论,加强班级事务管理的有效性。按照功能划分,涉及到的开发工作有信息发布、信息维护(包括修改和删除)、信息浏览、信息评论和信息查询。功能结构如图31所示图31“电子会议厅”实现的功能结构32功能分析根据要实现的功能要求,将它们集中设计在同一个视图中,如图32所示图32项目运行主界面功能模块说明如下所示班级事务发布后台维护模块,由管理员进行信息的发布。班级事务维护由管理员对已经发布了的信息进行修改或删除。班级事务浏览用户可以通过它查看到信息的细节,为班级成员参与班级事务管理提供了平台。班级事务评论随着用户对事务的浏览,在显示每条信息的内容时,可以看到评论信息,用户可以通过该功能发表对班级事务的看法,提出建议和意见。班级事务查询用户输入信息标题中的关键字,就可以将符合条件的所有班级事务显示出来,供用户浏览或评论。4数据库设计41数据库需求分析在系统开发之初,首先要明确用户需求,确定系统要实现的功能;接下来就要根据功能要求,分析数据来源和处理过程,最后规划出合理的数据库系统。我们将通过以下ER图如图41所示完成数据库的设计SORTSORTIDINTEGERNAMEVARCHAR20KEY_1AFFAIRAFFAIRIDINTEGERTITLEVARCHAR50CONTENTVARCHAR300FBTIMEDATELISTLISTHANDLEGETSORTSREQUESTSETATTRIBUTE“SORTLIST“,LISTREQUESTGETREQUESTDISPATCHER“AFFAIRS_ADDJSP“FORWARDREQUEST,RESPONSEAFFAIRSADDJAVA程序的设计这个SERVLET的功能是通过REQUEST对象获取用户提交的数据,再将这些信息存储到数据BEAN对象中,把这个对象作为参数传递到处理BEAN的方法中进行数据存储,根据存储结果调用视图进行显示。AFFAIRSADDJAVA程序的关键代码如下PUBLICVOIDDOPOSTHTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSSERVLETEXCEPTION,IOEXCEPTIONAFFAIRAFFAIRNEWAFFAIRAFFAIRHANDLEHANDLENEWAFFAIRHANDLEINTNUMHANDLERECORDCOUNTSTRINGTITLEREQUESTGETPARAMETER“TITLE“STRINGCONTENTREQUESTGETPARAMETER“CONTENT“INTSORTIDINTEGERPARSEINTREQUESTGETPARAMETER“SORT“AFFAIRSETAFFAIRIDNUMAFFAIRSETTITLENEWSTRINGTITLEGETBYTES“ISO88591“AFFAIRSETCONTENTNEWSTRINGCONTENTGETBYTES“ISO88591“DATEFORMATDATEFORMATDATEFORMATGETDATETIMEINSTANCEDATEDATENEWDATEAFFAIRSETFBTIMEDATEFORMATFORMATDATE/AFFAIRSETFBTIMENEWDATEAFFAIRSETSORTIDSORTIDIFHANDLESAVEAFFAIRREQUESTSETATTRIBUTE“RESULT“,“OK,添加记录成功“ELSEREQUESTSETATTRIBUTE“RESULT“,“SORRY,添加记录失败“REQUESTGETREQUESTDISPATCHER“RESULTJSP“FORWARDREQUEST,RESPONSE613处理BEAN设计根据前面的分析,程序中涉及到两个处理BEAN的方法设计1针对SORT表的处理BEANSORTHANDLEJAVA它要完成SORT表所有数据的提取,供用户在视图中选择事务类别;SORTHANDLEJAVA程序的关键代码如下PUBLICCLASSSORTHANDLECONNECTIONCONSTATEMENTSTMTRESULTSETRSPUBLICLISTGETSORTSLISTLISTNEWARRAYLISTSORTSORTTRYCONDATABASEFACTORYGETCONNECTIONSTMTCONCREATESTATEMENTSTRINGSTR“SELECTFROMSORT“RSSTMTEXECUTEQUERYSTRWHILERSNEXTSORTNEWSORTSORTSETSORTIDRSGETINT“SORTID“SORTSETNAMERSGETSTRING“NAME“LISTADDSORTCATCHEXCEPTIONEEPRINTSTACKTRACEFINALLYTRYRSCLOSESTMTCLOSECONCLOSECATCHSQLEXCEPTIONEEPRINTSTACKTRACERETURNLIST2针对AFFAIR表的处理BEANAFFAIRHANDLEJAVA到目前为止,在这个BEAN中需要完成两项工作统计目前数据表中的记录数;完成事务信息的存储。AFFAIRHANDLEJAVA程序的关键代码如下PUBLICCLASSAFFAIRHANDLECONNECTIONCONSTATEMENTSTMTRESULTSETRSPUBLICINTRECORDCOUNTINTNUM0TRYCONDATABASEFACTORYGETCONNECTIONSTMTCONCREATESTATEMENTSTRINGSTR“SELECTFROMAFFAIR“RSSTMTEXECUTEQUERYSTRWHILERSNEXTNUMCATCHEXCEPTIONEEPRINTSTACKTRACEFINALLYTRYRSCLOSESTMTCLOSECONCLOSECATCHSQLEXCEPTIONEEPRINTSTACKTRACERETURNNUMSAVE方法的代码如下PUBLICBOOLEANSAVEAFFAIRAFFAIRBOOLEANBOOFALSEINTNUMAFFAIRGETAFFAIRIDSTRINGTITLEAFFAIRGETTITLESTRINGCONTENTAFFAIRGETCONTENTSTRINGFBTIMEAFFAIRGETFBTIMEINTSORTIDAFFAIRGETSORTIDTRYCONDATABASEFACTORYGETCONNECTIONSTMTCONCREATESTATEMENTSTRINGSTR“INSERTINTOAFFAIRVALUES“STRNUM“,“TITLE“,“CONTENT“,“FBTIME“,“SORTID“STMTEXECUTEUPDATESTRBOOTRUECATCHEXCEPTIONEEPRINTSTACKTRACEFINALLYTRYSTMTCLOSECONCLOSECATCHSQLEXCEPTIONEEPRINTSTACKTRACERETURNBOO62班级事务维护功能1事务编辑对已经“入库”的数据进行各项修改操作,使其满足要求后再次被存储,更新表中的原有数据。点击了“班级事务维护”链接后,要出现事务分类列表,以便用户选择;点击将要修改的事务信息的“编辑”链接,以便进入到编辑界面进行修改操作;SERVLET接收用户的修改数据后,调用处理BEAN完成数据的更新;根据更新结果,调用视图显示结果。处理流程如图63所示。图63编辑事务流程图2事务删除对已经“入库”的数据进行删除操作。点击了“班级事务维护”链接后,要出现事务分类列表,以便用户选择;从事务列表中点击将要删除的事务信息的“删除”链接,出现询问提示;SERVLET接收了确定信息后,将该条事务信息及与之相关的所有评论一并一并删除;调用视图显示事务列表,以便进行结果对比。如图64所示图64删除事务流程图621视图设计1修改超级链接修改LEFTJSP文件中关于“班级事务维护”的超级链接班级事务维护2建立JSP文件代码当AFFAIRSMAINTAIN得到分类信息后,交给SORTS_LISTJSP视图去显示,以便用户先选择维护类别。在显示分类名称的同时程序设计了超链接,并且交给一个名为AFFAIRSLISTMAINTAIN的SERVLET,同时将分类号也传了过去,目的是要获得这个分类下的所有事务信息,以便在视图中显示,供用户浏览。建立代码的文件为AFFAIRS_LIST_MAINTAINJSP。指定栏目中的默认选项如果点击“编辑”,会出现如图65的视图图65编辑事务页面栏目列表要默认显示所选事务隶属的分类,如学习竞赛。由于栏目中的分类来自SERVLET获得的数据,在视图中是按数据表中的顺序通过循环加载进去的,所以需要在AFFAIR_MODIFYJSP文件中特别处理。显示结果页面如果点击“删除”按钮,在确认后不仅仅在数据表中删除该记录,还应该再次显示事务列表信息,看到删除数据后的效果,以便加强对比。如果单击“删除”按钮,会出现如图66所示的效果图。图66删除指定事务这个页面是AFFAIRS_LIST_MAINTAINJSP文件。在做这个功能时,为了更好地测试程序设计思路,在COMMENT表中应该事先输入一些评论数据。622控制器设计1)AFFAIRSMAINTAINJAVA的设计这个SERVLET的功能是要得到SORT表中的数据,再传递给SORTS_LISTJSP页面进行类别显示。SERVLET中DOGET方法的代码如下PUBLICVOIDDOGETHTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSSERVLETEXCEPTION,IOEXCEPTIONSORTHANDLEHANDLENEWSORTHANDLELISTLISTHANDLEGETSORTSREQUESTSETATTRIBUTE“SORTLIST“,LISTREQUESTGETREQUESTDISPATCHER“SORTS_LISTJSP“FORWARDREQUEST,RESPONSE2)AFFAIRSLISTMAINTAINJAVA的设计这个SERVLET的功能是当用户点击了某一个事务类别后,根据视图传递过来的类别号SORTID,再调用处理BEAN中的相应方法,得到所有隶属于这个类别号的事务信息,并调用视图进行显示。SERVLET中的DOGET方法的代码如下PUBLICVOIDDOGETHTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSSERVLETEXCEPTION,IOEXCEPTIONINTEGERSORTIDINTEGERVALUEOFREQUESTGETPARAMETER“SORTID“SORTHANDLESORTHANDLENEWSORTHANDLESORTSORTSORTHANDLEGETSORTINFORSORTIDSTRINGSORTNAMESORTGETNAMEAFFAIRHANDLEAFFAIRHANDLENEWAFFAIRHANDLELISTLISTAFFAIRHANDLEAFFAIRSLISTSORTIDREQUESTSETATTRIBUTE“AFFAIRLIST“,LISTREQUESTSETATTRIBUTE“SORTNAME“,SORTNAMEREQUESTGETREQUESTDISPATCHER“AFFAIRS_LIST_MAINTAINJSP“FORWARDREQUEST,RESPONSE3)AFFAIRSMODIFYJAVA的设计当用户点击“编辑”链接时,由这个SERVLET接收视图传递过来的参数AFFAIRID根据这个AFFAIRID号调用处理BEAN中的方法得到这条事务的全部信息,交给视图去显示。SERVLET中的DOGET方法的代码如下PUBLICVOIDDOGETHTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSSERVLETEXCEPTION,IOEXCEPTIONINTEGERAFFAIRIDINTEGERVALUEOFREQUESTGETPARAMETER“AFFAIRID“AFFAIRHANDLEAFFAIRHANDLENEWAFFAIRHANDLEAFFAIRAFFAIRAFFAIRHANDLEGETAFFAIRAFFAIRIDREQUESTSETATTRIBUTE“AFFAIR“,AFFAIRSORTHANDLESORTHANDLENEWSORTHANDLELISTLISTSORTHANDLEGETSORTSREQUESTSETATTRIBUTE“SORTLIST“,LISTREQUESTGETREQUESTDISPATCHER“AFFAIR_MODIFYJSP“FORWARDREQUEST,RESPONSE4)AFFAIRSUPDATEJAVA的设计当用户修改完事务信息,点击“提交修改”按钮后,表单的ACTION参数会指向这个SERVLET,并将AFFAIRID参数也传递过来ACTION“AFFAIRSUPDATEAFFAIRID“此时的工作与事务发布的工作几乎相同。5)AFFAIRSDELETEJAVA的设计当用户确定要删除某条事务信息后,这个SERVLET开始工作它从视图获取了两个参数(事务号和分类号)AFFAIRIDINTEGERSORTIDINTEGERVALUEOFREQUESTGETPARAMETER“SORTID“AFFAIRHANDLEAFFAIRHANDLENEWAFFAIRHANDLECOMMENTHANDLECOMMENTHANDLENEWCOMMENTHANDLEIFAFFAIRHANDLEDELETEAFFAIRIDSORTHANDLESORTHANDLENEWSORTHANDLESORTSORTSORTHANDLEGETSORTINFORSORTIDSTRINGSORTNAMESORTGETNAMELISTLISTAFFAIRHANDLEAFFAIRSLISTSORTIDREQUESTSETATTRIBUTE“AFFAIRLIST“,LISTREQUESTSETATTRIBUTE“SORTNAME“,SORTNAMEREQUESTGETREQUESTDISPATCHER“AFFAIRS_LIST_MAINTAINJSP“FORWARDREQUEST,RESPONSEELSEREQUESTSETATTRIBUTE“RESULT“,“SORRY,删除记录失败“REQUESTGETREQUESTDISPATCHER“RESULTJSP“FORWARDREQUEST,RESPONSE623处理BEAN设计在这一阶段的操作中,设计了若干个方法,涉及到数据库中的3张表,这些细节可以在SERVLET的设计中找到。下面把新增的方法列出来针对SORT表的处理BEANSORTHANDLEJAVAPUBLICSORTGETSORTINFORINTEGERSORTID得到某个分类的信息,包括分类号、分类名称,以SORT类对象的形式返回。针对AFFAIR表的处理BEANAFFAIRHANDLEJAVAPUBLICLISTAFFAIRSLISTINTEGERSORTID得到隶属于某个分类的所有事务信息,并存储到LIST表中返回;PUBLICAFFAIRGETAFFAIRINTEGERAFFAIRID根据参数指定的事务号,查找到这条事务信息,以AFFAIR类对象的形式返回;PUBLICBOOLEANUPDATEAFFAIRAFFAIR,INTEGERAFFAIRID根据AFFAIRID参数,找到数据表中的记录并更新成AFFAIR对象中的各个属性值;PUBLICBOOLEANDELETEINTEGERAFFAIRID删除AFFAIRID指定的事务记录。PUBLICVOIDRESORTINGINTEGERAFFAIRID将表中的AFFAIRID字段的值重新排序,使其连续。针对COMMENT表的处理BEANCOMMENTHANDLEJAVAPUBLICBOOLEANDELETEBYAFFAIRIDINTEGERAFFAIRID删除事务号是AFFAIRID的所有评论记录。63班级事务浏览功能本质操作就是在数据表进行查找数据的过程。用户选择了某个浏览类别时,由SERVLET根据接收到的事务类别号调用BEAN中的方法得到列表信息;用户点击了某条事务的“详细”链接时,由SERVLET根据接收到的事务号调用BEAN中的方法得到该事务的细节。处理流程如图67所示。图67浏览班级事务流程图631视图设计(1)显示某一类事务列表这个界面与维护界面类似,只是每一条事务信息后面变成了“详细”链接,对应着AFFAIRS_LIST_VIEWJSP文件。如图68所示图68点击“学习竞赛”呈现出的视图界面显示某一条事务信息当单击了第一条事务的“详细”后,会出现如图69所示图69查看具体的实物细节632控制器设计AFFAIRSLISTVIEWJAVA的设计这个SERVLET的功能是要得到某个分类下的所有事务信息,它的代码与前面讲到的AFFAIRSLISTMAINTAINJAVA几乎一样,只是调用了不同的页面视图而已,即REQUESTGETREQUESTDISPATCHER“AFFAIRS_LIST_VIEWJSP“FORWARDREQUEST,RESPONSEAFFAIRDETAILJAVA的设计这个SERVLET要根据视图传递过来的事务号,得到这条事务的详细信息;由于要显示该事务的所属类别,所以还要得到这个数据。DOGET方法的代码如下PUBLICVOIDDOGETHTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSSERVLETEXCEPTION,IOEXCEPTIONINTEGERAFFAIRIDINTEGERVALUEOFREQUESTGETPARAMETER“AFFAIRID“AFFAIRHANDLEAFFAIRHANDLENEWAFFAIRHANDLEAFFAIRAFFAIRAFFAIRHANDLEGETAFFAIRAFFAIRIDSORTHANDLESORTHANDLENEWSORTHANDLESORTSORTSORTHANDLEGETSORTINFORAFFAIRGETSORTIDSTRINGSORTNAMESORTGETNAMECOMMENTHANDLECOMMENTHANDLENEWCOMMENTHANDLELISTCOMMENTLISTCOMMENTHANDLEGETCOMMENTLISTAFFAIRIDREQUESTSETATTRIBUTE“COMMENTLIST“,COMMENTLISTREQUESTSETATTRIBUTE“AFFAIR“,AFFAIRREQUESTSETATTRIBUTE“SORTNAME“,SORTNAMEREQUESTGETREQUESTDISPATCHER“AFFAIR_DETAILJSP“FORWARDREQUEST,RESPONSE633处理BEAN设计在这个功能模块中,SERVLET对数据的处理调用了前面已经设计好的方法,没有出现新方法,所以不再设计处理BEAN。64班级事务评论功能考虑到用户操作的习惯,在浏览某条事务时,可以看到所有用户对它的评论;用户也可以发表评论;发表了评论之后,页面仍然返回到该条事务的浏览界面,便于用户查看刚刚提交的评论。641视图设计我们将视图分两个环节来设计。评论区设计当用户浏览到某一条事务信息时,将会在信息的底端看到评论区,此时用户可以书写并提交评论。只需改动AFFAIR_DETAILJSP文件的代码,加入一个表单即可。效果图如图610所示图610发表评论显示评论区设计当发表了评论之后,用户希望立即看见自己的评论,即回到刚才的页面既可以看到事务信息,又可以看见自己的评论,当然也可以看见其他同学对这条事务的所有评论。需要改动AFFAIR_DETAILJSP文件的代码,在评论区之前加入对所有评论的显示即可。效果如图611所示图611显示评论642控制器设计COMMENTADDJAVA的设计这个控制器完成“发表评论”后的处理工作,它所做的具体工作有以下四点1)根据AFFAIRID得到事务对象,保存到REQUEST对象中;2)将SORTNAME保存到REQUEST对象中;3)取出表单中的数据形成COMMENT评论对象,调用BEAN中的方法保存到后台数据表中。4)取出针对这条事务的所有评论,存储到REQUEST对象中,调用视图回到评论页面。(2)AFFAIRDETAILJAVA的修改AFFAIR_DETAILJSP视图除了要提供发表评论的区域,还要显示已有的评论,即AFFAIRDETAILJAVA还要提供针对该条事务的所有评论信息,并将数据存储到REQUEST中,供视图取出后显示。根据这个设计思路,SERVLET必须将取得的评论信息以对应的索引关键字存储到REQUEST对象中。643处理BEAN设计这个模块中涉及到的处理方法都是对COMMENT表的操作,所以在COMMENTHANDLE类中进行添加。针对COMMENT表的处理BEANCOMMENTHANDLEJAVAPUBLICBOOLEANSAVECOMMENTCOMMENT将一条评论信息保存到数据表里,评论的各个细节由参数COMMENT对象描述;PUBLICLISTGETCOMMENTLISTINTEGERAFFAIRID从COMMENT表中筛选出事务号为AFFAIRID的所有评论信息,并存储到LIST表中返回。65班级事务查询功能在这个系统中,选择了两种查询方式按标题的关键字查询和按时间段查询。按标题关键字查询用户只需要输入标题中的关键字,即可在后台通过模糊查询得到结果,执行方式比较简单。查询模块的处理流程如图612所示图612查询模块的处理流程按时间段查询基于两个因素,我们将这种查询方式细化到年和某个学期的选择某个班级的在校时间一般为4年,时间跨度较小;1学生的活动以学期为基本单位。2用户提交的数据有两个某一年和某学期。SERVLET则根据这两个数据,在AFFAIR数据表中进行细致的筛选,得到某个学期的事务列表,再交给视图进行显示。651视图设计(1)选择查询方式当用户在主界面选择了“班级事务查询”功能后,会给用户一个选择界面,按照不同的方式进行选择。在QUERY_PATTERNJSP中设计两种选择方式,并根据处理细节选择合适的页面或SERVLET即可。效果图如图613所示图613查询方式的选择(2)按标题查询界面设计用户在这个界面中QUERY_TITLEJSP输入关键字后,会提交数据由SERVLET处理,因此程序会设计表单完成这个功能。效果图如图614所示图614按标题中的关键字查询(3)按时间段查询界面设计界面中QUERY_TIMEJSP文件出现的设计要素是两个下拉列表,数据来自于SERVLET的处理,数据的获取将在控制器中解释。效果图如图615所示图615选择时间段查询652控制器设计QUERYTITLEJAVA的设计这个SERVLET要从视图中取得用户输入的关键字,再调用处理BEAN中的方法进行模糊查询后,得到数据列表。由于要调用AFFAIRS_LIST_VIEWJSP页面进行显示,所以要准备必要的显示数据需要将得到的查询结果和类别名称都要存储到内置对象中。QUERYJAVA的设计这个SERVLET要准备时间数据,供QUERY_TIMEJSP页面使用。主要操作通过处理方法GETYEARS,得到这个班自从发布事务信息以来所登记过的时间;将时间划分成全部、春季学期、秋季学期三个时间段;将年份数据和时间段数据分别存储在LIST列表中,并由内置对象保存,用于视图的显示。QUERYTIMEJAVA的设计这个SERVLET在获取了用户选择的时间段后,调用BEAN中的方法查询满足条件的数据,再调用视图进行显示。通过REQUEST对象得到参数“YEAR”的数据,恰好是下拉列表中所显示的年份值;通过REQUEST对象得到参数“MONTH”的数据,对应了时间段在下拉列表中的下标值,即全部、春季学期、秋季学期分别对应字符串“0“、“1“、“2“;将得到的查询结果和提示信息存储到内置对象中,用于视图显示。653处理BEAN设计查询功能是针对事务信息进行设计的,所以对表的操作也就只涉及到了AFFAIR表。在完成这个模块的设计时,又增添了3个方法,归纳如下针对AFFAIR表的处理BEANAFFAIRHANDLEJAVAPUBLICLISTGETYEARS得到班级事务所涉及到的年份数据,以便在视图中显示,让用户进行选择;PUBLICLISTQUERYBYTITLESTRINGKEYTITLE根据标题关键字进行查询,将结果存储到LIST表中;PUBLICLISTQUERYBYTIMESTRINGYEAR,STRINGMONTH根据年份及时间段数据进行查询,将结果存储到LIST表中。(1)视图设计修改LEFTJSP文件中的超链接班级事务查询QUERY_PATTERNJSP的关键代码按标题关键字查询按时间段查询(2)STRUTS设计组件设计效果如图616所示图616组件之间的关系代码设计QUERYTITLEACTIONJAVA的主要代码QUERYTITLEACTIONFORMQUERYTITLEQUERYTITLEACTIONFORMFORMSTRINGKEYTITLEQUERYTITLEGETKEYTITLEKEYTITLENEWSTRINGKEYTITLEGETBYTES“ISO88591“BEANSFACTORYFACTORYNEWBEANSFACTORYAFFAIRSERVICESERVICEFACTORYGETAFFAIRSERVICELISTLISTSERVICEQUERYBYTITLEKEYTITLEREQUESTSETATTRIBUTE“AFFAIRLIST“,LISTREQUESTSETATTRIBUTE“SORTNAME“,“查询结果“RETURNMAPPINGFINDFORWARD“QUERYTITLE“QUERYTIMEACTIONJAVA的主要代码QUERYTIMEACTIONFORMQUERYTIMEQUERYTIMEACTIONFORMFORMSTRINGYEARQUERYTIMEGETYEARSTRINGMONTHQUERYTIMEGETMONTHBEANSFACTORYFACTORYNEWBEANSFACTORYAFFAIRSERVICESERVICEFACTORYGETAFFAIRSERVICELISTLISTSERVICEQUERYBYTIMEYEAR,MONTHREQUESTSETATTRIBUTE“AFFAIRLIST“,LISTREQUESTSETATTRIBUTE“SORTNAME“,“您的查询结果如下“RETURNMAPPINGFINDFORWARD“QUERYTIME“(3)业务层设计AFFAIRSERVICEJAVA的主要代码PUBLICLISTQUERYBYTITLESTRINGKEYTITLELISTLISTNEWARRAYLISTTRYLISTDAOFINDBYTITLEHQLKEYTITLECATCHEXCEPTIONEEPRINTSTACKTRACERETURNLISTPUBLICLISTGETYEARSLISTLISTNEWARRAYLISTTRYLISTDAOGETYEARSCATCHEXCEPTIONEEPRINTSTACKTRACERETURNLIST(4)持久化层设计DAO层类需要为业务层编写相应的查询方法,在AFFAIRDAOJAVA类中写出HQL语句,具体代码是在AFFAIRDAOJAVA中添加如下代码PUBLICLISTFINDBYTITLEHQLJAVALANGSTRINGTITLELOGDEBUG“SELECTINGAFFAIRSINSTANCE“TRYSTRINGHSQL“FROMAFFAIRASAWHEREATITLELIKE“TITLE“SESSIONSESSIONSUPERGETHIBERNATETEMPLATEGETSESSIONFACTORYOPENSESSIONQUERYQUERYSESSIONCREATEQUERYHSQLLISTLISTQUERYLISTLOGDEBUG“SELECTSUCCESSFUL“RETURNLISTCATCHRUNTIMEEXCEPTIONRELOGERROR“SELECTFAILED“,RETHROWREPUBLICLISTGETYEARSLOGDEBUG“SELECTINGYEARS“TRYSTRINGHSQL“SELECTSUBSTRINGAFBTIME,1,4FROMAFFAIRASAGROUPBYSUBSTRINGAFBTIME,1,4“SESSIONSESSIONSUPERGETHIBERNATETEMPLATEGETSESSIONFACTORYOPENSESSIONQUERYQUERYSESSIONCREATEQUERYHSQLLISTLISTQUERYLISTLOGDEBUG“DELETESUCCESSFUL“RETURNLISTCATCHRUNTIMEEXCEPTIONRELOGERROR“DELETEFAILED“,RETHROWREPUBLICLISTFINDBYTIMEHQLJAVALANGSTRINGYEAR,JAVALANGSTRINGMONTHLOGDEBUG“SELECTINGAFFAIRSINSTANCE“STRINGHSQLNULLTRYINTTEMPINTEGERPARSEINTMONTHSWITCHTEMPCASE0HSQL“FROMAFFAIRASAWHERESUBSTRINGAFBTIME,1,4“YEARBREAKCASE1HSQL“FROMAFFAIRASAWHERESUBSTRINGAFBTIME,6,2BETWEEN01AND06ANDSUBSTRINGAFBTIME,1,4“YEARBREAKCASE2HSQL“FROMAFFAIRASAWHERESUBSTRINGAFBTIME,6,2BETWEEN07AND12ANDSUBSTRINGAFBTIME,1,4“YEARBREAKSESSIONSESSIONSUPERGETHIBERNATETEMPLATEGETSESSIONFACTORYOPENSESSIONQUERYQUERYSESSIONCREATEQUERYHSQLLISTLISTQUERYLISTLOGDEBUG“DELETESUCCESSFUL“RETURNLISTCATCHRUNTIMEEXCEPTIONRELOGERROR“DELETEFAILED“,RETHROWRE7系统测试71软件测试理论软件测试是软件质量保证的关键,也是对需求、设计和编码的最终评审。软件的测试过程需要经历模块测试、组装测试和确认测试这3个阶段。模块测试是对每一个功能模块进行一一测试,测试后发现错误,需要回到编码、设计及需求分析阶段作相应的修改,“

温馨提示

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

评论

0/150

提交评论