还剩41页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
本科毕业论文(设计)院系软件学院题目办公自动化系统文档管理子系统的设计与实现学生姓名阎守卫学号071251183年级2007级专业软件工程指导教师职称论文提交日期摘要办公自动化实现了无纸化办公,基于B/S模式,简单易用办公自动化的基本功能有文档管理、消息管理、考勤管理、日程管理和系统管理本文重点介绍文档管理模块文档管理模块覆盖了四个主要的功能文档管理、文件搜索、回收站管理和日志管理文档管理模块完成了文件的基本操作,包括添加、删除、修改、查看、搜索和下载的功能本模块还将模拟Windows的回收站功能,对文件资源进行更加有效的管理本文重点介绍项目中所用到的JavaEE和Ajax技术关于JavaEE,本文集中介绍Struts、Spring和Hibernate框架;关于Ajax,本文结合ExtJs框架进行介绍Struts采用MVC模式,能够很好地帮助java开发者利用J2EE开发Web应用;Spring是一个开源的Java/JavaEE全功能栈的应用程序框架SpringFramework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类;Hibernate是一个面向Java环境的对象/关系型数据库映射工具;AJAX是一种用于创建更好更快以及交互性更强的Web应用程序的技术通过JavaScript的XMLHttpRequest对象来直接与服务器进行通信,在与Web服务器交换数据时页面不用重载论文的组织结构如下
1.第一章介绍项目的背景及技术的发展现状
2.第二章介绍项目所用相关技术包括JavaEE技术和相关的SSH框架,以及AJAX和ExtJS框架
3.第三章对项目进行整体性介绍
4.第四章对项目进行详细介绍,包括项目的详细设计和具体实现
5.第五章将会对办公自动化进行展望,分析预测办公自动化未来的发展趋势
6.最后,将会特别对指导老师和同学表示感谢关键词办公自动化项目,JavaEE技术,Ajax技术AbstractOfficeAutomationProjectOverviewdocumentmanagementmodule.OfficeautomationachievepaperlessofficeIt’sbasedonB/Smodeandeasytouse.Thebasicfunctionsofofficeautomationdocumentmanagementmessagemanagementattendancemanagementschedulemanagementandsystemmanagement.Thisarticlefocusesondocumentmanagementmodule.Documentmanagementmodulecoversthefourmainfunctions:documentmanagementfilesearchtheRecycleBinmanagementandlogmanagement.DocumentManagementmodulecompletesthedocumentsbasicoperationsincluding:adddeletemodifyviewsearchanddownloadfunction.ThemodulealsofeaturessimulatedWindowsRecycleBinthefilemanagementofresourcesmoreeffectively.IntroductiontoJavaEEAjaxtechnologies.ThisarticlefocusesonprojectsthatusedJavaEEandAjax.AboutJavaEEthispaperfocusesonStrutsSpringandHibernateframeworks;onAjaxExtJsframeworkofthispaperareintroduced.MVCpatternusingStrutscanbeagoodhelpjavadeveloperstouseJ2EEWebapplicationdevelopment;SpringisanopensourceJava/JavaEEstackfull-featuredapplicationframework.SpringFrameworkprovidesasimplewayofdevelopmentthisdevelopmentapproachwillavoidlow-levelcodethatmaycauseconfusionbecomescomplicatedpropertyfileandhelpalotofclass;HibernateisaJavaenvironmentforobject/relationaldatabasemappingtool;AJAXisusedtocreatebetterfasterandmoreinteractiveWebapplicationtechnology.ThroughJavaScriptsXMLHttpRequestobjecttocommunicatedirectlywiththeservertoexchangedatawiththeWebserverwhenyoudonotreloadthepage.Organizationalstructureofthepaper.Thefirstchapterintroducesthebackgroundoftheprojectandtechnologydevelopmentstatus.Thesecondchapterdescribestherelatedtechnologiesusedbytheproject.IncludingSSHJavaEEframeworkandrelatedtechnologiesaswellasAJAXExtJSframework.Thethirdchapterdescribestheoverallimplementationoftheproject.Thefourthchapterdetailstheprojectincludingthedetaileddesignandimplementation.ThefivechapterwillbeLookingforofficeautomationofficeautomationanalysisandforecastfuturetrends.FinallytheguidancewillbeparticularlythankedtheteachersandstudentsKeywords OfficeAutomationJavaEEAjax目录TOC\o1-3\h\z\u摘要IAbstractII目录IV第一章概述/绪论
11.1项目背景
11.2国内外办公自动化技术现状
21.3论文主要工作/组织结构3第二章JavaEEAJAX技术概述
52.1JavaEE技术
52.
1.1Struts
1.3框架
62.
1.2Spring框架
82.
1.3Hibernate框架
92.2AJAX技术
112.
2.1AJAX
112.
2.2ExtJS框架12第三章办公自动化系统项目概述
133.1系统概述
133.2系统业务流程
143.3模块介绍15第四章JavaEEAJAX技术在文档管理模块项目中的应用
214.1Hibernate框架在项目中的应用
214.2Spring框架在项目中的应用
234.3Struts1在项目中的应用
254.4AJAXExtJS技术在项目中的应用29第五章总结与展望35参考文献37致谢38第一章概述/绪论
1.1项目背景随着计算机的普及和计算机技术的飞速发展,越来越多的企业利用计算机解决实际中遇到的问题伴随着数字商业时代的到来,企业的管理意识和环境都发生了巨大的变化,企业的管理结构由多层次结构向扁平化管理结构转化;数字时代企业的信息量和沟通数量巨大,为了提高企业的管理效率,必须提升沟通的质量,要求企业办公高效率、自动化,办公自动化系统应运而生办公自动化建设的本质是提高决策效能为目的的通过实现办公自动化,或者说实现数字化办公,可以优化现有的管理组织结构,调整管理体制,在提高效率的基础上,增加协同办公能力,强化决策的一致性,最后实现提高决策效能的目的
[1]办公自动化技术分为三个层次第一个层次只限于单机或简单的小型局域网上的文字处理、电子表格、数据库等辅助工具的应用,一般称之为事务型办公自动化系统;第二个层次是信息管理型办公自动化系统,是把事务型办公系统和综合信息紧密结合的一种一体化的办公信息处理系统;第三个层次是决策支持型系统,建立在信息管理级系统的基础上,结合有关条件,选用决策数字模型,做出相应决策本文主要针对第二层次的办公自动化系统进行研究办公自动化系统的主要功能文档管理、消息管理、考勤管理、日程管理和系统管理本文主要研究文档管理文档管理子系统可使各类文档(包括各种文件、知识、信息)能够按权限进行保存、共享和使用,并有一个方便的查找手段每个单位都会有大量的文档,在手工办公的情况下这些文档都保存在每个人的文件柜里因此,文档的保存、共享、使用和再利用是十分困难的另外,在手工办公的情况下文档的检索存在非常大的难度文档多了,需要什么东西不能及时找到,甚至找不到办公自动化使各种文档实现电子化,通过电子文件柜的形式实现文档的保管,按权限进行使用和共享实现办公自动化以后,比如说,某个单位来了一个新员工,只要管理员给他注册一个身份文件,给他一个口令,自己上网就可以看到这个单位积累下来的东西,规章制度、各种技术文件等等,只要身份符合权限可以阅览的范围,他自然而然都能看到,这样就减少了很多培训环节
[2]文档管理子系统的主要功能有文档管理、回收站管理、文件搜索和日志管理
1.2国内外办公自动化技术现状经过近30年的发展办公自动化越来越成熟了使得其应用范围也愈来愈广办公自动化已经从以前只是在机关的办公系统发展到现在各企业和各种工作部门都需要的办公系统在实际工作中各企业同样需要对内或对外处理各种信息因此也同样有办公自动化的必要而且在市场经济的条件下企业和各种工作部门的办公事务将越来越繁重企业和工作人员快速、有效的协调越来越显得重要越来越有必要实施办公的自动化办公自动化系统是企业和工作部门的数字神经系统的重要部分没有一个快速反应的神经系统的协助任何企业和工作部门将难以获得长期、稳定、快速的发展实际上越来越多的企业和工作部门已经把办公自动化提到日程上来很多企业和工作部门都在不同的层次上实现了办公自动化
[3]但同时,不同层次的办公自动化系统对办公人员的要求也不同从前的办公自动化是个体工作的自动化,不要求所有的办公人员都加入到办公自动化的流程和使用中这些工作只是由一些专门的操作人员来做而现代的办公自动化系统通过计算机网络将所有员工联系起来,通过网络来完成大部分的办公工作,是全员的办公自动化并且,现代办公自动化系统的功能越来越先进,使用起来越来越简单尤其是最先进的WEB方式的办公自动化系统,办公人员只要能掌握简单的WINDOWS和WEB的操作,基本上就能应付所有的计算机应用了并能熟练的操作办公系统这样办公自动化系统己经起到了推动企业和工作部门的整体快速发展、提高工作效率、增强竞争实力的作用
[4]科技发展到现在的地步,随着企业和各部门的发展,企业内部以及企业之间的联系越来越多,因此对企业中的办公自动化也有着更进一步的要求,从而使“数字化办公”和“协作办公”成为办公自动化系统今后的主要发展方向随着3G移动网络的部署,办公自动化已经进入了移动时代移动办公自动化系统就是一个集3G移动技术、智能移动终端、VPN、身份认证、地理信息系统(GIS)、Webservice、商业智能等技术于一体的移动办公自动化产品它将原有办公自动化系统上的公文、通讯录、日程、文件管理、通知公告等功能迁移到手机,工作人员可以随时随地进行掌上办公,成为管理者、市场人员等贴心的移动办公系统
[5]文档管理是办公自动化的最重要功能之一文档管理技术也随着办公自动化技术的发展而发生巨大变化办公自动化对文书与档案工作的直接影响,就是产生了大量不同于传统纸质文档的电子文档由于目前我国办公自动化尚未完全社会化,并且电子签名、身份认证、信息安全等技术措施尚未完善,在相当长时间内,无法实现完全的无纸化办公,因此,电子文件和纸质文件将长期并存尽管电子文件和纸质文件所记载的信息完全相同,根据需要可以互为转换,但由于载体的差异,存储和获取信息的方式带有根本性的区别,因而在文件标的归档上相互制约,相互影响,对传统的文件立卷归档的理论与实践带来了巨大冲击和挑战办公自动化对文件归档工作带来的变化表现在归档载体发生了变化原来单一的纸质形式向同一归档文件即有纸质形式又有电子形式转变即电子文件与纸质文件同步归档,这样既可以解决归档文件的凭证、依据作用,又可以解决归档文件的利用和资源共享问题,达到互补的目的归档含义发生了变化由于电子文件具有对设备的依赖性,离开了计算机及软件就无法生成、传递,同时电子文件还具有易更改性,人为的修改及遭遇受病毒侵袭使得文件归档存在着实物上的归档和概念上的归档等,办公自动化使归档的含义需要重新解释突破了“案卷”的概念,以“件”作为归档文件材料的整理单位传统立卷要进行案卷和卷内两级整理,过程复杂,已落后于档案管理现代化的要求
[6]
1.3论文主要工作/组织结构本文首先介绍办公自动化的项目背景及国内外办公自动化的发展现状,然后介绍项目所用到的JavaEE技术及其相关的Struts、Spring、Hibernate框架、和前端ExtJS技术接着本文介绍项目的整体架构,介绍项目的高层设计然后本文将大篇幅详细介绍MVC结构在本项目中的应用及Struts、Spring、Hibernate框架如何与项目进行结合本文将重点介绍项目的详细设计与实现,并体现出项目的工程性最后,本文将对办公自动化技术做一个展望,分析预测办公自动化的发展趋势论文共分五章第一章介绍项目的背景及技术的发展现状第二章介绍项目所用相关技术包括JavaEE技术和相关的SSH框架,以及AJAX和ExtJS框架第三章对项目进行整体性介绍第四章对项目进行详细介绍,包括项目的详细设计和具体实现第五章将会对办公自动化进行展望,分析预测办公自动化未来的发展趋势最后,将会特别对指导老师和同学表示感谢第二章JavaEEAJAX技术概述
2.1JavaEE技术图
2.1JavaEE多层应用图JavaEE是sun公司推出的企业级应用程序版本这个版本以前称为J2EE能够为我们帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序JavaEE是在JavaSE的基础上构建的,最新版本是JavaEE6它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(SOA)和Web
2.0应用程序JavaEE平台使用了一个针对企业应用的分布式多层应用模型应用逻辑根据功能划分为组件,组成JavaEE应用的不同应用组件根据在多层JavaEE环境中应用组件所属的层安装在不同的计算机上图
2.1中说明了两个多层JavaEE应用,它们被划分为在以下列表中描述的分层组件运行在客户端计算机上的客户端层组件运行在JavaEE服务器上的Web层组件运行在JavaEE服务器上的业务层组件运行在EIS服务器上的企业信息系统层软件
[7]Java所包含的技术JDBC提供连接各种数据库的统一接口EJB方便开发者对基于组件的企业应用进行创建、部署和管理JNDI提供一个接口,这个接口屏蔽了企业网络所使用的各种命名和目录服务JavaRMI用来开发分布式Java应用程序JMS提供企业消息服务JTS提供存取事务处理资源的开放标准JavaFX用来开发富互联网应用程序JPA通过JDK注解或XML描述对象-关系表的映射关系
2.
1.1Struts
1.3框架介绍Struts之前首先要提到的就是MVC结构MVC是一种设计模式,M代表Model,V代表View,C代表ControllerMVC将输入、处理与输出分开,使得模型与视图分离,并使用控制器作为桥梁,可以最大化的重用代码MVC结构使程序具有低耦合性,对变化的适应能力更强;MVC具有高可重用性和可适用性,模型不用改变的前提下,只需改变视图层就可使应用适用于不同产品;MVC可维护性更高;MVC更符合工程化的需要,由于视图层、控制层和业务层相互分离,开发人员可各司其职,开发业务逻辑的专注于业务层,而前端开发的则更加专注于视图层开发;MVC部署迅速,且生命周期成本较低尽管为了实现MVC结构需要我们做一些额外的工作,但MVC的好处显而易见Struts是Apache基金会Jakarta项目组的一个OpenSource项目,它采用MVC模式,能够很好地帮助java开发者利用J2EE开发Web应用和其他的java架构一样,Struts也是面向对象设计,将MVC模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致Struts框架的核心是一个弹性的控制层,基于如JavaServlets,JavaBeans,ResourceBundles与XML等标准技术,以及JakartaCommons的一些类库Struts由一组相互协作的类(组件)、Servlet以及Jsptaglib组成基于struts构架的web应用程序基本上符合JSPModel2的设计标准,可以说是一个传统MVC设计模式的一种变化类型Struts为业务层、视图层和控制层都提供了对应的组件ActionServlet类作为Struts的核心控制器,负责拦截来自用户的请求Action类通常由用户提供(用户提供的类继承Action类),Action类负责接收ActionServlet的请求并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面或HTML页面显示Struts对应的Model部分由JavaBean组成,ActionForm用于封装请求参数,并封装成ActionForm对象,该对象由ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求JavaBean封装了底层业务逻辑Struts对应的View部分大多采用JSP实现,通过使用标签库可以减少脚本的使用Struts支持自定义标签库,可以实现与Model的有效交互,并增加了实现功能Struts对应的Controller部分主要由两部分组成系统核心控制器和业务逻辑控制器其中系统核心控制器对应的是ActionServlet负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器业务逻辑控制器负责处理用户请求,通过调用Model来处理,本身并不具备处理能力Struts框架的工作流程1读取配置初始化ModuleConfig对象Struts框架总控制器ActionServlet是一个Servlet在web.xml中配置成自动启动的Servlet读取配置文件struts-config.xml的配置信息,为不同的Struts模块初始化相应的ModuleConfig对名ActionConfigControlConfigFormBeanConfigMessageResourcesConfig2发送请求请求上传WEB服务器(处理.do的请求)3填充FORM实例化,复位,填充数据,校验,保存*.do请求从ActionConfig中找出对应该请求的Action子类,如没有对应的Action控制器直接转发给JSP或静态页面如有对应的Action且这个Action有一个相应的ActionForm.ActionForm被实例化并用http请求的数据填充其属性,并且保存在ServletContext中request或session中,这样它们就可以被其它Action对象或者JSP调用4派发请求控制器根据配置信息ActionConfig将请求派发到具体的Action相应的FormBean一并传给这个Action的execute方法.5处理业务Action一般只包含一个execute方法它负责执行相应的业务逻辑调用其它业务模块.完毕返回一个ActionForward对象控制器通过该ActionForward对象来进行转发工作6返回响应Action根据业务处理的不同结果返回一个目标响应对象给总控制器该目标响应对象对应一个具体的JSP页面或另一Action.7查找响应可以是一个Action8响应用户
2.
1.2Spring框架Spring也是基于MVC结构的框架SpringFramework是一个开源的Java/JavaEE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本SpringFramework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现每个模块的功能如下核心容器核心容器提供Spring框架的基本功能核心容器的主要组件是BeanFactory,它是工厂模式的实现BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开Spring上下文Spring上下文是一个配置文件,向Spring框架提供上下文信息Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能SpringAOP通过配置管理特性,SpringAOP模块直接将面向方面的编程功能集成到了Spring框架中所以,可以很容易地使Spring框架管理的任何对象支持AOPSpringAOP模块为基于Spring的应用程序中的对象提供了事务管理服务通过使用SpringAOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中SpringDAO JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)SpringDAO的面向JDBC的异常遵从通用的DAO异常层次结构SpringORM Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate和iBatisSQLMap所有这些都遵从Spring的通用事务和DAO异常层次结构SpringWeb模块Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文所以,Spring框架支持与JakartaStruts的集成Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作SpringMVC框架MVC框架是一个全功能的构建Web应用程序的MVC实现通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText和POISpring框架的功能可以用在任何JavaEE服务器中,大多数功能也适用于不受管理的环境Spring的核心要点是支持不绑定到特定JavaEE服务的可重用业务和数据访问对象毫无疑问,这样的对象可以在不同JavaEE环境(Web或EJB)、独立应用程序、测试环境之间重用
[8]
2.
1.3Hibernate框架Hibernate是一个面向Java环境的对象/关系型数据库映射工具对象/关系型数据库映射object/relationalmapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去Hibernate不仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时对人工使用SQL和JDBC处理数据的时间Hibernate的核心接口一共有五个,分别为Session、SessionFactory、Transaction、Query和Configuration这5个核心接口在任何开发中都会用到通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制Session接口负责执行很多常见的SQL语句这里的Session指的是HttpSessionSessionFactory接口负责初始化Hibernate,并负责创建Session对象,使用了常用的工厂模式Configuration接口负责配置并启动Hibernate,创建SessionFactory对象在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象Transaction接口负责事务相关的操作Query和Criteria接口负责执行各种数据库查询Hibernate基础代码包括POJO和Hibernate映射文件POJO在Hibernate语义中理解为数据库表所对应的DomainObject,可以简单地理解为一个不包含逻辑代码的值对象VOHibernate从本质上来讲是一种“对象-关系型数据映射”POJO在这里体现的就是ORM对象关系映射的Object层的语义,而映射文件则是将对象与关系型数据相关联的纽带,在Hibernate中,映射文件通常以“.hbm.xml”作为后缀
[9]Hibernate的优点对象/关系数据映射ORM,使用时只需要操纵对象,使开发对象化,抛弃了以数据库为中心的思想,完全的面向对象思想透明持久化persistent,带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短这些对象可能是普通的JavaBeans/POJO,这个对象没有实现第三方框架或者接口,唯一特殊的是他们正与(仅仅一个)Session相关联一旦这个Session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用事务Transaction,应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开某些情况下,一个Session之内可能包含多个Transaction对象尽管是否使用该对象是可选的,但无论是使用底层的API还是使用Transaction对象,事务边界的开启与关闭是必不可少的此外,Hibernate是轻量级框架,移植性很好,并且提供缓存机制,HQL编程也非常简单
2.2AJAX技术
2.
2.1AJAXAJAX是一种用于创建更好更快以及交互性更强的Web应用程序的技术通过JavaScript的XMLHttpRequest对象来直接与服务器进行通信,在与Web服务器交换数据时页面不用重载AJAX可以使因特网应用程序更小、更快、更友好AJAX包含的主要技术有XHTML、CSS、DOM、XML与XSLT、XMLHttpRequest对象、基本Javascript和服务器端技术XMLHttpRequest对象是AJAX技术的核心XMLHttpRequest对象在大部分浏览器上已经实现而且拥有一个简单的接口允许数据从客户端传递到服务端,但并不会打断用户当前的操作使用XMLHttpRequest传送的数据可以是任何格式,虽然从名字上建议是XML格式的数据开发人员应该已经熟悉了许多其他XML相关的技术XPath可以访问XML文档中的数据,但理解XMLDOM是必须的类似的,XSLT是最简单而快速的从XML数据生成HTML或XML的方式许多开发人员已经熟悉XPath和XSLT,因此AJAX选择XML作为数据交换格式是有意义的XSLT可以被用在客户端和服务端,它能够减少大量的用JavaScript编写的应用逻辑
2.
2.2ExtJS框架Ajax的主流框架之一就是ExtJSExtJS最开始基于YUI技术,由开发人员JackSlocum开发,通过参考JavaSwing等机制来组织可视化组件ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用Javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端AJAX框架ExtJs初期仅是对Yahoo!UI的对话框扩展,后来逐渐有了自己的特色,深受网友的喜爱发展至今,Ext除YUI外还支持Jquery、Prototype等的多种JS底层库,让大家自由地选择该框架完全基于纯HTML/CSS+JS技术,提供丰富的跨浏览器UI组件,灵活采用JSON/XML数据源开发,使得服务端表示层的负荷真正减轻,从而达到客户端的MVC应用本项目使用了ExtJS的日历组件、树形结构组件等等,使得客户端更加丰富、更加友好
[10]第三章办公自动化系统项目概述
3.1系统概述本项目完成的产品完全基于浏览器操作模式,安装简单(B/S架构,不必安装或者只要安装很小的插件),操作方便,具有良好的系统扩充能力的办公自动化系统,提供1)文档管理平台通过本平台,实现文档管理、回收站管理、文件搜索管理、日志管理等功能各部门在服务器有自己的共享文件夹,在浏览器中模拟实现操作系统中的文件夹树形结构,可以在文件夹下创建某个文档,可以查询、修改、删除文档;实现回收站管理,可还原、彻底删除文件;实现文件搜索功能;记录文档操作的日志2)消息管理平台通过本平台,实现消息管理、邮箱管理、信息提示等功能用户可以对自己未发布的消息进行增删改查;可以指定消息接收者、消息的有效时间等;管理员可以查询所有已发布的消息;用户可以进行邮箱管理,主要有收件箱、发件箱、草稿箱、废件箱的管理;用户登录系统后,在首页显示新消息,可以点击链接直接查看3)考勤管理平台通过本平台,实现签到/签退管理、考勤历史查询、考勤统计、工作日管理、工作时间管理等功能用户如果是当天第一次操作,只能签到,当天第一次以后操作,只可以签退,记录签卡备注、签卡时间;管理员可以通过平台按照时间段、部门、姓名等信息查询考勤信息;管理员可以通过平台统计一段时间内指定部门所有员工的迟到、早退、旷工次数等,可以导出Excel表格;管理员可以通过本平台设定当年的工作日,对周末、法定假日、公司休假等日期不做考勤;管理员可以通过平台设定某段日期内上班时间、下班时间;员工可以将出差时间等信息提交给领导审批,审批通过后管理员设定该员工在出差时间段内不做考勤;员工当天如果忘记签到,事后可以提交申请进行补签4)日程管理平台通过本平台实现个人日程管理、部门日程管理、便签管理等功能用户可以浏览和编辑自己的日程;用户可以管理联系人名单;用户可以浏览联系人的日程;用户可以浏览和编辑部门日程;用户可以使用迷你日历,迷你日历是一个以图形方式简要显示当前日期、星期、月份的日历,为用户提供当前日期总览;用户可以记录便签5)系统管理平台通过本平台实现部门管理、员工管理、权限管理、菜单定制、系统登录/注销管理等功能管理员可以对系统中的所有权限进行管理;可以管理部门信息;可以灵活定制不同角色人员登录系统后显示的菜单;管理员工信息、修改密码等,员工信息包含员工照片;实现只有登录用户才能使用本系统;提供系统注销功能;记录进行关键操作的用户信息及操作时间,并提供管理及查询功能角色说明普通员工企业内部的员工;部门经理企业内部的一个部门的负责人;管理员负责系统维护的管理人员
3.2系统业务流程整体业务流程描述用户(包含普通员工、部门经理、管理员)登录后,根据提供的菜单选项,进行权限允许的操作以用户为中心,实现办公的自动化,实现考勤、日程、文档、消息的对应管理系统的业务流程图如图
3.1所示图
3.1系统功能结构
3.3模块介绍根据项目的功能将系统划分为五个模块文档管理、消息管理、考勤管理、日程管理和系统管理下面对五个模块分别进行整体性介绍1文档管理模块创建新文档用户通过鼠标操作创建新的文档;修改文档用户可以对文档进行编辑;删除文档将文档及其下的附件放入回收站中;查询文档按创建者或文件名对文档进行组合查询;添加附件在文档中创建新的文件;删除附件将选中的附件放入回收站中;下载附件通过浏览器自带的下载工具将附件下载到本地;还原文档将文档从回收站移回原来位置;还原附件将附件还原到原来位置;彻底删除文档将文档从服务器中彻底删除;彻底删除附件将附件从服务器中彻底删除;清空回收站将回收站中的文件彻底删除;记录日志用户进行重要操作时系统会自动记录日志;查看日志系统将返回日志;2消息管理模块消息管理对自己未发布的消息进行增加、修改、删除、查看操作;消息发布可以发布消息包括单独发送和群发;信箱管理主要有收件箱、发件箱、垃圾箱和草稿箱;消息查询管理员可以查询所有已发布的消息;信息提示用户登录系统后,在首页弹出未读消息提示窗口;邮件操作人员之间可以互相发送电子邮件,可以添加附件;新建消息新建消息;删除消息删除草稿箱中的某些未发布消息;修改消息对草稿箱中的未发布消息进行修改;查看消息查看草稿箱中的未发布消息;收件人设置可以指定消息接收者;有效期设置设置消息的有效时间;收件箱管理保存自己收到的消息;发件箱管理保存自己已经发布的消息;垃圾箱管理保存删除的消息;草稿箱管理用于想要以后发布的消息;未读消息提示登录后如果有未读消息,则弹出窗口进行提示;未读消息链接点击链接,直接查看未读消息的内容;写邮件给指定的邮箱发送邮件;添加附件发送的邮件里可以添加附件同时发送;收件箱管理保存自己收到的邮件;发件箱管理保存自己已经发送的邮件;垃圾箱管理保存删除的邮件;草稿箱管理用于保存写了内容但是未发送的邮件;邮件刷新用户单独登录邮件模块,每隔5分钟刷新邮件显示页面3考勤管理模块签到/签退管理签到、签退,记录签卡备注、签卡时间;考勤历史查询跟踪并定位数据库中的历史记录;考勤统计管理员统计指定部门所有员工的迟到、早退、旷工次数;工作日管理管理员设定当年的工作日;工作时间管理管理员设定某段日期内上班时间、下班时间;出差/请假管理员工将出差/请假时间等信息提交给领导审批;补签管理员工当天如果忘记签到/签退,可以提交申请进行补签;签到员工当天第一次操作作为签到;签退员工在当天第一次操作之后可以签退;记录签到/签退操作的同时记录签卡备注、签卡时间;普通员工查询普通员工可以查询自己的考勤历史;部门经理查询部门经理可以查询自己部门的所有员工的考勤历史;管理员查询管理员可以查询所有部门的所有员工的考勤历史;管理员通过考勤历史查询子模块的功能;统计指定时间段内指定部门的指定员工的迟到、早退、旷工次数;导出考勤统计的Excel表;管理员设定当年的工作日;管理员做出工作日、双修日和假日的调整;可视化图表设置页面;员工在出差/请假前需要通过消息向部门经理发出申请;部门经理审批通过,发给管理员;若不通过则返回不通过信息给员工;管理员收到审批通过的信息则记录上备注;员工发现自己忘记签到/签退,通过消息向部门经理发出补签申请;部门经理进行审批,若通过则发补签信息给管理员,若不通过则发送拒绝补签的信息给员工,同时标明原因;管理员收到审批通过的信息则修改考勤记录4日程管理模块用户浏览和编辑自己的日程;用户管理联系人名单联系人由当前用户之外的其它用户组成;用户浏览联系人的日程;用户浏览和编辑部门日程;用户使用迷你日历加速日程管理迷你日历是一个以图形方式简要显示当前日期、星期、月份的日历,位于用户界面的侧边栏,为用户提供日期的纵览迷你日历不显示日程事件;便签管理功能;日模式;周模式;月模式;日程模式;模式切换;调整可视日期;显示可视日期;回到“今天”5系统管理模块系统登录/注销管理;客户端验证登录合法性;服务端验证登录合法性;自动注销超过10分钟不处于活动状态则自动注销;正常注销;权限管理;菜单定制管理;管理员可以查看、维护员工信息(员工编号、密码、姓名、照片、年龄、性别、住址、邮箱、移动电话、家庭电话、入职时间、办公地点、办公电话、部门、民族、籍贯、户口所在地、出生年月、政治面貌、身份证号码、婚姻状况、备注);员工可以查看自己的信息,包含员工编号、密码、姓名、照片、年龄、性别、住址、邮箱、移动电话、家庭电话、入职时间、办公地点、办公电话、部门、民族、籍贯、户口所在地、出生年月、政治面貌、身份证号码、婚姻状况、备注;可以修改自己的密码;管理员查看部门信息,包含部门编号、部门名称、部门创建时间、部门人数、部门经理编号、部门经理姓名、部门员工信息列表;管理员选定部门并维护该部门的信息;部门经理可以查看本部门的部门信息;管理员查看日志或者搜索定位日志,日志项内容包含日志项编号,时间、操作者的IP、用户编号、操作的动作内容(默认包含登录、注销、修改密码);用户登录后,系统记录关键操作并写入日志包含时间、用户的IP、用户编号、操作的动作内容(默认包含登录、注销、修改密码);6模块间的相互关联文档管理模块、日程管理模块、考勤管理模块、消息管理模块要调用系统管理模块的用户信息、权限信息、部门信息等文档管理模块、日程管理模块、消息管理模块和考勤管理模块间相对独立第四章JavaEEAJAX技术在文档管理模块项目中的应用
4.1Hibernate框架在项目中的应用下面是Hibernate的POJO类,对应JavaEE中的Bean类图
4.1Document类图Document类如图
4.1所示,描述了文档的相关属性Id对应数据库TB_DOC_DOCUMENT表的主键;Name描述了文档的名称;Position描述了文档在服务器中的绝对路径;Property描述文档的属性;AccountId描述了创建者的账号;LastModifiedTime描述了文档的最后修改时间;IsPrivate描述文档是私有的还是共享的;CreatedTime描述文档的创建时间;State描述文档的状态,1为正常状态,0说明文档在回收站中Attachment类与Document类都属于POJO类,这里就不详细介绍Attachment类了下面用HibernateXML文件完成对象与关系的映射,如下图
4.2document.hbm.xml文件图如图
4.2所示,Document.hbm.xml完成了由Document对类到TB_DOC_DOCUMENT表的映射Attachment.hbm.xml原理相似,在此也不赘述DAO数据访问对象对数据库的操作进行封装,通过HibernateSession对数据库进行访问下面是DAO类图
4.3DocumentDAO类图图
4.3是DocumentDao的类图,该类提供了数据库操作的相关方法Delete方法用来删除文档;FindAll方法用来查询所有处于正常状态的文档;FindAllRecycleBin方法用来查询所有在回收站中的文档;FindById方法通过id来查找处于正常状态的文档;FindByIdRecycleBin方法通过id查询所有在回收站中的文档;FindByState方法通过state来查找在回收站中或正常状态的文档;Save方法用来添加新的文档,对应地向数据库中添加一条新记录;Update方法用来修改数据库中的记录AttachmentDao与DocumentDao类似,在此不做详细介绍
4.2Spring框架在项目中的应用SpringORM本项目中使用的ORM框架为Hibernate图
4.4Spring配置文件中Hibernate配置文件列表图如图
4.4所示,在Spring的配置文件中对mappingResource进行配置,对应了3个Hibernate的配置文件的列表图
4.5Spring与Hibernate结合图如图
4.5所示,在Spring的配置文件中对Hibernate相关属性进行配置,本项目开发使用的是Oracle10g数据库Spring上下文Spring配置文件中Context标签描述了Spring的上下文,如下图
4.6所示图
4.6Spring配置文件中声明标签注入部分SpringWeb模块Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文所以,Spring框架支持与JakartaStruts的集成Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作SpringWeb模块如图
4.
7、
4.
8、
4.9所示图
4.7Spring中对DAO的配置图
4.8Spring中对Action的配置图
4.9Service的配置Spring事务管理可以通过配置文件来设置Spring,配置文件相关部分如图
4.10所示图
4.10Spring事务管理以DeleteAttachmentAction类为例,通过标签注入声明service的代码为@Resourcename=“attachmentService”以AttachmentService类为例,通过标签注入声明AttachmentDao的代码为@Resourcename=“attachmentDao”以AttachmentDao为例,通过标签注入声明SessionFactory的代码为@Resourcename=“sessionFactory”这样声明资源的方式既清晰又简单
4.3Struts1在项目中的应用Form:文档管理模块共有12个form,分别为AttachmentForm描述附件的formDeleteAttachmentForm删除附件对应的formDeleteDocumentForm删除文档对应的formDestroyDocumentForm彻底删除文档对应的formDocumentForm描述文档对应的formDownloadForm下载附件对应的formRestoreDocumentForm还原文档对应的formRestoreFileForm还原附件对应的formSearchForm组合查询附件对应的formShowListForm显示文件夹中的附件对应的formShowRecycleBinForm显示回收站中的文档和附件对应的formUploadForm添加附件对应的formAction文档管理模块中与12个form对应12个action下面将一一进行介绍AttachmentAction处理附件的actionDeleteAttachmentAction删除附件的action首先根据id找到对应的附件,然后将附件的state设为0,即将其放入回收站中,然后跳转到相应的消息提示页面DeleteDocumentAction删除文档的action首先根据id通过数据库查询得到对应的文档和其所属的附件,然后分别将文档的state与附件的state都设为0,即将文档与附件都放入回收站中DestroyDocumentAction彻底删除文档的action首先根据id和state通过数据库查询得到对应的文档,然后将其从服务器中递归删除删除的方法如图
4.
11、
4.12所示图
4.11删除文件夹实现图图
4.12删除文件实现图如果是空文件夹,delFolder方法可以直接将文件夹删除,如果文件夹不为空,那就调用delAllFile方法将其递归彻底删除,当文件夹为空时,再继续调用delFolder方法将空文件夹彻底删除将文件夹与文件从服务器中删除之后,通过Hibernate将文档与附件从数据库中递归删除DestroyFileAction彻底删除文件的action通过id与state从数据库查询对应的附件通过附件对象的getPosition方法获取其服务器中的绝对路径,然后通过路径创建新的File类,通过此File类将此文件彻底删除,最后将数据库表中对应的记录删除DocumentAction添加新文档actionDownloadAction下载附件的action首先通过id从数据库中获取对应的附件对象然后通过该附件对象的getPosition与getName方法分别获取附件的path与name通过path来创建新的File类然后建立输入流,并设置header,最后关闭输入输出流具体实现如图
4.13所示图
4.13下载文件实现图RestoreDocumentAction从回收站中将对应的文档还原到原来的位置首先通过id与state获取对应文档对象将文档对象的state设为1,即还原到正常状态然后根据此文档对象循环查找其所属的所有附件,然后通过setState分别将其state属性设为1即将其还原成正查状态RestoreFileAction从回收站中将对应的附件还原到原来的位置首先通过id与state获取对应附件对象将附件对象的state设为1,即还原到正常状态SearchAction搜索文件的action首先通过form获取fileName和author然后通过Hibernate组合查询从数据库中获取相应的附件对象列表然后返回json数据,这将在介绍ajax技术在本项目中的应用时再详细介绍ShowListAction显示文档中附件的action首先通过id从数据库中获取相应的附件对象列表,然后返回json数据,这也将在介绍ajax技术在本项目中的应用时再详细介绍ShowRecycleBinAction显示回收站中的文档和附件的action通过在文档和附件数据库表中查找state=0的记录然后返回对应的json数据返回给客户端,这将在介绍ajax技术在项目中的应用时再详细介绍UploadAction添加新附件的action通过id获取相应的文档对象,通过getPosition方法获取文件夹的路径获取文件类型的具体实现如图
4.14所示图
4.14获取类型找到最后一次出现的“.”字符,其后的字符串即为文件的属性在此对属性名进行一下判断,添加的附件只能为“doc”、“pdf”或“txt”文件,如果不是,发出错误提示然后将文件添加到服务器中的指定文件夹中具体的实现方法如图
4.15所示图
4.15在服务其中创建文件实现图首先判断文件夹是否存在,如果不存在,通过mkdirs方法创建新的文件夹文件夹存在时,创建新的File类,然后加入输入流,添加到对应的文件夹中,然后关闭输入流最后将该附件存入数据库中Struts配置文件为使Struts工作,必须配置好Struts文件Formbean的配置如图
4.16所示图
4.16Struts配置文件配置formbean部分以上为相关的formbean,name代表form的名字,type为具体的form类Struts会都过name和type查找对应的form各Action的配置如图
4.17所示图
4.17Struts配置文件中对Action的配置以DocumentAction与AttachmentAction为例,attribute与name作用极其相似,表示action的名字;path表示对应的路径;scope表示作用域;type表示具体的Action类
4.4AJAXExtJS技术在项目中的应用本项目中的AJAX都通过ExtJs框架来实现在显示文件夹中的附件、显示回收站中的文档与附件和显示搜索结果功能中通直接或间接地使用了Ajax技术显示文件夹中的附件功能的前端实现如图
4.18所示图
4.18添加附件前端实现url将从相应的位置获取数据源,本项目中通过服务器端action的输出流返回json数据服务器端返回json的实现如图
4.19所示图
4.19返回json数据首先生成所需的json字符串,然后将json字符串加入输出流,返回给客户端显示回收站中的文档与附件的前端实现如图
4.20所示图
4.20回收站前端实现url将从相应的位置获取数据源,本项目中通过服务器端action的输出流返回json数据服务器端返回json的实现如图
4.21所示图
4.21回收站显示的json数据首先生成所需的json字符串,然后将json字符串加入输出流,返回给客户端显示搜索结果的前端具体实现如图
4.22所示图
4.22文件搜索前端实现原理与显示文件夹中的文件列表和显示回收站中的文档和文件列表的原理相同,在此不再赘述ExtJs框架提供了丰富的UI组件,在项目中充分的使用了这些组件文档管理模块中使用了树形结构组件、数据表格组件和form组件树形结构的前端实现如图所示
4.23所示图
4.23文件夹属性结构实现图首先建立根节点,text属性表示根节点的名称然后建立tree的面板renderTo表示面板在页面中的位置;height属性定义面板的高度;root属性表示树的根节点通过appendChild方法向根节点添加子节点Id表示子节点唯一的标记;text表示子节点显示的名称;disable决定子节点是否可用;children则递归地继续添加子节点数据表格的使用如图
4.24所示图
4.24表格前端实现声明一个网格的面板renderTo属性表示面板在文档中的位置;frame决定面板是否以frame的形式显示;height定义面板的高度;title表示面板的标题;store加载所需的数据columns定义数据的显示方式Form组件的实现如图
4.
25、
4.26所示图
4.25上传功能form的前端实现图
4.26添加文件夹功能form的前端实现这是添加附件的form,这里是通过一个新的窗口来实现的Height与width分别用来定义窗口的高度与宽度;title表示window的名字;html则向窗口添加html代码,来决定窗口的显示由于必须与Struts结合,因此使用的是Struts标签.此外,文档管理模块还使用了ExtJs框架的布局功能具体实现如图
4.27图
4.27Ext布局实现图首先建立一个ViewportLayout定义文档的布局;renderTo定义Viewport的位置;items定义具体的布局,其中最重要的属性为region,可定义具体的方位第五章总结与展望本项目共分为5个模块,分别为文档管理子模块、消息管理子模块、日程管理子模块、考勤管理子模块和系统管理子模块文档管理子模块完成的工作文档管理、回收站管理、文件搜索和日志记录其中文档管理包括添加文档(附件)、编辑文档(附件)、删除文档(附件)、查看文档(附件);回收站管理包括还原文档(附件)、彻底删除文档(附件);文件搜索包括按文件名或作者名组合查询、下载附件;日志记录对重要操作进行记录消息管理子模块完成的工作单独发送消息、接收消息、删除消息、群发消息、单独发送邮件、接收邮件、将邮件放入垃圾箱、删除邮件和群发邮件日程管理子模块完成的工作按日模式、周模式或月模式查看日程、添加日程、修改日程、编辑日程、删除日程考勤管理子模块完成的工作签到/签退管理签到、签退、记录签卡备注、签卡时间、考勤历史查询、考勤统计、工作日管理工作时间管理、出差/请假管理、补签管理、普通员工查询、部门经理查询、管理员查询、系统管理子模块完成的工作系统登录/注销管理、客户端验证登录合法性、服务端验证登录合法性、自动注销、正常注销、权限管理、菜单定制管理我在本项目中负责文档管理子模块,做了需求分析、概要设计、详细设计、编码、测试、集成工作文档管理子模块的功能已基本实现但文档管理模块还有可以扩展的地方,比如多线程控制、在线编辑等等在线编辑功能作为一个扩展功能会为用户提供很大的方便,主要实现方法有如下两种一种是调用相应的文件编辑的api,比如java提供了对txt文件的编辑api,而word的编辑可能要调用微软提供的api这大大增大了技术难度和项目风险,所以在本项目中只是作为一个扩展功能;另一种方法是调用googledoc的api,利用google提供的强大的api,可能在技术上较前者更容易实现,但由于对google的api极其陌生,项目风险同样太大,又由于项目工期有限,所以未能最终实现多线程控制功能将有效保证文档的安全由于本项的需求中明确定义,用户的权限是每个人只能对自己的文档与附件进行操作,所以本项目中没有使用多线程的必要但是多线程控制将会是项目的很好的扩展,在类似的项目中,用户可能有权限对其他人的文件进行操作,这时引入多线程来保证安全就很有必要了为了提高效率,可以使用其他方法来代替多线程,比如文档与附件都添加一个属性locked,当有人对文档进行操作时,可以将locked属性设置为true;这样其他人再对本文档进行操作时就失去了权限;直到使用者使用完毕、系统自动将locked属性设置为false时,其他使用者就可以继续对文件进行操作了尽管文档管理模块的功能基本实现,但与世界领先水平还有相当的差距随着移动互联网的发展,移动终端办公自动化的需要越来越大,如果掌握了更多的相关技术,移动终端的办公自动化将成为可能参考文献
[1]孙敏.《办公自动化》.北京理工大学出版社.
2010.4
[2]办公系统介绍http://www.skycenter.cn/html/oainfo/
[3]吴秀玲.浅析企业办公自动化系统的发展趋势[J].科技信息.
2008.1:37
[4]杨庆万.计算机网络技术与办公自动化[J].广东科技.
2007.6:443-444
[5]移动办公.http://www.digital-star.com.cn/Project_Bangong.htm
[6]丁旭娟.DINGXu-juan办公自动化在企业文档管理中的应用及发展-浙江电力2006251
[7]EricJendrockJenniferBallDebbieCarsonIanEvansScottFordinKimHaase.廖铮.《JavaEE5权威指南》.原书第三版.北京.机械工业出版社.
2008.第二页
[8]陈雄伟.《精通Spring
2.x-企业应用开发详解》.电子工业出版社.
2007.9
[9]蒋涛.《Hibernate核心接口简介》.CSDN.
2006.
8.http://dev.yesky.com/312/
2549312.shtmlhttp://dev.yesky.com/312/
2549312.shtml
[10]17Ext论坛.http://www.17ext.comhttp://www.17ext.com\t_blank致谢感谢南京大学、南京大学软件学院四年来对我的教育和培养南京大学浓厚的学术氛围和积极向上的进取精神让我永生难忘感谢家人在学业上对我的默默支持,感谢各位老师在学习上对我的指导和教诲,感谢各位同窗好友在生活上对我的关心和帮助四年的大学生活让我在生活学会自立,学业进步显著,品格更加高尚,再次感谢所有关心和帮助过我的人本论文是在来自东软国际集团的王大瑞老师的悉心指导下完成的,在这里特别感谢王老师在论文选题、项目开发和接下来的写论文阶段,王老师对我的指导耐心细致实训期间,我从王老师那里学会了先进的软件技术和软件开发流程,熟悉了各种软件开发工具,为以后的工作打下了坚实的基础每当我遇到问题时,王老师总是孜孜不倦的对我进行耐心的指导,给我提供了很大的帮助,使得我的项目和论文可以最终顺利完成这期间,王老师不仅在学业上给我以精心指导,而且还在思想上给我无微不至的关怀在此,谨向王老师致以诚挚的谢意和崇高的敬意同时,感谢我们项目开发团队的其他成员刘伟波、赵奕龙、刘暄和马力我们学会了团队精神,在开发过程中密切配合、互相帮助,使得项目最终顺利完成在此,再一次对所有老师和同学们表示感谢!PAGE7。