1、毕业设计论文学生姓名学号所在学院专业设计论文题目基于STRUTS20的外企会议管理系统指导教师2014年6月I基于STRUTS2的外企会议管理系统设计与实现摘要外企会议管理系统主要是基于外企内部快速高效的工作节奏以及工作的需求,应用计算机互联网技术,实现企业对会议方面进行管理的系统。系统分为管理员、经理和普通员工三种不同的用户权限。所有权限都可以查看和修改个人资料。管理员需要做的就是将数据输入到系统的数据库中去,可以进行用户管理和会议室的添加、修改、删除、审批以及设备的添加、修改、删除、审批。经理可以进行会议室的预定、归还,设备的预定和归还,发布会议,查看会议,查看留言和会议图片的操作。普通员
2、工可以进行查看会议,留言和会议图片的功能。系统简洁、大方,容易上手,适合大部分企业使用。系统开发采用了J2EE技术,使用MYECLIPSETOMCATMYSQL开发环境,系统前台使用JSP配合JQUERY网页技术,通过AJAX与STRUTS2实现了与后台的数据交互,对数据库的访问则使用了HIBERNATE技术,而SPRING则是用来对STRUTS2和HIBERNATE进行管理。另外,MYSQL数据库为系统开发提供强大完善的数据库支持环境。关键词会议浏览器/服务器架构数据库IIWITHTHEIMPLEMENTATIONOFFOREIGNCONFERENCEMANAGEMENTSYSTEMDESI
3、GNBASEDONSTRUTS2ABSTRACTFOREIGNMEETINGMANAGEMENTSYSTEMISMAINLYBASEDONTHEFASTWORKANDEFFICIENTINTERNALRHYTHMSOFFOREIGNANDTHENEEDSOFWORK,WEWILLUSETHECOMPUTERINTERNETTECHNOLOGY,TOREALIZETHEMEETINGMANAGEMENTSYSTEMSYSTEMISDIVIDEDINTOADMINISTRATORS,MANAGERSANDEMPLOYEESOFTHREEDIFFERENTUSERPERMISSIONSALLPRIV
4、ILEGESCANVIEWANDMODIFYPERSONALDATAADMINISTRATORSNEEDTODOISTOENTERDATAINTOADATABASESYSTEMGO,YOUCANDOTHEUSERMANAGEMENTANDMODIFY,DELETE,ADD,ANDAPPROVAL,MODIFY,DELETEANDAPPROVALMEETINGROOMSMANAGERSCANBESCHEDULEDCONFERENCEROOM,RESTITUTION,SCHEDULEDANDRETURNTHEEQUIPMENT,PUBLISHINGCONFERENCE,VIEWTHEMEETING
5、,VIEWPICTUREMESSAGESANDCONFERENCEOPERATIONSGENERALSTAFFHAVETHEPOWEROFVIEWTHEMEETING,PICTURES,MESSAGESANDSOONSYSTEMISSIMPLE,ELEGANT,EASYTOUSE,SUITABLEFORMOSTBUSINESSUSESYSTEMDEVELOPMENTUSETHEJ2EETECHNOLOGYINTHEMYECLIPSETOMCATMYSQLDEVELOPMENTENVIRONMENTTHEFOREGROUNDOFTHESYSTEMISDEVELOPPEDWITHJQUERYJSP
6、WEBTECHNOLOGY,ANDUSESTRUTS2ANDAJAXACHIEVEDTHROUGHINTERACTIONWITHTHEBACKGROUNDDATA,USINGTHEHIBERNATETECHNOLOGYTOACCESSTHEDATABASE,ANDUSETHESPRINGTOMANAGESTRUTS2ANDHIBERNATEINADDITION,MYSQLDATABASESYSTEMPROVIDESAPOWERFULDEVELOPMENTENVIRONMENTWITHTHECOMPLETEDATABASESUPPORTKEYWORDSMEETINGTHEBROWSER/SERV
7、ERARCHITECTUREDATABASEIII目录摘要IABSTRACTII第一章前言111课题研究背景112课题研究意义1第二章系统开发的平台与技术介绍321开发环境3211J2EE3212TOMCAT3213MYSQL322开发技术4221JQUERY4222AJAX4223JAVASCRIPT4224STRUTS24225SPRING4226HIBERNATE523开发工具5231MYECLIPSE105232FIREBUG5第三章系统概要设计631系统功能需求632系统介绍8321系统总体框架8322系统总体设计8323系统总体特点933系统功能说明9IV第四章数据库设计1141数
8、据库分析1142数据库表设计14第五章系统详细设计及实现1851登录注册模块设计及实现18511职位的获取18512登录功能的实现19513注册功能的实现2152个人信息模块的设计与实现23521登录状态的保存和拦截23522个人信息的查看与修改2553管理员模块的设计与实现26531用户管理功能的实现26532会议室管理功能的实现29533设备管理功能的实现3054经理模块的设计与实现31541会议室管理功能的实现31542设备管理功能的实现32543发布会议管理功能的实现3255普通员工模块的设计与实现35551查看会议功能35552留言板功能36553会议图片功能37结束语40参考文献4
9、1致谢42南京工业大学本科生毕业设计(论文)1第一章前言11课题研究背景外企会议管理系统是外企管理人员为了让会议信息快速地传达给参会人员,大幅度地提高开会的效率。传统的传播会议的途径主要以口头通知为主,信息传输途中很容易出现信息的错误,以及信息不能及时的传达给相关人员。企业的管理者也很难掌控关于会议的各种信息。所以,在日新月异的今天,传统的会议管理的方式已经很难适应外企发展的新要求,要想让外企对开会的效率有所提高,实现一个外企会议管理系统是很有必要的。12课题研究意义外企会议与国企有很大区别。在国内的大多数企业中,他们在开会的时候,都是人进了会场后才知道会议的目的,内容。所以在会议现场,经常会
10、出现与会人员一边听会议内容,一边看材料的情况,严重影响开会的效率。而在外企的会议里面,会议组织人员会事先准备好会议材料,如果材料的阅读量比较大,会预先另外准备一份会议摘要,将提前准备好的资料中的重点、需要讨论的重要部分进行标注,使与会人员能很清楚地知道会议的要点。已经准备好的会议上需要的材料,相关人员会在会议召开的前几天以各种形式发送到参与会议人员的手中,以确保在会议开始时,与会人员能及时到场并知晓会议的大体内容。如果会议的目的是布置各类人员的工作,那么在开会之前,会议组织者就已经为所有的参加会议的人员安排好会上的任务、职权的划分和角色的扮演。所以所有人到了会议室后,都很清晰知道自己的任务以及
11、什么事可以做什么事不能做。随着外企规模的扩大,业务量上升,会议对于一个企业来说变得尤为重要。传统的对会议管理方法不仅效率低下,而且且占用了大量的人力物力甚至还有财力,已经远远不能够适应现代企业对会议的的需求,其主要缺陷如下所示1传统通知会议延迟较高,很可能到了会议时间有关会议的信息还没有传递给员工。2传统会议方式使得员工在会议开始时,对会议的相关信息了解不清,目的第一章前言2性不明确,使得会议的效率大打折扣。3传统会议在开完会缺乏管理,很难对会后的信息进行很好的统计。为了弥解决这些缺陷,提高外企开会的效率,以及会后的善后工作,会议管理系统就此诞生。它带来的好处有1信息传递交流顺畅员工只要登录到
12、系统就可以很快速的查看到与自己相关的会议信息。2对会议前的准备更加充分。用户管理模块,和会议室管理模块的建立,极大地简化了会议前的准备工作。3会议信息发布和接收更加方便、快捷。发布会议和查看会议模块使得管理人员发布会议变得非常简单,再也不需要额外增加人员去通知,其他人对会议信息的了解变得快速,也更加全面。4会后的讨论和留念也变得方便会议留言板的功能使得参与会议的人员之间的讨论更加方便,不再需要专门走到当事人面前进行交流,只需要轻轻动一动鼠标和键盘就可以实现。会议图片的功能也让与会人员回忆起开会时的分氛围,具有很好的留念效果。南京工业大学本科生毕业设计(论文)3第二章系统开发的平台与技术介绍系统
13、使用J2EE开发、WEB容器为TOMCAT70,使用STRUTS2的框架配合SPRING、HIBERNATE实现交互。页面展示使用JS和JQUERY。数据库使用MYSQL55。开发工具使用MYECLIPSE10,、使用FIREBUG对页面进行调试。21开发环境211J2EEJ2EE是JAVA2平台企业版(JAVA2PLATFORM,ENTERPRISEEDITION)的缩写,主要是一组技术规范和指南,包含了各种各样的组件、应用程序服务架构以及技术层次,但它们都有共同的标准和规格。J2EE具有良好的机制1保留现有的IT资产J2EE开发产品能在多种操作系统、硬件资源上配置运行,可以节省开发成本。2
14、高效开发J2EE开发人员不需要顾及服务器端繁琐的工作机制,只需将精力集中在创建业务逻辑上,这大大缩短了开发周期。3异构环境的支持J2EE开发的产品可移植好。4编写简单基于J2EE开发的应用程序,因其业务逻辑被封装成可复用的组件,并且好多WEB服务器和容器都为J2EE环境应用程序提供了内在支持,运行部署也还很方便。212TOMCATTOMCAT是由SUN公司、APACHE和其他一些公司共同开发完成的。由于有了SUN公司的加入并且提供了技术支持,所以在最新的TOMCAT中,SERVLET和JSP都变得更加规范和实用。由于具有TOMCAT性能稳定、技术先进等特点,而且是完全免费的,所以许多的JAVA
15、开发爱好者都非常的喜欢TOMCAT,同时TOMCAT也得到了部分软件开发商的认可。TOMCAT成为时下很流行的WEB应用服务器。213MYSQLMYSQL是由MYSQLAB开发、发布和支持的一个开源类型的关系型数据库管理系统,它作为一个SQL数据库服务器拥有多用户、速度快、多线程、和稳定性高等特点,同时它还拥有高性能、成本低廉、可靠性强的特点,已经是当前互联网中最为流行的开源数据库,也因为这些特点,MYSQL被广泛地应用在INTERNET上的中小型网站中。第二章系统开发的平台与技术介绍422开发技术221JQUERYJQUERY是一个优秀的JAVASCRIPT框架,兼容大部分的浏览器。拥有以下
16、优点1轻量级只需要引入200K左右JS就可以完成很多工作。2强大的选择器JQUERY选择器主要分为四类基本选择器,层次选择器,过滤选择器,表单选择器。3出色的浏览器兼容性JQUERY几乎支持目前市面上的所有浏览器。222AJAXAJAX指异步JAVASCRIPT及XML(ASYNCHRONOUSJAVASCRIPTANDXML)。AJAX其在浏览器上使用的是异步数据传输请求(HTTP请求)与外部服务器之间进行通信,这样的做法可以使得网页从服务器请求少量的信息,就能获得想要的信息,从而增强网页的动态交互性。223JAVASCRIPTJAVASCRIPT是基于事件和对象的一种驱动,作为客户端脚本语
17、言,它具有相当高的安全性。它不需要服务器通道,作为一种解释型语言,可以及时响应客户端在文档页面的事件,并且能够灵活处理各个对象的各种属性和方法,具有较好的实时性和动态性。224STRUTS2STRUTS2是STRUTS的下一代产品,它是建立在WEBWORK的技术基础上,完成的一个全新MVC框架,有较高的性能和良好的稳定性,因此经常会被应用到J2EE项目中。STRUTS让业务逻辑与前台进行分离,大幅度提高了代码重用率,减少了应用操作的耦合度、数据表达和数据描述。它的工作流程大致为客户端向WEB服务器发送请求,将被STRUTS2核心控制器FILTERDISPATCHER拦截,接着FILTERDIS
18、PATCHER通过读取STRUTSXML文件,决定将客户端请求转发给响应的业务逻辑控制器ACTION进行处理,最后ACTION将处理结果输出给客户端。225SPRINGSPRING是一个开源框架,它由RODJOHNSON创建。它的出现可以轻松的解决企业应用开发过程中的繁琐和复杂有效地降低了代码量。SPRING将数据封装到JAVABEAN中,完美实现了以前由EJB开发的事情。SPRING的面向切面技术支持将一些类似的任务像安全管理、事务管理、日志管理等任务集中起来进行管理,这南京工业大学本科生毕业设计(论文)5样可以使代码更好的复用。226HIBERNATEHIBERNATE作为一个优秀的持久层
19、框架,充分体现了ORM的设计理念,提供了高效的对象到关系型数据库的持久化服务。他将持久化服务从软件业务层中完全抽取出来,让业务逻辑的处理更加简单,程序之间的各种业务并非紧密耦合,更加有利于高效的开发与维护。开发人员在程序中可以利用面向对象的思想对关系型数据进行持久化操作,为关系型数据库和对象型数据打造一个便捷的高速公路。23开发工具231MYECLIPSE10MYECLIPSE是GENUITEC在原来ECLIPSE的基础上添加了自己的插件,利用它,我们可以极大的提高在数据库和JAVAEE的开发、发布以及应用程序服务器的整合方面的工作效率。它的JAVAEE集成开发环境功能丰富,包含了完备的编码、
20、调试、测试和发布功能,完整支持HTML、CSS、JAVASCRIPT、JSP、STRUTS、SPRING、MYSQL、HIBERNATE。MYECLIPSE所拥有的智能提示的功能,可以加快代码的编写速度,对有些不太熟悉的JAVA类,它会弹出相应的对象以及对象的返回值,省去了查询API的功夫。在MYECLIPSE中,对JAVA类进行重命名时,它会智能地对类中的类名进行修改,很是方便。232FIREBUGFIREBUG是火狐旗下子公司开发的一个插件,能够调试所有网站语言,它可以查看和编辑HTML、用控制台输出JAVASCRIPT的错误信息、监视网络状况查看请求信息和出错情况,很好的帮助开发人员开发
21、和调试JAVASCRIPT、CSS、HTML甚至是AJAX。但FIREBUG最厉害的,我觉得的就是调试JAVASCRIPT的功能。因为JAVASCRIPT不能在MYECLIPSE调试,而且FIREBUG的JS调试功能使用起来非常方便。除此之外,其他功能还很强大,比如HTML,CSS,DOM的查看与调试,网站整体分析等等。总之就是一整套完整而强大的WEB开发工具。再有就是其为开源的软件。第三章系统概要设计6第三章系统概要设计31系统功能需求系统开发要求开发者熟悉外企会议的流程,实现结果要求界面友好,健壮性强,功能完善。参照任务书,及需求设计文档,拟定系统的功能结构图如31所示。图31系统结构图本
22、系统操作主要分三种用户普通员工,部门经理和总经理。面对普通员工,系统提供的功能主要有查看会议,留言板,图片管理。普通员工的功能用例图如32所示。个人信息设备管理查看留言会议管理发布会议查看会议上传资料留言板会议图片留言修改个人信息会议室管理会议室管理设备管理系统管理员经理普通员工个人信息修改个人信息设备管理设备审批会议室管理会议室审批设备申请设备归还会议室申请会议室归还查看图片上传图片会议室管理查看会议下载会议资料南京工业大学本科生毕业设计(论文)7图32普通员工用例图面对经理,系统提供的功能除了普通员工具有的功能外,还包括发布会议和会议室管理中的会议室申请和归还。经理的功能用例图如图33所示
23、。图33经理用例图第三章系统概要设计8面对管理员,系统提供的功能有个人信息,用户管理和会议室管理中的添加会议室,和审批会议室。用例图如图34所示。图34管理员用例图32系统介绍321系统总体框架本系统采用的是基本的B/S结构模式开发,其具体的框架,如图35所示。322系统总体设计本系统的用户通过首页,进入登录界面,通过用户身份验证(用户权限登级)进入不同的管理页面,用户通过管理页面进行具体的操作。系统操作流程图如图36所示。图35系统框架南京工业大学本科生毕业设计(论文)9323系统总体特点1界面友好使用CSS对界面进行了美化,拥有良好的视觉效果。2交互性强使用AJAX技术实现异步请求。具有以
24、上特点,系统简洁友好,交互性强,用户操作简单,方便。33系统功能说明1发布会议权限为经理的用户才可以发布会议信息。包括会议主题,会议类型,会议时间,会议组织者,会议参与者(从文本文件中导入),会议室信息(已经审批通过的),会议描述,会议目的。否是图36系统流程图开始输入用户名,密码,选择权限。判断用户名,密码和权限管理员查看个人信息,用户管理,会议室添加、审批,设备添加审批。经理查看个人信息,发布会议,查看会议,上传会议资料,会议室预订和退回,设备预定和退回,留言板功能,图片查看图片、上传图片。普通员工查看个人信息,查看会议,下载会议资料,留言板查看留言及发布留言,图片管理查看图片、上传图片。
25、退出登录结束第三章系统概要设计102个人信息点击个人信息可显示当前登录的用户信息,包括用户名,密码,性别,生日,职位和邮箱信息,同时可以修改当前的信息。3查看会议用户可以查询当前与自己相关的会议,上传会议资料,下载会议资料,并且可以按会议主题进行模糊查询。4用户管理权限为管理员的用户可以对用户进行管理,包括对用户名的模糊查询,修改和删除。5会议室的管理权限为管理员的用户可以对会议室进行添加,修改和删除操作,并对已预订的会议室进行审批和退回。权限为经理的用户可以查询可用会议室,预定会议室和归还会议室。6会议设备的管理权限为管理员的用户可以对会议设备进行添加,修改和删除操作,并对已预订的会议设备进
26、行审批和退回。权限为经理的用户可以查询可用会议设备,预定会议设备和归还会议设备。7留言板权限为经理和普通员工的用户可以根据会议主题查看留言和留言及回复。8图片管理权限为经理和普通员工的用户可以根据会议主题上传会议中的精彩图片,浏览已上传的图片,并对会议图片进行放大、缩小和旋转的操作。南京工业大学本科生毕业设计(论文)11第四章数据库设计41数据库分析根据系统的功能需求,详细设计了数据库及数据库表项。本系统包括部门、组、职位、用户、共享类型、共享文件、考勤时间、考勤信息等多个实体,以下是各个实体的ER图。1职位的ER图有职位编号,职位名称,具体如图41所示图41部门ER图2用户的ER图有用户编号
27、,用户名,密码,性别,生日,职位编号和邮箱,具体如图42所示。图42用户ER图3会议室的ER图主要包括会议室号码,会议室名称,会议室容量,会议室描述,会议室状态(是否可借),会议室申请状态,会议申请人,具体如图43所示第四章数据库设计12图43会议室ER图4设备的ER图主要包括设备编号、设备类型、设备状态和设备设备申请者,具体如图44所示图44设备ER图5会议的ER图主要包括会议编号、会议主题、会议类型、会议时间、会议组织者、会议参与者、会议室、会议描述、会议目的,附件路径,具体如图45所示。南京工业大学本科生毕业设计(论文)13图45会议ER图6留言板的ER图包括留言编号,留言内容,留言时间
28、,留言者,所属会议编号,具体如图46所示。图46留言板ER图7会议图片的ER图包括图片编号、图片名称、图片上传者、图片描述、所属会议编号,具体如图47所示。第四章数据库设计14图47会议图片ER图42数据库表设计在41节中详细的介绍了系统中所有实体的信息及其属性,其中每个实体在数据库中都对应着一张表,所以本系统的数据库共有7张表,下面将这些表进行详细的设计及说明。1职位信息表(JOB)主要包括职位编号,职位名称。各字段的具体信息如表41所示表41职位信息表(JOB)主键字段名称类型允许为空字段说明主键J_IDINT否职位编号J_NAMECHAR20是职位名称2用户信息表(USERS)主要包括用
29、户编号,用户名,密码,性别,生日,职位编号和邮箱。各字段的具体信息如表42所示表42用户信息表(USERS)主键或外键字段名称类型允许为空字段说明主键U_IDINT否用户编号U_NAMECHAR50是用户名U_PASSWORDCHAR20是密码南京工业大学本科生毕业设计(论文)15续表42用户信息表(USERS)U_GENDERCHAR2是性别U_BIRTHDAYDATE是生日外键U_JOBIDINT否职位编号MAILINT是邮箱3会议室信息表(MEETINGROOM)主要包括会议室编号,会议室名称,会议室容量,会议室描述,会议室状态(是否可借),会议室申请状态,申请人。各字段的具体信息如表4
30、3所示表43会议室信息表(MEETINGROOM)主键或外键字段名称类型允许为空字段说明主键R_IDINT否会议室编号R_NAMECHAR20是部门编号R_CAPACITYINT是会议室容量R_STATEINT是会议室状态R_DESCRIPTIONCHAR50是会议室描述R_RESERVEINT是申请状态R_APPLIYCHAR50是申请人4设备信息表(EQUIPMENT)主要包括设备编号、设备类型、设备状态、设备申请者。各字段的具体信息,如表44所示表44设备信息表(EQUIPMENT)主键或外键字段名称类型允许为空字段说明主键E_IDINT否设备编号E_NAMECHAR50是设备类型E_S
31、TATEINT是设备状态E_APPLIERCHAR255是申请人5会议信息表(MEETING)主要包括会议的编号、会议主题、会议的类型、会议开始时间、会议组织者、会议参与者、会议状态、会议室、会议描述、会议目的,附件路径,会议设备各字段的具体信息如表45所示第四章数据库设计16表45会议信息表(MEETING)主键或外键字段名称类型允许为空字段说明主键M_IDINT否会议编号M_THEMECHAR20是会议主题M_TYPECHAR10是会议类型M_TIMEDATE是会议时间外键M_ORGANIZERINT是会议组织者M_JOINERCHAR150是会议参与者M_STATEINT是会议状态M_R
32、OOMINT是会议室编号M_DESCRIPTIONCHAR100是会议描述M_DUTYCHAR50是会议目的M_PATHCHAR100是会议材料下载地址M_EQUIPMENTCHAR150是会议设备6留言信息表(NOTE)主要包括留言编号,留言内容,留言时间,留言者,所属会议编号。各字段的具体信息如表46所示表46留言信息表(NOTE)主键或外键字段名称类型允许为空字段说明外键N_IDINT否留言编号N_ASSESSCHAR150是留言内容N_ATTENDANCECHAR150是发言人N_SUMMARYCHAR150是发言时间N_MEETINGIDINT是所属会议编号7图片信息表(PHOTO)
33、主要包括图片编号、图片名称、图片上传者、图片描述、所属会议编号。各字段的具体信息如表47所示南京工业大学本科生毕业设计(论文)17表47图片信息表(PHOTO)主键或外键字段名称类型允许为空字段说明主键P_IDINT否图片编号P_NAMECHAR100是图片名称P_USERCHAR50是上传者P_DESCRIPTIONCHAR150是图片描述P_M_IDINT是所属会议编号第五章系统详细设计及实现18第五章系统详细设计及实现51登录注册模块设计及实现本登录模块采用了AJAX异步提交的方式,设计时只要创建INPUT对象和SELECT对象,其中用户名那一栏属性为TYPE,密码属性为PASSWORD
34、,登录和注册按钮的属性为BUTTON,职位的选择使用SELECT对象,然后使用表格对控件进行排版并在页面中添加背景图片,对这些控件使用CSS进行美化,实现效果如图51图51登录模块效果图511职位的获取页面加载时,会发送一个AJAX请求,调用JOBACTION中的FINDJOB方法,请求的ACTION需要在STRUTSXML进行配置,配置代码为查询数据库中职位的信息,在FINDJOB中调用JOBSERVICE中的FINDJOB方法,然后JOBSERVICE中调用JOBDAO中的FINDALL方法,即可查询到在数据库中JOB的值,将查询到的值,以LIST的形式存放到RESULT中,然后在AJAX
35、的SUCCESS中取得存放在RESULT中的值,用SELECT中的OPTION存放并显示出来,具体实现代码为南京工业大学本科生毕业设计(论文)19前台AJAX请求和数据处理JOBACTION中FINDJOBJOBDAO中FINDALL512登录功能的实现在实现登录功能,首先为登录按钮绑定CLICK事件,然后在事件中发送AJAX请求(需在STRUTSXML中配置),并将用户名,密码以及职位的信息以POST的方式发送到LOGINACTION中,调用ACTION的LOGIN方法,其中用户名,密码的头名字须和USERS类中一致,这样STRUTS就可以将数据封装到对象中,发送请求的JS代码为第五章系统详
36、细设计及实现20在LOGIN方法中,因为从前台传过去的数据名与USERS对象中的字段名以及类型相同,STRUTS2可以直接对其进行封装,所以用方式来获取用户名和密码。而职位信息,因为数据库中包含外键,数据类型不一样,用以上方式获取不到,所以要用REQUEST来获取,代码为拿到值之后,根据用户名查询它的密码和职位编号进行判断,如果用户名或密码为空或者错误,则提示用户错误信息,实现效果如图52所示,如果用户名和密码输入正确,则显示登录成功。实现效果如图53,其中查询时要将用户名传到USERSDAO中,在调用USERSDAO中的FINDBYUNAME方法,而在FINDBYUNAME的方法中调用了FI
37、NDBYPROPERTY方法,其中FINDBYPROPERTY的具体实现使用的就是HIBERNATE的QUERY查询,具体代码为图52登录失败南京工业大学本科生毕业设计(论文)21图53登录成功513注册功能的实现注册功能,首先跟跟登录一样为BUTTON绑定CLICK事件,当点击注册按钮的时候,就会弹出一个MODALDIALOG对话框,在MODALDIALOG中引用了REGISTERJSP,弹出界面如图54所示,在页面中的控件跟登录界面类似,不再重复叙述。其中的生日框绑定了一个日期插件。具体实现方法为在REGISTERJSP页面中引入JQUERY1102、JQUERYUIDATEPICKERJ
38、S、JQUERYUICOREJS三个JS的文件,然后用JAVASCRIPT调用插件的接口,这样就可以完整的为填写生日的控件绑定了日期插件,具体的实现代码为引入插件绑定插件实现效果如图55。第五章系统详细设计及实现22图54初始登录界面图55日期插件显示点击提交后,调用LOGINJSP中的REGISTER方法,具体实现跟登录类似。因为在数据库中生日字段是DATE类型的,所以需要在REGISTER方法中对前台取得的STRING类型的生日进行转换,调用SIMPLEDATEFORMATE中的方法转换。具体实现代码如下日期转换在对对象中的值设置好后调用USERSERVICE中的SAVEUSER方法,然后
39、调用南京工业大学本科生毕业设计(论文)23USERSDAO中SAVE方法就可实现注册功能。其中,在USEDAO中的SAVE方法执行了HIBERNATE中的HQL查询,具体代码如下实现效果如图56所示。图56注册效果52个人信息模块的设计与实现521登录状态的保存和拦截用户登录成功后,需要将用户的信息保存到SESSION中,具体方法为定义一个MAP类型的SESSION对象,设置它的SET和GET方法,然后就可以将USER对象放到SESSION中,具体实现代码为将USERS对象放到SESSION中第五章系统详细设计及实现24在页面中,将SESSION中的USER对象信息从SESSION中取出来放到
40、页面上,方法为实现效果如图57所示,图57用户登录信息对于登录状态的拦截,即为当用户没有登录时,即使访问MAINJSP页面,系统也会直接跳到LOGINJSP页面上,实现方法为在WEBXML文件中配置下SESSIONFILTER拦截器,拦截所有的JSP页面,一旦访问JSP页面SESSIONFILTER就会拦截。然后创建一个SESSIONFILTER类,让他实现FILTER接口,重写其中的DOFILTER方法,获取SESSION对象,判断当SESSION对象中有值或者页面为REGISTERJSP时,拦截器不工作,其他情况下都跳转到LOGINJSP页面。实现代码为WEBXML中SESSIONFILT
41、ER中南京工业大学本科生毕业设计(论文)25522个人信息的查看与修改在个人信息查看页面MYINFOJSP中,加载页面时立即发送AJAX请求,访问LOGINACTION中得FINDUSERBYNAME方法,并调用了USERSSERVICE中的FINDUSERBYNAME方法,一直到USERSDAO中的FINDBYPROPERTY方法,与登录时调用的一致,然后得到LIST型的USERS对象,然后在LOGINACTION中获取LIST型的USERS对象中的第一个值并赋给RESULT1返回给前台。具体代码为在前台通过设置控件的值将查询到的数据附给相应的控件,是查询的数据在页面上显示出来,因部分代码实
42、现与前面类似,就不再重复,实现代码为实现效果如图58所示图58个人信息修改修改功能其实与查看相反,取得控件上的信息,通过AJAX请求,发送到UPDATEUSERS方法中,通过USERSERVICE调用USERDAO中的UPDATE方法完成修改功能。第五章系统详细设计及实现2653管理员模块的设计与实现531用户管理功能的实现加载用户管理界面时,默认查询出所有的用户信息,可通过用户名对用户进行查询,表格中修改和删除则是根据用户ID进行管理的。大体的实现过程如下首先加载页面时,发送AJAX请求获取SESSION中存储的USER对象的值,判断USER的职位,只有职位为管理员的才可以进入用户信息管理页
43、面。查询关键代码为判断职位的相关代码在ACTION中的前台JS代码进入页面时发送请求调用FINDALLUSERS方法,查询数据库中所有用户的信息,存放到RESULT2中,在前台得到信息后,遍历查询到的信息并放置到表格中,当使用查询功能时,获取查询框中的值,并传输到后台ACTION中,然后对获取的值进行处理,放到SQL进行查询。具体实现代码为查询表格中的数据时,发送请求,调用FINDALLUSERS方法,在FINDALLUSERS南京工业大学本科生毕业设计(论文)27方法中调用USERSERVICE中的FINDUSERS方法,在调用USERSDAO中的FINDALL方法,将查询到的信息存放到LI
44、ST型的RESULT中,返回到前台。在前台将数据遍历到STRING字符串中,然后引用JQUERY的表格,将数据存放到表格中。在引用表格时,需对表格设置参数个数和参数值,方便对数据的修改和删除。实现效果,如图59所示,具体实现代码为图59用户管理界面在按用户名查询时,ACTION从前台获取到用户输入的值,在获取的值前后添加,即可完成模糊查询的效果,效果如图510所示,其查询SQL为第五章系统详细设计及实现28图510用户查询效果界面点击修改按钮时,弹出隐藏的DIV,并将表格中的数据填写到相应的控件里,具体实现代码实现效果如图511所示南京工业大学本科生毕业设计(论文)29图511用户修改界面修改
45、功能的实现与上述注册、查询类似,只是在USERDAO调用了UPDATE方法。删除功能实现需要将所删除的用户的ID传到LOGINACTION的DELETEUSERS方法中,最后调用USERDAO中的DELETE方法,在DELETE具体代码为532会议室管理功能的实现1会议室管理模块首先在加载页面前判断职位信息,成功后发送请求查询所有的会议室信息,通过表格显示到页面上。点击添加按钮显示出隐藏的添加DIV,点击修改按钮,显示出隐藏的修改DIV,并发送请求查询当前修改字段的信息,然后返回到前台并依次显示到页面上。实现效果如图512所示。具体的实现方法与用户管理页面相似,不再重复叙述。第五章系统详细设计
46、及实现30图512会议室修改界面2会议室审批审批会议室首先是判断职位信息,成功后查询所有待审批的会议室信息。点击预定按钮后,修改数据库中MEETING表的R_RESERVE字段的状态设为审批通过。修改的具体方法为在MEETINGROOMACTION中用SESSION获取USERS对象的名字,从前台获取会议室ID,在MEETINGSERIVCE中根据会议室ID查询会议室信息,设置状态信息,然后执行UPDATE操作。具体实现代码如下在MEETINGROOMACTION中在MEETINGSERIVCE中533设备管理功能的实现设备管理添加的功能,选择设备类型(现在只允许添加投影仪和话筒)和数量,具体
47、实现方法为ACTION中获取设备类型和数量的信息,使用遍历的方法把数据插入数据库,插入后初始状态为可借,申请者为空。具体实现代码如下南京工业大学本科生毕业设计(论文)31实现效果如图513所示图513设备管理界面设备的修改的实现方法与会议室的修改的实现方法类似,设备审批与会议室审批类似,所以在这边就不再重复叙述了。54经理模块的设计与实现541会议室管理功能的实现1会议室预定预定会议室首先也是判断职位信息,成功后查询所有可以预定的会议室信息。点击预定按钮后,修改数据库中MEETING表的M_STATE的状态设为不可用,R_RESERVE的状态设为待审批,将申请人设为当前用户。修改的具体方法为在
48、MEETINGROOMACTION中用SESSION获取USERS对象的名字,从前台获取会议室ID,在MEETINGSERIVCE中根据会议室ID查询会议室信息,重新设置会议室状态、设置申请者,然后执行UPDATE操作。具体实现代码如下在MEETINGROOMACTION中的实现第五章系统详细设计及实现32在MEETINGSERIVCE中的实现2归还会议室归还会议室方法与预定会议室类似,这里不再重复。542设备管理功能的实现设备申请功能和设备归还功能与会议室申请、会议室归还功能实现方法类似,这里不再重复叙述。543发布会议管理功能的实现1发布临时会议临时会议页面在加载时,先查询所有用户的用户名
49、,当前用户申请的会议室,申请的设备,页面效果如图514所示发布的功能其实就是将页面的数据存放到数据库中,就不重复了。关于参与者从TXT文件导入的功能,是将文件传输到后台ACTION中,传输使用的是HTML5中上传文件的方法,获取文件的后缀名,如果后缀名不是TXT,则直接显示返回错误信息,否则就通过JAVA中的INPUTSTREAM读取文件中的文本并存放到STRING中,然后将STRING传到前台,并显示到TEXTAREA中。具体实现代码如下ACTION中的方法南京工业大学本科生毕业设计(论文)33图514临时会议发布页面文件上传的JS代码实现效果如图515,516所示第五章系统详细设计及实现3
50、4图515文件导入页面图516导入成功页面效果2发布例会例会最关键的就是时间的确定,所以发布例会需要做的就是查询到上一个例会的会议时间,如果没有查询到,则默认是当前时间7天,具体的实现代码如下当前时间7的实现代码查询最近时间在MEETINGDAO中的代码为南京工业大学本科生毕业设计(论文)35其他功能与临时会议相似,不再重复叙述。55普通员工模块的设计与实现551查看会议功能查看会议中,会议的查看和搜索与用户管理中的查看搜索类似,查看会议中有上传附件的功能,除了用到了发布会议中文件导入的功能所使用的方法之外,加入了IO中的OUTPUTSTREAM把读取到的文件写入到服务器中的文件夹下。具体实现