- 3.31 MB
- 2022-05-17 13:03:40 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
本科毕业论文(设计)院系软件学院题目办公自动化系统的考勤管理模块的设计与实现学生姓名刘瑄学号071251092年级2007级专业软件工程指导教师职称论文提交日期
摘要随着计算机的普及和计算机技术的飞速发展,越来越多的企业利用计算机解决实际中遇到的问题。伴随着数字商业的到来,企业的管理意识和环境都发生了巨大的变化,企业的管理结构由多层次结构向扁平化管理结构转化;数字时代企业的信息量和沟通数量巨大,为了提高企业的管理效率,必须提升沟通的质量,要求企业办公高效率、自动化,办公自动化系统应运而生。办公自动化系统跨越系统管理、日程管理、考勤管理、消息管理、文档管理等五个领域。SSH在J2EE项目中表示了3种框架,即Spring+Struts+Hibernate。Struts由于版本差异,Struts1.x和Struts2.x几乎是不同的框架。经过综合考虑,相对于现在的企业来说Struts1.x的技术成熟,便于维护。故本OA系统使用的SSH版本为Spring2.5+Struts1.3+Hibernate3.3。总体完成一个完全基于浏览器的操作模式,安装简单(B/S架构,不必安装或者只要安装很小的插件),操作方便,具有良好的系统扩充能力的办公自动化系统,提供:文档管理平台、消息管理平台、考勤管理平台、日程管理平台、系统管理平台。关键词:办公自动化系统,OA,SSH,J2EE
AbstractWiththepopularizationofcomputerandtherapiddevelopmentofcomputertechnology,moreandmorecompaniesusecomputerstosolvepracticalproblems.Withthearrivalofthedigitalbusiness,enterprisemanagementconsciousnessandtheenvironmentareallundergonetremendouschanges,enterprise"smanagementstructurebymulti-levelstructuretoflatingmanagementstructuretransformation;Digitaleraenterpriseinformationandcommunicationahugenumber,inordertoimprovetheenterprisemanagementefficiency,mustenhancecommunicationquality,highefficiencyandautomationrequestenterpriseoffice,officeautomationsystemcameintobeing.Officeautomationsystemacrosssystemmanagement,schedulemanagement,attendancemanagement,newsmanagement,documentmanagementfivefields.SSHsaidinJ2EEprojectinthreeframework,namelySpring+Struts+Hibernate.Struts1.xandStruts2.xarealmostdifferentframework.Afteracomprehensiveconsideration,Struts1.xisrelativetotheenterprise.NowStruts1.xiseasytomaintainforthematuretechnology.SotheOAsystemuseSSHversionforSpring2.5+Struts1.3+Hibernate3.3.Overallfinishacompletelybasedonthebrowser"soperatingmode,installationsimple(B/Sstructure,neednotinstalledorinstallingsmallplugin),convenientoperation,goodsystemexpansionabilityofficeautomationsystem,provide:documentmanagementplatform,newsmanagementplatform,attendancemanagementplatform,schedulemanagementplatform,systemmanagementplatform.Keywords:OfficeAutomationSystem,OA,SSH,J2EE
目录摘要IAbstractII目录III第一章概述/绪论11.1项目背景11.2国内外办公自动化现状11.3解决方案比较31.3.1J2EE和.net31.3.2JSP、ASP和PHP31.3.3SSH和JSP+servlet+JavaBean51.4论文主要工作/组织结构5第二章Web开发技术概述62.1J2EE62.1.1JSP72.1.2JDBC72.1.3JavaBean72.2SSH82.2.1Struts82.2.2Spring92.2.3Hibernate112.3DHTML122.4EXTJS12第三章办公自动化系统项目概述143.1项目目标143.2一般性需求143.3功能性需求143.3.1角色说明143.3.2整体业务流程描述143.4具体功能点需求153.4.1系统管理子系统153.4.2日程管理子系统15
3.4.3考勤管理子系统153.4.4消息管理子系统163.4.5文档管理子系统163.5整体设计和实现173.5.1后台控制层和模块层173.5.2前台表示层183.5.3配置文件183.6项目环境193.6.1Tomcat193.6.2Oracle20第四章考勤管理子系统的分析、设计与实现214.1考勤管理需求分析214.1.1签到/签退管理214.1.2考勤历史查询224.1.3考勤统计234.1.4工作日管理254.1.5工作时间管理264.1.6出差/请假管理274.1.7补签管理子模块284.2考勤管理详细设计294.2.1整体类图294.2.2actionform层304.2.3action层314.2.4filter层314.2.5service层314.2.6dao层324.2.7database层324.2.8各模块时序图324.2.9数据库设计334.3考勤管理运行界面344.4Web开发技术在考勤管理中的应用364.4.1J2EE的应用364.4.2SSH的应用374.4.3DHTML的应用40
4.4.4EXTJS的应用40第五章总结与展望41参考文献42致谢43
第一章概述/绪论1.1项目背景办公自动化(OfficeAutomation,简称OA)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式,是当前新技术革命中一个技术应用领域,属于信息化社会的产物。随着计算机的普及和计算机技术的飞速发展,越来越多的企业利用计算机解决实际中遇到的问题。伴随着数字商业的到来,企业的管理意识和环境都发生了巨大的变化,企业的管理结构由多层次结构向扁平化管理结构转化;数字时代企业的信息量和沟通数量巨大,为了提高企业的管理效率,必须提升沟通的质量,要求企业办公高效率、自动化,办公自动化系统应运而生。办公自动化系统跨越系统管理、日程管理、考勤管理、消息管理、文档管理等五个领域。随着管理水平的提高,Internet技术的出现,单单实现文档管理和流转已经不能满足要求,OA的重心开始由文档的处理转入了数据的分析,即所说的决策系统,这时出现了以信息交换平台和数据库结合作为后台,数据处理及分析程序作为中间层,浏览器作为前台(三层次结构)的OA模式,这种模式下,可以将OA系统纳入由业务处理系统等系统构成的单位整体系统内,可以通过OA系统看到、分析、得到更全面的信息。基于B/S结构的办公自动化系统,适用于施工企业的办公自动化,它涵盖日常办公管理的基本流,具有较强的通用性。[1]1.2国内外办公自动化现状办公自动化建设的本质是提高决策效能为目的的。通过实现办公自动化,或者说实现数字化办公,可以优化现有的管理组织结构,调整管理体制。在提高效率的基础上,增加协同办公能力,强化决策的一致性,最后实现提高决策效能的目的。
办公自动化建设与现阶段政府上网工程之间的关系。政府上网工程一直是近一两年业界炒作和关注的热点之一,政府上网工程是由于互连网的普及,政府部门把一些政务信息发布到Intemet上,进而在网上建立与老百姓沟通的渠道,以实现政务公开和政府行为接受监督的目的。从实际效果来看,很多政府部门只是在网上存放一些静态的政府信息,实质性的工作却非常少。并且,在很多情况下,很多人将办公自动化和政府上网混为一谈。这种现象导致很多部门重上网工程轻办公自动化工程。甚至把上网工程误认为是办公自动化工程。实际上,从网络划分的角度,政府上网工程是外网建设,办公自动化工程是内网建设,办公自动化工程是政府信息化的基础,政府上网工程是政府信息化的对外表现形式,办公自动化工程在政府信息化建设中所占的比重远高于政府上网工程。只有办公自动化工程的建设并运转成功,政府上网才会有源源不断的信息发布,政府上网才有意义,否则政府上网工程就会变成无源之水。当然,政府上网工程的宣传对我国信息化建设也起了一定的推动作用。办公自动化应该是尽快向数字化办公发展。所谓数字化办公即几乎所有的办公业务都在网络环境下实现。从技术发展角度来看,特别是互连网技术的发展,安全技术的发展和软件理论的发展,实现数字化办公是可能的。从管理体制和工作习惯的角度来看,。全面的数字化办公还有一段距离。首先数字化办公必然冲击现有的管理体制,使现有管理体制发生变革,而管理体制的变革意味着权利和利益的重新分配;另外管理人员原有的工作习惯、工作方式和法律体系有很强的惯性,短时间内改变尚需时日。尽管如此,全面实现数字化办公是办公自动化发展的必然趋势。实现数字化办公既不同于传统的OA,也不同于MIS的建设,它的结构是Intranet网的结构,它的构建思路是自上而下的,即首先把整个内部网看成是一个整体,这个整体的对象是网上所有用户,它必需有一个基础,我们称这个基础为内网平台;就好象PC必需有一个操作系统为基础一样。内网平台负责所有用户对象的管理、负责所有网络资源(含网络应用)的管理、网络资源的分层授权、网络资源的开放标准和提供常用的网络服务(如邮件、论坛、导航、检索和公告等)。在平台的基础之上,插接各种业务应用(可理解为传统的MIS),这些应用都是网络资源。用户通过统一的浏览器界面入网,网络根据用户的权限提供相应的信息、功能和服务,使用户在网络环境下办公;办公自动化于50年代在美国和日本首先兴起,最初只是具有电子数据处理(EDP)的簿记功能,60年代被管理信息系统(MIS)取代,直到70年代后期才形成涉及多种技术的新型综合学科一办公自动化(OA)。80年代,国外办公自动化得到了飞速发展,许多著名的计算机软硬件公司都跻身于这一巨大的市场。进入90年代以来,办公自动化在世界主要发达国家得到蓬勃发展。我国办公自动化是80年代中期才发展起来的。1985年全国召开了第一次办公自动化规划会议,对我国办公自动化建设进行了规划。1986年5月在国务院电子振兴领导小组办公自动化专家组第一次专家会议上,定义了办公自动化系统功能层次和结构模式。随后国务院率先开发了”中南海办公自动化系统”。
我国OA的应用和发展历程,可以分为以下三个阶段:(1)第一代OA系统,是从20世纪80年代中期到90年代中期以个人电脑、办公套件为主要标志,实现了数据统计和文档写作电子化,即将办公信息载体从原始纸介质方式转向比特方式。(2)第二代OA系统,是从90年代中期开始的以网络技术和协同工作技术为主要特征,实现了工作流程自动化,即将收发文从传统的手工方式转向工作流自动化方式。(3)第三代OA系统,是融信息处理、业务流程和知识管理于一体的应用系统。[2]1.3解决方案比较1.3.1J2EE和.net目前国内外Web开发的主流架构有J2EE和.net,经过综合考虑,本OA系统采用J2EE体系架构,利用J2EE体系架构的优势,实现了业务数据和业务逻辑的分离。J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。[3].NET是MicrosoftXMLWebservices平台。XMLWebservices允许应用程序通过Internet进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft.NET平台提供创建XMLWebservices并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。[4]1.3.2JSP、ASP和PHP目前国内外的动态网页技术主要有JSP、ASP和PHP,由于本OA系统是基于J2EE体系架构,故使用JSP技术。JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页
HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP特性:(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。(2)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(3)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(4)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能。[5]ASP是ActiveServerPage的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组建等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。[6]PHP,是英文超级文本预处理语言HypertextPreprocessor的缩写。PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言。PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。它可以比CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的变成语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。[7]
1.3.3SSH和JSP+servlet+JavaBeanJ2EE体系架构中可以用SSH框架,也可以用JSP+servlet+JavaBean框架,本OA系统采用了SSH框架。SSH在J2EE项目中表示了3种框架,即Spring+Struts+Hibernate。Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。Struts可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。[8]JSP+servlet+JavaBean框架适合小规模项目的开发,而SSH适合企业项目的开发,SSH相对于JSP+servlet+JavaBean更加规范化。1.4论文主要工作/组织结构论文总体是对本人完成办公自动化系统项目的一些总结。第一章,主要描述了本人为何选择办公自动化项目,同时介绍了它的背景以及办公自动化在国内外的现状和发展,还有完成该项目的需要采用的技术的比较。第二章,主要描述了完成办公自动化的一些必要的技术介绍,以便读者能够更好的理解后面的内容。第三章,主要描述了整个项目的需求,功能,设计和环境等。第四章,主要描述了本人完成子系统的技术运用,以及一些分析、设计和实现。第五章,主要描述了对该项目的总结以及对它的发展期望。
第二章Web开发技术概述2.1J2EEJ2EE的简介已经在1.3.1中描述过了,下面来具体介绍J2EE的四层模型与核心组件。J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。图2.1J2EE四层模型图如图2.1所示,J2EE分别有四层:(1)运行在客户端机器上的客户层,应用客户端程序和applets是客户层组件;(2)运行在J2EE服务器上的Web层,JavaServlet和JavaServerPages(JSP)是Web层组件;(3)运行在J2EE服务器上的业务逻辑层,EnterpriseJavaBeans(EJB)是业务层组件;(4)运行在EIS服务器上的企业信息系统(Enterpriseinformationsystem)层。[3]下面将会具体介绍本OA系统用到的J2EE中的4种技术:JSP、JDBC、JavaBean(代替EJB)和JavaServlets(由于Struts1.x是基于servlet技术,故该技术不做具体描述)。
2.1.1JSPJSP的简介已经在1.3.2中描述过了,下面来具体介绍JSP的指令、动作、隐式对象等。JSP的指令包括:page指令、include指令、taglib指令。JSP的动作包括:、、、、,、JSP的隐式对象如表2.1所示。request客户端请求,此请求会包含来自GET/POST请求的参数response网页传回客户端的响应pageContext网页的属性是在这里管理session与请求有关的会话application正在执行的内容out用来传送响应的输出流config代码片段配置对象page代码片段配置对象exception针对错误网页,未捕捉的例外表2.1JSP隐式对象表2.1.2JDBCJDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序。在本OA系统中,并没有实现用JDBC直接连接数据库,而是通过Hibernate操作数据库(Hibernate底层是对JDBC的封装)。[9]2.1.3JavaBeanJavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。
用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。JavaBean可分为两种:一种是有用户界面(UI,UserInterface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。[10]2.2SSHSSH在J2EE项目中表示了3种框架,即Spring+Struts+Hibernate。Struts由于版本差异,Struts1.x和Struts2.x几乎是不同的框架。经过综合考虑,相对于现在的企业来说Struts1.x的技术成熟,便于维护。故本OA系统使用的SSH版本为Spring2.5+Struts1.3+Hibernate3.3。下面将会具体介绍这三个框架。2.2.1StrutsStruts的简介已经在1.3.3中描述过了,下面来具体介绍Struts1.x的构成、组件、运行流程等。Struts1.x框架主要由两个相对独立的组成部分构成:(1)StrutsAPI;(2)Struts框架表示层中的各种标签库(Html、Bean、Logic、Tiles等标签库)。如图2.2所示,Struts1.x对Model,View和Controller都提供了对应的组件。ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。(1)Model部分:由JavaBean组成,ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionFrom里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。(2)View部分:该部分采用JSP实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应JSP部分。(3)Controller部分:
Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。系统核心控制器,对应ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。[12]图2.2Struts各层组件图Struts接受到一个客户请求时,将执行如下流程:(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效信息。(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。(3)根据配置信息决定是否需要表验证。如果需要验证,就调用ActionForm的validate()方法。(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。(5)ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给那个Action。如果响应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。(6)Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发个ActionForward对象指向的jsp组件。(7)ActionForward对象指向的jsp组件生成动态网页,返回给客户。[11]
2.2.2SpringSpring的简介已经在1.3.3中描述过了,下面来具体介绍Spring的其他特性和模块组成。Spring特性:(1)轻量:从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。(2)控制反转:Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。(3)面向切面:Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。(4)容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。(5)框架:Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。[13]
图2.3Spring模块图Spring每个模块功能如图2.3所示。2.2.3HibernateHibernate的简介已经在1.3.3中描述过了,下面来具体介绍Hibernate的核心接口。如图2.4所示,Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍:(1)Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。(2)SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。(3)Configuration接口:
Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。(4)Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。(5)Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。[14]图2.4Hibernate图2.3DHTMLDHTML是DynamicHTML的简称,就是动态的html,是相对传统的静态的html而言的一种制作网页的概念。所谓动态HTML(DynamicHTML,简称DHTML),其实并不是一门新的语言,它只是HTML、CSS和客户端脚本的一种集成,即一个页面中包括html+css+javascript(或其它客户端脚本)。DHTML建立在原有技术的基础上,可分为三个方面:(1)HTML(XHTML),也就是页面中的各种页面元素对象,它们是被动态操纵的内容;(2)CSS,CSS属性也是动态操纵的内容,从而获得动态的格式效果;(3)客户端脚本(例如JavaScript),它实际操纵Web页上的HTML和CSS。[15]2.4EXTJSExtJS是一种主要用于创建前端用户界面,是一个与后台技术无关的前端
ajax框架。ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。ExtJs最开始基于YUI技术,由开发人员JackSlocum开发,通过参考JavaSwing等机制来组织可视化组件,无论从UI界面上CSS样式的应用,到数据解析上的异常处理,都可算是一款不可多得的JavaScript客户端技术的精品。Ext的UI组件模型和开发理念脱胎、成型于Yahoo组件库YUI和Java平台上Swing两者,并为开发者屏蔽了大量跨浏览器方面的处理。相对来说,EXT要比开发者直接针对DOM、W3C对象模型开发UI组件轻松。[16]
第三章办公自动化系统项目概述3.1项目目标完成一个完全基于浏览器的操作模式,安装简单(B/S架构,不必安装或者只要安装很小的插件),操作方便,具有良好的系统扩充能力的办公自动化系统,提供:文档管理平台、消息管理平台、考勤管理平台、日程管理平台、系统管理平台。3.2一般性需求完全基于浏览器的操作模式,安装简单、操作方便,具有良好的系统扩充能力。灵活的模块需求设计,可根据项目周期灵活裁剪。对于系统执行的重要操作自动记录操作人和操作时间。操作人默认为当前登录人员,操作时间默认为当天的当前时间(精确到分)。本系统针对企业内部人员使用,支持中英文两种语言,由于操作人员的计算机水平不同,应该有良好的人机交互界面和帮助支持页面,只有登录验证后的用户才可以使用系统,有良好的安全性能。3.3功能性需求3.3.1角色说明普通员工:企业内部的员工。部门经理:企业内部的一个部门的负责人。管理员:负责系统维护的管理人员。3.3.2整体业务流程描述用户(包含普通员工、部门经理、管理员)登录后,根据提供的菜单选项,进行权限允许的操作。以用户为中心,实现办公的自动化,实现考勤、日程、文档、消息的对应管理。
本OA系统整体结构如图3.1所示。图3.1系统结构图3.4具体功能点需求本OA系统分为5个子系统:系统管理子系统、日程管理子系统、考勤管理子系统、消息管理子系统、文档管理子系统。下面将会具体介绍各个子系统。3.4.1系统管理子系统系统管理子系统模块,负责整个系统的配置,包括系统登录/注销功能、权限管理、菜单定制、员工管理、部门管理、日志管理等功能3.4.2日程管理子系统日程管理子系统包括以下子模块:日程编辑器、迷你日历、联系人管理器、便签管理器3.4.3考勤管理子系统本人完成的是该子系统,故详细描述。考勤管理子系统包括签到/签退管理、考勤历史查询、考勤统计、工作日管理、工作时间管理、出差/请假管理、补签管理。各子模块功能如下:(1)签到/签退管理:如果是当天第一次操作,只能签到;当天第一次以后操作,只可以签退。记录签卡备注、签卡时间。(2)考勤历史查询:跟踪并定位数据库中的历史记录,按照时间段、部门、姓名等信息查询。
(3)考勤统计:管理员统计一段时间内指定部门所有员工的迟到、早退、旷工次数等,可以导出Excel表。(4)工作日管理:管理员设定当年的工作日。周末、法定假日、公司休假等日期不做考勤。(5)工作时间管理:管理员设定某段日期内上班时间、下班时间。(6)出差/请假管理:员工将出差/请假时间等信息提交给领导审批,审批通过后管理员设定该员工在出差/请假时间段内不做考勤。(7)补签管理:员工当天如果忘记签到/签退,可以提交申请进行补签。用例图如图3.2所示。图3.2考勤管理用例图3.4.4消息管理子系统消息管理子系统包括以下子模块:消息管理、消息发布、信箱管理、消息查询、信息提示、邮件操作。3.4.5文档管理子系统文档管理子系统包括文档管理、回收站管理、文件搜索管理、日志管理。
3.5整体设计和实现本OA系统使用的是SSH框架,Hibernate负责的是持久层上对数据库的操作,Struts负责的是表示层和控制层上的处理请求、跳转等,Spring负责的是依赖注入,一般使用的是注解注入方式。英文与缩写:本OA系统共有5个子系统,分别是系统管理子系统(英文system缩写sys)、日程管理子系统(英文calendar缩写cal)、考勤管理子系统(英文attendance缩写att)、消息管理子系统(英文message缩写mes)、文档管理子系统(英文document缩写doc)。以下是具体介绍SSH在MVC模型上的实现。3.5.1后台控制层和模块层如图3.3所示,后台代码一共分为3层:action层、actionform层和model层,而model层中划分为3层:dao层、database层和service层。action包中存放的是struts中的action类,负责处理请求和跳转。form包中存放的是struts中的formbean类,当用户请求时自动封装传递给action。dao包中存放的是hibernate对数据库的操作。database包中是hibernate映射数据库的pojo类。service包中是集成各种dao的方法,将数据库的操作隐藏起来,提供出功能接口。图3.3后台代码包结构图
3.5.2前台表示层如图3.4所示,image包中存放的是图片。pages包中存放的是JSP页面。scripts包中存放的是javascript文件。styles包中存放的是css文件。extjs包中存放的是公共的extjs文件。图3.4前台页面包结构图3.5.3配置文件如图3.5所示,Hibernate表映射文件代表数据库中每一张表和一个pojo类之间的映射。图3.5Hibernate表映射文件图如图3.6所示,Hibernate+Spring配置文件作用是连接数据源、管理SessionFactory、管理Hibernate表映射文件、管理依赖注入等。
图3.6Hibernate+Spring配置文件图如图3.7所示,Struts配置文件作用是配置formbean和action。图3.7Struts配置文件图3.6项目环境本OA系统使用的是Tomcat6.x应用服务器,数据库使用的是Oracle11g。下面将会具体介绍Tomcat和Oracle。3.6.1TomcatTomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且免费,成为目前比较流行的Web应用服务器。它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
3.6.2OracleOracle11g是甲骨文公司在2007年7月12日推出的最新数据库软件,Oracle11g有400多项功能,经过了1500万个小时的测试,开发工作量达到了3.6万人/月。相对过往版本而言,Oracle11g具有了与众不同的特性。减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。Oracle也许是最流行的服务器,占有最大的市场份额,它被广泛用于各个市场领域,满足一系列的存储需求。
第四章考勤管理子系统的分析、设计与实现4.1考勤管理需求分析考勤管理子系统的用例图和各个子模块以及它们的基本功能已经在3.4.3中描述过了,下面将会介绍各个子模块的具体功能、详细需求描述和流程。4.1.1签到/签退管理签到/签退详细功能需求描述如表4.1所示。功能需求功能名称签到/签退管理优先级高参与者普通员工,部门经理,管理员业务背景主要用来管理所有员工签到/签退操作功能说明1、签到:员工当天第一次操作作为签到2、签退:员工在当天第一次操作之后可以签退3、记录:签到/签退操作的同时记录签卡备注、签卡时间;如果当天没有任何操作,或者只有签到操作没有签退操作,则记录为旷工约束条件1、如果是当天第一次操作,只能签到2、当天第一次以后操作,只可以签退3、记录操作相关查询无其他需求1、记录:签到操作的同时记录的签卡备注为是否迟到,签退操作的同时记录的签卡备注为是否早退表4.1签到/签退功能需求表业务流程描述如图4.1所示:登录,检查是否是当天第一次操作:(1)如果是,则算是签到,检查是否迟到,记录签卡备注、签卡时间,然后更新数据库;(2)如果不是,则算是签退,检查是否早退,记录签卡备注、签卡时间,然后更新数据库
图4.1签到/签退流程图4.1.2考勤历史查询考勤历史查询详细功能需求描述如表4.2所示。功能需求功能名称考勤历史查询优先级高参与者普通员工,部门经理,管理员业务背景主要用来根据查询条件跟踪和定位考勤的历史记录功能说明1、普通员工查询:普通员工可以查询自己的考勤历史2、部门经理查询:部门经理可以查询自己管理部门的所有员工的考勤历史3、管理员查询:管理员可以查询所有部门的所有员工的考勤历史约束条件1、普通员工只能查询自己的考勤历史2、部门经理只能查询自己管理部门的员工的考勤历史
相关查询1、普通员工只需输入时间段就可以查询自己的考勤历史2、部门经理可以通过时间段和姓名的组合条件查询自己管理部门的特定员工的考勤历史,或者只输入时间段就可以查询自己管理部门的所有员工的考勤历史3、管理员通过输入时间段、部门和姓名的组合条件可以查询任意部门的任意员工的考勤历史,或者只输入时间段和部门就可以查询该部门的所有员工的考勤历史其他需求无表4.2考勤历史查询功能需求表业务流程描述如图4.2所示:登录,查询考勤历史之前需要检查用户权限:(1)如果是普通用户,只能查询自己的考勤历史;(2)如果是部门经理,只能查询自己管理部门的员工的考勤历史;(3)如果是管理员,可以查询任意部门的任意员工的考勤历史。通过输入查询条件,查询数据库,并显示在用户界面上。图4.2考勤历史查询流程图4.1.3考勤统计考勤统计详细功能需求描述如表4.3所示。
功能需求功能名称考勤统计优先级高参与者管理员业务背景主要用来统计员工考勤情况功能说明1、管理员通过考勤历史查询子模块的功能,查询指定部门的所有员工的考勤历史2、统计指定时间段内指定部门的指定员工的迟到、早退、旷工次数3、部门内所有员工迟到、早退、旷工次数汇总4、导出考勤统计的Excel表约束条件1、必须依赖考勤历史查询子模块相关查询1、管理员只输入时间段和部门就可以查询该部门的所有员工的考勤历史其他需求无表4.3考勤统计功能需求表业务流程描述如图4.3所示:登录,管理员输入查询条件,跟踪定位数据库中的历史记录,得到数据,通过算法统计出迟到、早退、旷工的次数,并导出Excel表。图4.3考勤统计流程图
4.1.4工作日管理工作日管理详细功能需求描述如表4.4所示。功能需求功能名称工作日管理优先级高参与者管理员业务背景主要用来设定工作日功能说明1、管理员设定当年的工作日2、管理员将当年法定假日和公司休假考虑在内,做出工作日、双修日和假日的调整3、可视化图表设置页面约束条件1、每年的法定假日和公司休假都不一样,需要管理员手动做出调整相关查询无其他需求1、管理员需要查询当年的法定假日并向公司高层查询公司休假表4.4工作日管理功能需求表图4.4工作日管理流程图
业务流程描述如图4.4所示:登录,程序显示当年的日历,通过算法自动计算除去双休日以外的工作日,管理员通过了解法定假日和公司休假直接在日历上手动调整工作日,并更新到数据库中。4.1.5工作时间管理工作时间管理详细功能需求描述如表4.5所示。功能需求功能名称工作时间管理优先级高参与者管理员业务背景主要用来设定工作时间功能说明1、管理员选定时间段2、管理员可以设定这段时间内上班时间、下班时间约束条件无相关查询无其他需求无表4.5工作时间管理功能需求表业务流程描述如图4.5所示:登录,管理员输入时间段,查询数据库可以显示这段时间内的工作日有哪些,设置上班时间和下班时间,并更新到数据库中。图4.5工作时间管理流程图
4.1.6出差/请假管理出差/请假管理详细功能需求描述如表4.6所示功能需求功能名称出差/请假管理优先级高参与者普通员工,部门经理,管理员业务背景主要用来管理出差/请假功能说明1、员工在出差/请假前需要通过消息向部门经理发出申请,同时标明出差/返回时间等信息2、部门经理审批通过,则将通过信息发给管理员;若不通过则返回不通过信息给员工3、管理员收到审批通过的信息则在该员工出差/请假期间的考勤记录中记录上出差/请假的备注约束条件1、需要给部门经理审批2、审批不通过则操作不成功相关查询无其他需求无表4.6出差/请假管理功能需求表业务流程描述如图4.6所示:登录,员工向部门经理发出请假/出差申请,并附加上时间等信息,部门经理进行审批:(1)若通过则发信息通知管理员修改考勤记录,并更新数据库;(2)若不通过,则发信息给员工。
图4.6出差/请假管理流程图4.1.7补签管理子模块功能需求功能名称补签管理优先级高参与者普通员工,部门经理,管理员业务背景主要用来管理补签功能说明1、员工发现自己忘记签到/签退,通过消息向部门经理发出补签申请2、部门经理进行审批,若通过则发补签信息给管理员,若不通过则发送拒绝补签的信息给员工,同时标明原因3、管理员收到审批通过的信息则修改考勤记录约束条件1、需要给部门经理审批2、审批不通过则操作不成功相关查询无其他需求无表4.7补签管理功能需求表
补签管理详细功能需求描述如表4.7所示。业务流程描述如图4.7所示:登录,向部门经理申请补签,并附加上时间等信息,部门经理进行审批:(1)若通过则发信息通知管理员修改考勤记录,并更新数据库;(2)若不通过,则发信息给员工。图4.7补签管理流程图4.2考勤管理详细设计本OA系统的整体设计已经在3.5.1和3.5.2中描述过了,项目整体使用了MVC架构,整体框架是SSH,页面使用的是JSP+css+javascript+extjs,后台逻辑分为3层:action层、actionform层和model层,而model层中划分为3层:dao层、database层和service层。下面将会具体介绍考勤管理子系统的详细设计。4.2.1整体类图考勤管理子系统的整体类图如图4.8所示,从上往下分别是:actionform层、action层、filter层、service层、dao层、database层。
图4.8考勤管理整体类图4.2.2actionform层该层用于封装用户操作请求参数,而请求参数是通过JSP页面的表单域传递过来的,静态FormBean(页面的映射类),会在工程创建FormBean的类封装表单信息(可以对表单赋值),同时具有初始化和验证的功能。SigninSignoffForm类功能定义如表4.8所示,该类的主要功能是封装用户的签到备注,同时封装了用户的签到或是签退操作,将其一起传递给相应的SigninSignoffAction类中。序号功能点功能点详细内容1封装参数封装用户填写的签到备注请求参数2封装操作参数封装用户的签到/签退操作请求参数,包含签到还是签退操作表4.8SigninSignoffForm类功能定义表其它同层的类与SigninSignoffForm类结构和功能类似,故不一一赘述。
4.2.3action层在RequestProcessor类预处理请求时,在创建了Action的实例后,就调用自身的processActionPerform()方法,该层在调用Action类的方法,根据actionform中传递的参数构造相应的pojo类对象,处理相应操作,并根据处理结果跳转。SigninSignoffAction类功能定义如表4.9所示,该类的主要功能是处理签到或是签退操作,调用相应的SigninSignoffService类,根据处理结果进行跳转。序号功能点功能点详细内容1签到处理签到操作2签退处理签退操作3跳转根据Form类传进来的参数操作并根据结果跳转表4.9SigninSignoffAction类功能定义表其它同层的类与SigninSignoffAction类结构和功能类似,故不一一赘述。4.2.4filter层该层可以改变一个request和修改一个response,能够在一个request到达servlet之前预处理request,也可以在response离开servlet时处理response,主要用来处理字符集。StrFilter类功能定义如表4.10所示,该类的主要功能是修改字符集为utf-8。序号功能点功能点详细内容1修改字符集request和response修改字符集表4.10StrFilter类功能定义表4.2.5service层该层将DAO中的各种增、删、改、查动作集成起来,隐藏DAO对数据库的操作,提供给action接口以便其调用,处理相应操作。SigninSignoffService类功能定义如表4.11所示,该类的主要功能是将集成dao层的相应类的增、删、改、查动作,依照逻辑抽出签到和签退接口。序号功能点功能点详细内容1集成动作将DAO中的各种增、删、改、查动作集成起来
2签到提供签到接口3签退提供签退接口表4.11SigninSignoffService类功能定义表其它同层的类与SigninSignoffService类结构和功能类似,故不一一赘述。4.2.6dao层该层提供面向对象的接口,接口中定义了操作数据库表中将会用到的所有事务方法。这个接口在逻辑上对应这个特定的数据存储。包括增、删、改、查操作。WorkdayDAO类功能定义如表4.12所示,该类的主要功能是提供增加、删除、修改、查询对应Workday表数据的接口。序号功能点功能点详细内容1增加增加工作日2删除删除工作日3修改修改工作日4查询查询工作日表4.12WorkdayDAO类功能定义表其它同层的类与WorkdayDAO类结构和功能类似,故不一一赘述。4.2.7database层该层提供pojo类,是普通JavaBeans,其中有一些属性及其getter、setter方法,对应相应数据库的表。Workday类功能定义如表4.13所示,该类的主要功能是提供数据库Workday表中相应的字段和getter、setter方法。序号功能点功能点详细内容1对应数据库中的表对应Workday表,属性是表中的字段,并有getter、setter方法表4.13Workday类功能定义表其它同层的类与Workday类结构和功能类似,故不一一赘述。4.2.8各模块时序图以下是各个模块的时序图。由于各模块的时序图基本类似,故只需要给出其中一张。
签到时序图如图4.9所示。图4.9签到时序图4.2.9数据库设计User表功能说明如表4.14所示。字段名类型可为空默认注释useridNUMBERN员工编号usernameVARCHAR2(60)N员工姓名departmentidNUMBERN部门编号roleidNUMBERN0角色编号表4.14User表Department表功能说明如表4.15所示。字段名类型可为空默认注释departmentidNUMBERN部门编号departmentnameVARCHAR2(60)N部门名称manageridNUMBERN部门经理编号表4.15Department表Attendance表功能说明如表4.16所示。字段名类型可为空默认注释useridNUMBERN员工编号noteVARCHAR2(60)N签卡备注dateDATEN日期timeVARCHAR2(60)N时间
checksignNUMBERN0检查是否签到或者签退表4.16Attendance表Workday表功能说明如表4.17所示。字段名类型可为空默认注释yearNUMBERN年份dateDATEN日期isworkdayNUMBERN0检查是否是工作日workingtimeVARCHAR2(60)N上班时间closingtimeVARCHAR2(60)N下班时间表4.17Workday表Role表功能说明如表4.18所示。字段名类型可为空默认注释roleidNUMBERN角色编号rolenameVARCHAR2(60)N角色名称rolepowerNUMBERN0角色权限表4.18Role表4.3考勤管理运行界面图4.10签到/签退运行图下面的章节将会介绍项目具体实现的情况,本节主要介绍实现的实际运行图。
所有员工(管理员、部门经理、普通员工)点击考勤管理将会进入如图4.10所示的界面,该页面是整个考勤管理的初始页面,在此页面中用户签到/签退。图4.11查询运行图点击查询可以进入如图4.11所示的界面,用户可以直接点击日历,点第一下是选择开始时间,点第二下是选择结束时间,然后可以选择部门,输入员工姓名查询。当开始时间、结束时间、部门、员工信息齐全之后,点击查询按钮可以进入如图4.12所示的界面,其中将会显示该部门下相应员工的考勤记录,点击上一页和下一页可以翻页。其它的运行界面大致上和图4.10,4.11,4.12相似,就不一一赘述了。
图4.12查询结果运行图4.4Web开发技术在考勤管理中的应用4.4.1J2EE的应用J2EE大致应用已经在2.1和3.5中介绍过了,下面根据实际项目中的架构详细介绍。由于JSP页面代码过多,便不一一贴图介绍。JSP的应用:(1)如图4.10所示的目录就是一个JSP页面,在其它页面中可以使用include动作导入这个目录,这样的好处是根据不同的角色只需导入一个目录就可以完成不同的操作。(2)JSP页面中有着大量Struts的标签,便于界面与后台的交互,这也是Struts的应用之一。(3)JSP页面中有许多JavaScript和CSS的代码以便与验证和界面样式的调整等,如图4.13所示。JDBC的应用主要在Spring+Hibernate的配置文件中得到体现,如图4.14所示,JDBC连接数据库的功能在配置文件中完成。与数据库的交互下面Hibernate会着重说明。JavaBean的应用主要是Hibernate的pojo类和Struts的logic:iterate标签中的显示对象。
图4.13JavaScript+CSS图图4.14Spring+Hibernate配置文件图4.4.2SSH的应用SSH
大致应用已经在2.2和3.5中介绍过了,下面根据实际项目中的架构详细介绍。Struts应用:(1)在JSP页面中的标签,如html:form,logic:iterate,html:submit,bean:write,html:select,html:option,html:text等等。(2)封装用户操作的actionform,如表4.8所示。(3)处理操作的action,如图4.15所示。(4)通过Struts配置文件正确处理action和actionform之间的关系,如图4.16所示。图4.15WorkdayAction实际代码图图4.16Struts配置文件图Spring应用:(1)依赖注入,如图4.17,4.18所示,spring负责管理各种JavaBean,不需要程序员来管理。(2)使用注解方式使用事物,如图4.18所示。(3)管理Hibernate的SessionFactory,如图4.14所示。
图4.17Spring配置文件图图4.18AttendanceHistoryService类实际代码图Hibernate应用:(1)如图4.14所示,连接不同的数据库只需将代码写入配置文件中。(2)在配置文件中可以标明Hibernate方言,来应对不同的数据库。(3)如图4.19所示,只需要写普通的JavaBean就可以映射数据库的表,可以通过类建立表,不需要代码实现,只需要写配置文件。(4)如图4.20所示,注入SessionFactory后可以直接建立Session然后做数据库操作。
图4.19Workday表映射文件图图4.20WorkdayDAO实际代码图4.4.3DHTML的应用DHTML大致应用已经在2.3中介绍过了,下面根据实际项目中的架构详细介绍。JavaScript应用:(1)如图4.13所示,JavaScript可以做一些表单验证。(2)JavaScript可以帮助在提交表单时填充必要的数据。(3)JavaScript实现了日历的功能。CSS应用:(1)如图4.19所示,JSP引用CSS文件之后会将页面的样式做改变。(2)CSS可以贴图。4.4.4EXTJS的应用DHTML大致应用已经在2.4中介绍过了,如图4.10,4.11,4.12所示,主要功能是实现界面,由于代码主要是组长所做,便不做赘述。
第五章总结与展望总体完成一个完全基于浏览器的操作模式,安装简单(B/S架构,不必安装或者只要安装很小的插件),操作方便,具有良好的系统扩充能力的办公自动化系统,提供:文档管理平台、消息管理平台、考勤管理平台、日程管理平台、系统管理平台。该系统目前只能在windows平台上测试运行,以后希望可以做成跨平台的系统。本人完成了其中的子系统考勤管理平台,基本实现了签到/签退管理、考勤历史查询、考勤统计、工作日管理、工作时间管理、出差/请假管理、补签管理。整个项目可以扩展的功能:可以扩展一个电子论坛的功能,让所有员工可以在上面交流和发布信息。还可以扩展一个人力资源的模块,可以规划所有员工的成长过程,同时可以规范的指定工资标准和打印工资报表。对于考勤管理子系统,还有许多不足之处。特别是工作日管理,页面上不能同步显示数据库中工作日的状况,以后希望可以做成12个月的日历形式,在每个月的日历上,与数据库同步显示哪些是工作日,哪些不是,利用AJAX技术完成。同时该子系统还需要一定的扩展,由于签到/签退必须要在PC机上完成,这导致开机、启动系统会浪费时间从而影响签到时间。以后希望可以扩展成手持设备上签到/签退,比如指纹机。
参考文献[1]http://baike.baidu.com/view/38368.htm,百度百科,公办自动化[2]http://articles.e-works.net.cn/It_overview/Article68135_1.htm,办公自动化的国内外发展状况及未来的发展方向[3]http://baike.baidu.com/view/1507.htm#3,百度百科,J2EE[4]http://baike.baidu.com/view/4294.htm#4,百度百科,.net[5]http://baike.baidu.com/view/3387.htm#4,百度百科,JSP[6]http://baike.baidu.com/view/2616.htm#4,百度百科,ASP[7]http://baike.baidu.com/view/99.htm,百度百科,PHP[8]http://baike.baidu.com/view/16184.htm,百度百科,SSH[9]http://baike.baidu.com/view/25611.htm,百度百科,JDBC[10]http://baike.baidu.com/view/28155.htm,百度百科,JavaBean[11]http://blog.sina.com.cn/s/blog_6f6a95180100nf8j.html,Struts1.x流程详细介绍[12]http://baike.baidu.com/view/25603.htm,百度百科,Struts[13]http://baike.baidu.com/view/23023.htm,百度百科,Spring[14]http://baike.baidu.com/view/7291.htm,百度百科,Hibernate[15]http://baike.baidu.com/view/8389.htm,百度百科,DHTML[16]http://baike.baidu.com/view/1350145.htm,百度百科,EXTJS[17]刘中兵《开发者突击:JavaWeb主流框架整合开发》电子工业出版社2009年1月[18]蒲子明许勇王黎《Struts2+Hibernate+Spring整合开发技术详解》清华大学出版社2010年10月[19]徐明华《JavaWeb整合开发与项目实战》人民邮电出版社2009年2月[20]TomNegrinoDoriSmith陈剑瓯《JavaScript基础教程》人民邮电出版社2009年5月[21]徐林林《JavaWeb编程从入门到实践》清华大学出版社2010年3月[22]邱加永卞志城郑经煜《JSP基础与案例开发详解》清华大学出版社2009年8月
致谢通过这一段时间的努力,我的毕业论文终于完成了。这也意味着我的大学生活即将结束,我非常感谢软件学院的各位老师和辅导员对我的支持、关心以及鼓励,感谢你们的言传身教,感谢你们的孜孜不倦的教诲,你们无私奉献的精神无时无刻不在教会我如何学习,如何做人。我还要感谢我的指导老师王大瑞老师,感谢您在百忙之中抽出时间指导我项目的完成和论文的编写,您不仅教我技术的运用,还帮我一遍一遍的阅读文档和修改论文,指出我的不足之处,严格把关,循循善诱。论文的完成离不开我们项目小组的其他成员,感谢刘伟波,马力,阎守卫,赵奕龙,感谢你们的支持和鼓励,通过和你们的交流与合作,才能顺利完成项目。感谢07软件学院的所有同学,感谢你们的帮助,从你们那里我学到了知识,学到了友谊,以及许许多多我以前不曾拥有的美好回忆。最后我要感谢我的父母,谢谢你们的支持和鼓励,没有你们的辛勤培育就没有我的今天。
您可能关注的文档
- 希望教育产业集团校园人事考勤管理系统软件方案需求
- 地图定位语音拍照短信模板企业网页考勤管理php-易签到系统源码
- 福州大学至诚学院教职工考勤管理规定
- [管理学]学生考勤管理系统
- 邯郸学院教职工考勤管理办法
- 集司人资20115号-中铁八局集团有限公司工时制度、假期及考勤管理实施细则
- 派遣公司考勤管理
- 基于单片机的考勤管理系统毕业设计程序附录
- 外勤员工考勤管理
- 门禁、考勤管理系统设计方案
- 电子科技有限公司考勤管理办法
- 社区考勤管理制度_社区考勤管理制度条例
- 漓之龙kmg-850门禁考勤管理系统解决方案
- 企业考勤管理制度精选
- 广州本田《考勤管理制度》培训课件
- 小企业日常考勤管理制度
- 智能考勤管理系统
- 公司考勤管理办法