基于java的oa办公自动化设计含源文件.docx

上传人:b****1 文档编号:23051395 上传时间:2023-04-30 格式:DOCX 页数:32 大小:803.66KB
下载 相关 举报
基于java的oa办公自动化设计含源文件.docx_第1页
第1页 / 共32页
基于java的oa办公自动化设计含源文件.docx_第2页
第2页 / 共32页
基于java的oa办公自动化设计含源文件.docx_第3页
第3页 / 共32页
基于java的oa办公自动化设计含源文件.docx_第4页
第4页 / 共32页
基于java的oa办公自动化设计含源文件.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

基于java的oa办公自动化设计含源文件.docx

《基于java的oa办公自动化设计含源文件.docx》由会员分享,可在线阅读,更多相关《基于java的oa办公自动化设计含源文件.docx(32页珍藏版)》请在冰豆网上搜索。

基于java的oa办公自动化设计含源文件.docx

基于java的oa办公自动化设计含源文件

 

本科生毕业论文设计

 

题目基于J2EE的办公自动

化系统的设计和实现

 

作者姓名

指导教师

所在学院

专业(系)

班级(届)

 

完成时间:

年月日

 

 

摘要

办公自动化(OA-OfficeAutomation)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式,是当前新技术革命中一个非常活跃和具有很强生命力的技术应用领域,是信息化社会的产物。

通过网络,组织机构内部的人员可跨越时间、空间协同工作。

通过OA系统所实施的交换式网络应用,使信息的传递更加快捷和方便,从而极大地扩展了办公手段,实现了办公的高效率。

现在所说的办公自动化,应该是以网络为依托,在企业内部进行畅通的信息交流。

在这种模式下,企业成为一个大办公室,它所属的财务、人事、行政、业务等部门都成为企业信息流中的一个环节,而不再是单个的信息孤岛。

依靠这种模式,企业的组织结构能够得到简化,各个部门在信息共享的基础上进行协作,便于明确各个部门甚至每个员工的责任,而决策层可以迅速综合来自各个方而的信息,并此为依据制定企业的战略决策。

没有人怀疑计算机的出现给办公室职员带来的便利,但是对现代的办公自动化而言,其目的已经不局限于减轻员工的工作量,而是要将员工从繁琐的事务性工作中解放出来,用更多的精力去关注最重要的事情,从而提高企业的效率,增强企业的综合竞争能力。

随着计算机网络技术的发展及企业管理模式的不断变化,目前,以传统客户/服务器模型设计的办公自动化系统已不能很好满足网络办公的需求,难以充公整合新技术的特点,进而无法充分发挥新管理模式的优势,并且要针对不同的运行环境及操作系统开发不同版本的客户端,大大增加了系统的开发难度和更新周期。

本文从企业的实际情况出发,在用户需求分析的基础上,提出企业办公自动化系统的基本目标,并阐述系统结构设计和功能设计,设计了一种基于WEB的网络办公自动化系统,系统建立在Browser/Servr/Database三层构架之上,并且本系统采用MVC(Model,View,Controller)三层架构,从而使Business层和Web层得到了很好的分离,并且本系统采用了可跨平台的Java语言作为主要开发语言,并使用了基于MVC三层架构的Struts框架和实现了O/R(Object/Relation)的Hibernate框架等J2EE的主流框架,并对本系统进行了国际化,从而大大增加了系统的灵活性和可扩展性。

并且本系统采用Mysql数据库,从而降低了对运行环境配置的要求。

关键字:

Hibernate,Struts,O/R,MVC,OA,JSP

第一章 绪论

1.1OA概述

在当今计算机网络技术和计算机技术飞速发展,人们普遍使用计算机来提高个人工作效率,但是在需要许多人一起协同工作的现代工作环境中,我们更需要提高我们的整体工作效率。

利用网络通讯基础及先进的网络应用平台,建设一个安全、可靠、开放、高效的办公系统。

传统办公模式主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。

如何实现信息处理的自动化和办公的无纸化逐步得到了人们的重视。

办公自动化提了多年,但效果并不明显,人们还是仪在单机字处理和表格处理的所谓办公自动化的初级阶段,信息的交流和共享,以及团队的协同工作无法很好的实现,极大地限制了工作的效率,Internet/Intranet的迅猛发展,为信息的交流和共享,团队的协同运作提供了技术的保证,同时也预示着网络化办公时代的来临。

1.2技术背景

随着Internet技术的飞速发展,基于B/S结构的服务应用程序得到了广泛的应用,实现Web应用的技术和框架也层出不穷,当今软件开发出现了两大应用技术标准:

微软的.NET和SUN公司提出的J2EE,这两种技术各有其优缺点,J2EE的安全性及可移植性优于.NET,但是J2EE的企业级应用需要专门的Container,及Server,需要花费大量的资金在软件的运行和维护上。

但是随着J2EE技术的不断成熟,并且大量开源框架的出现,J2EE的优势日渐突出,且J2EE采用可跨平台运行的Java语言作为其主要开发语言,能够在不同的平台上运行,因此越来越受到企业的欢迎。

1.3课题研究的意义及可行性

本文通过整合一些开源的J2EE框架来搭建一个开发平台,使系统的开发成本降到了最低,结合Struts框架和Hibernate的数据持久化机制来构建一个轻量级的Web开发框架,并利用此框架来开发一个基于B/S的办公自动化系统,以此来说明Struts和Hibernate的整合过程。

选择这种开发框架的优点有以下几个:

1.快速开发。

Struts是一个成熟的Web层框架,称为AHalfDone Application,开发者只需要在需要的地方加入自己的处理逻辑,并且许多参数的设置是在配置文件中,需要修改时开发者只需要修改配置文件即可,而不需要去修改代码的每个地方,这种开发框架已经广泛应用在许多行业的系统中,如交通,电力,银行,通信等。

2.Hibernate的数据持久化。

Hibernate是一个基于O-R(Object-Relation)的框架,真正的适用于面向对象的开发思想。

开发着只需要对对应的Class进行操作就可以方便的实现对数据库的操作。

并且Hibernate框架中实现了许多对数据库中数据的操作方法,方便了Developer的开发。

相对于使用JDBC开发更方便,快捷。

3.成本低。

Struts,Hibernate,以及所使用的开发环境及运行环境采用的都是开源软件,大降低了开发和运行的成本,更适合中小企业的开发。

3可扩展性。

Struts和Hibernate的使用降低的项目各个模块之间的耦合度,因此企业很容易对项目的某个模块进行扩展或者进行二次开发。

由于此框架容易与其他的J2EE框架整合,更是大大提高了系统的可扩展性。

第二章Struts介绍

Struts是一种实现了MVC模式的框架,全部的请求都由一个被称为ActionServlet的Servlet来接收并控制。

Struts并没有取代Jsp,Servlet,只是将其组织起来。

2.1MVC模式简介

MVC是一种设计模式,是Model-View-Controller的简写,它把整个应用系统的输入、处理、输出分开,其结构图如图2-1:

图2-1

2.1.1模型

模型是应用程序的核心,负责处理用户的数据和实现业务逻辑的处理,并且为视图提供数据,用户所有的数据操作和业务逻辑的处理全部都由模型层处理。

2.1.2视图

视图是一些JSP页面,是系统与用户交互的界面,即常称的UI(Userinterface),视图用户来接收用户的输入,在MVC模式中,视图层不包括任何业务逻辑的处理,它只是为Model提供数据及为用户显示Model层更新的数据。

2.1.3控制层

控制层也称为控制器,当用户提交请求时,控制器接收用户的请求并根据用户提交的数据决定调用哪些模型来进行业务处理,同时将用户提交的数据提供给Model层,由Model来进行数据处理,然后将处理的结果给视图的形式返回给用户,从而实现用户和系统的交互。

2.2Struts框架的结构及实现方法

Struts是Apache软件组织提供的一个开源项目,为JavaWeb应用提供MVC框架,适用于开发大型可扩展的Web应用。

在MVC刚刚出现的时候,开发人员需要花大量的时间在MVC模式的实现上,而Struts则恰恰实现了这种开发模式,开发人员只需在此基础去实现自己的逻辑处理,而不耍花费大量的时间在模式的实现上。

2.2.1Struts框架的组成

Struts对应MVC的三层分别有对应的实现方法:

Struts中的JavaBean以及大型项目中的EJB对应MVC中的Model层,MVC的Controller层对应Struts的Action及ActionServlet,Struts的ActionForm以及JSP页面对应MVC的视图层,在视图层Struts提供了大量的标签库用来显示数据,Struts的各个组成部分全部由Struts的主配置文件Struts-config.xml联系在一起。

2.2.1Struts的基本组件

Struts主要由四个核心组件组成:

ActionServlet,Action,FormBean,ActionMapping,另外Struts还提供了功能强大的标签库(Taglib),用来供客户端显示用。

1)ActionServlet

ActionServlet是Javax.servlet.http.HttpServlet的子类,是Struts框架的主控制器,根据用户的请求和配置文件和描述将请求转发给相应的Action,Servlet必须在HttpApplication的Web.xml的配置文件中声明,因此在Struts中同样也在Web.xml中对ActionServlet进行了配置:

actionorg.apache.struts.action.ActionServlet

config

/WEB-INF/struts-config.xml

debug

3

detail

3

0

action

*.do

ActionServlet会匹配所有的以.do结尾的请求,并读取配置文件里配置的Config对应的Struts的配置文件中的Action,从而将请求转交给对应的Action调用相应的业务处理方法进行处理。

2)Action

当ActionServlet得到用户的请求后,将请求转发给Action,然后由Action调用相应的业务逻辑处理方法进行处理。

3)ActionMapping

当Action进行业务处理后会返回一个ActionMapping的对象,该对象包含了Action的请求对象,决定WebContainer该返回个对象给用户。

4)ActionForm

当ActionServlet接收到用户的请求时,会根据struts-config.xml描述将数据封装到相应的ActionForm中,然后由Action根据struts-config.xml的描述读取相应的ActionForm中的数据,进行处理,将处理后的结果返回给用户。

5)标签库

Struts提供了功能强大的标签库,只有充分使用这些标签才能最大限度发挥Struts的作用,真正实现MVC模式。

有了这些标签库开发人员无需在JSP页面添加任何的Java脚本就可以实现非常复杂的逻辑处理,从而实现了开发人员的美工人员的工作的分离。

减少了美工人员的难度。

2.2.2Struts的工作过程

图2-2

Struts的工作过程如图2-2,当用户向WebServer发出请求时,WebServer将请求转交给ActionServlet,由Servlet决定调用哪些Action,然后根据Struts-config.xml的配置对应相应的Form来读取数据,并调用相应的业务逻辑处理方法进行处理,然后将处理后的结果传递到JSP提供给用户。

2.3Struts的国际化

在过去,软件开发者在开发应用程序时,将注意力集中于实现具体的业务逻辑。

软件面向的用户群是固定的,软件只需要支持一种语言,但是随着跨国业务的迅猛发展,需要同一软件能同时支持多种语言。

对于一个已经开发好的软件如果要支持新的语言就要对软件进行国际化。

国际化指的是在软件设计阶段就应该使软件具有支持多种语言和地区的功能。

这样,当需要在应用中添加对一种新的语言和国家的支持时,不需要对已有的软件进行重新编码。

一个应用程序支持国际化应该具备以下特征:

1)当应用程序需要支持一种新的语言时无需修改源码。

2)应用程序中的文本及图片资源从代码中分离出来,存储在外部。

3)根据用户的语言和地理位置进行正确的格式化。

4)可以方便快捷地对应用做出调整,使它适应新的语言和地区。

Struts对国际化的支持体现在能够输出和用户Locale相符合的文本和图片上。

当Struts配置文件的元素的Local属性为True时,Struts框架把用户的Locale实例保存在Session范围内,宁产,Struts框架能自动根据这一Locale实例来从ResourceBundle中选择合适的资源文件,当用户的Locale为英文时,Struts框架就会向用户返回来自于Application_en.properties文件的文本内容,当用户的Locale为中文时,Struts框架就会向用户返回来自于Application_ch_properties文件的文本内容。

第三章 Hibernate框架介绍

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲地使用面向对象编程思维来操纵数据库,Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序中使用,也可以在Servlet/JSP的Web应用中使用。

Hibernate的作用就是介于Java与JDBC之间的一个持久层,它通过建立与数据库表之间的映射来操纵数据库,Hibernate是基于JDBC之上的。

3.1数据库操作的3个阶段

1)JDBC操作阶段

在使用Java进行数据库开发的最初数据库开发的最初阶段,都是使用JDBC类来操作数据库的:

Stringsql=“select*fromuserwhereusername=’”+username+”’andpassword=’”+password+”’”;

Try{

Class.forName(“com.mysql.jdbc.Driver”).newInstance();

Connectionconn=DriverManager.getConnection(“jdbc:

mysql:

//localhost:

3306/OA”,”root”,”root”);

Statementstmt=conn.createStatement();

ResultSetrs=stmt.executeQuery(sql);

While(rs.next()){

System.out.println(rs.getString

(1));

}

}catch(Exceptione){

e.printStackTrace();

}finally{

Rs.close();

Stmt.close();

Conn.close();

}

这一段操作代码很具有代表性,几乎所有的使用JDBC进行数据库操作的代码都需要开发如下过程的代码:

定义查询或更新的SQL语句;

加载数据库驱动程序;

创建数据库连接;

创建申明对象;

执行查询或更新;

关闭结果集对象,申明对象,数据连接对象。

使用这种方法的缺点是:

代码重用度小,数据库处理的代码过多,不能突出业务处理逻辑。

2)封装JDBC的阶段

为了改进JDBC操作的不足,我们可以将JDBC的不同操作封装成不同的函数。

PublicBooleancreateConn():

加载驱动程序,创建连接对象

PublicBooleanupdate(Stringsql):

执行更新操作

Publicvoidquery(Stringsql):

执行查询操作

Publicvoidclosers():

关闭结果集对象

PublicvoidcloseStm():

关闭申明对象

PublicvoidcloseConn():

关闭连接对象

这样我们就可以直接调用这些函数来创建数据连接,这样就避免了以上不足,实现了对JDBC封装,并能够对JDBC事务进行管理。

并且在这个基础上,可以通过配置连接池来减少对数据库操作的时间。

3)ORM阶段

在对JDBC进行封装之后,能够方便地实现数据库的操作,但是,在面向对象的编程开发中,数据库的操作与普通的面向对象的Java代码不同,而ORM则是减少了这种区别。

真正实现了数据库操作的对象化。

3.2ORM对象关系映射

ORM是ObjectRelationalMapping的简称,即对象关系映射,它是一种为了解决面向对象与关系数据库存在的不匹配的技术,ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中,实际上就是将Java中的Class与数据库中的Table对应起来。

关系图如图3-1:

图3-1

图中依次包含了数据实体的3种不同表示形式,即数据实体,数据表,映射对象。

用户实体是数据库概念设计阶段的产物,表示在系统设计的最初阶段所抽象的基本数据对象,每一个数据实体都包含一些信息段。

将数据实体映射为数据表,信息映射为数据表的字段,就形成了数据库中的可表示的对象——数据表。

数据表由表名和字段表示基本的信息。

映射对象是普通的Java类,它用Java类来代表数据实体,类名与表名对应,属性名与表的字段对应,ORM就是数据表与映射对象之间的映射关系。

3.3Hibernate介绍及工作过程

3.3.1Hibernate的组成

Hibernate是一个实现了ORM映射的开发框架,主要实现数据库表与Class的映射。

主要组成部分有:

对应每个数据库表有一个对应的hbm.xml文件和持久化类以及对数据库进行操作的DAO类,Hibernate有一个Hibernate.cfg.xml文件,用来描述数据库的连接信息以及关联这些hbm.xml配置文件,在Hibernate中利用一个Factory辅助类来获得与数据库之间的会话和面向用户的Servers层。

1)Hibernate配置文件

Hibernate的数据库连接信息是从配置文件中加载的,这要增加了Hibernate和数据库连接信息的灵活性,在配置文件中包含了一系列属性的配置,Hibernate将根据这些属性来连接数据库。

Hibernate的配置文件有两种形式:

一种是XML格式的文件,一种是Properties属性文件。

2)映射文件.hbm.xml

Hibernate映射文件包含了对象/关系映射(O/RMapping)所需的元数据。

元数据包含持久化类的声明和属性到数据库的映射(指向字段和其他实体的外键关联)。

映射文件是XML格式的文件,它负责持久化类与数据库表之间的映射。

其根元素是Hibernate-mapping,并通过属性Package指定类所在的包。

每一个表使用一个Class定义,Name表示类的名称,Table表示关联的表名,通过Property子元素来映射类的变量名与数据库表字段名之间的映射。

3)持久化类

持久化类是指其实例需要被Hibernate持久化到数据库中的类。

持久化类通常都是域模型中的实体或类,一般都是一张数据库表对应一个持久化类。

但并不是所有的持久化类的实例都是持久化状态。

Hibernate使用简单的Java对象(Plainoldjavaobjects,就是POJOS)这种编程模型来进行持久化,一个POJO很像一个JavaBean,通过Getter和Setter方法访问其属性,对外则隐藏了其内部实现的细节。

4)辅助类:

HibernateSessionFactry

Hibernate的Session是一个持久化管理器,我们通过它来从数据库中存取数据,我们需要通过SessionFactory获取一个Session:

SessionFactorysessionFactory=newConfiguration().configure().buildSessionFactory();

通过对Configure()的调用来装载Hibernate.cfg.xml配置文件,并初始化成一个Configuration实例,然后通过这个实例来获得Session的一个生成器。

通过Session我们就可以进行和数据库之间的会话。

5)DAO类:

DAO类存在于Project的DAO层,就是数据访问接口,为了基于Hibernate的开发中,通常将业务层与数据层分开,DAO层只负责调用HibernateAPI实现对数据库的操作,Servers层面向用户负责调用DAO层的代码,这样数据层的代码不用关心业务服务,可以更好的实现移植。

6)Servers层:

Servers层即服务层,就是面向用户服务,它定义的方法都是与实际的业务相关的,通过调用DAO层的方法来实现与数据库的交互。

3.3.2Hibernate的工作过程

当需要与数据库进行的交互时,用户将需要处理的数据封装到数据持久化类,但这是这个类并没有被持久化,通过Hibernate的Transction接口开启事务处理过程,将含有数据的类持久化,即与数据库中的数据建立映射关系,然后通过Transction的Commit方法将持久化类中的数据与数据库中的数据进行同步,然后关闭会话Session,此时,实例化对象的状态由持久转变为脱管,Hibernate的工作过程如图3-2:

图3-2

第四章 系统功能的实现及部署

4.1系统概述

随着信息网络技术的应用,目前许多政府部门、企事业单位已建立局域网络,并直接与internet相连接。

为了充分发挥网络的作用,提高办公处理效率,建设办公自动化管理系统已经是迫切需要。

本系统采用动态WEB构建技术,使得系统客户端无须维护,适应性强,使用与企事业、政府机关等单位网络环境使用。

企业办公自动化系统是企业管理系统的一部分,企业内部办公网络的内容很多,如公司内部公告信息的发布,文件的管理,员工内部交流信息的发布和共享,个人日程及工作日志的安排,出勤登记。

随着信息技术的不断发展以及互联网技术的日益成熟,使远程办公成为可能。

你无论身处何地,只要有上网条件就可以利用网上办公系统,及时有效地对各种文件、报告进行处理,同时也将彻底摆脱桌面上沉沉繁杂的纸张文件,使得繁重的工作变得轻松自如,极大地提高工作效率。

4.2系统分析

4.2.1需求分析

通过对所在公司的相关调查,要求系统具有以下功能:

Ø个人通讯录的管理及查询

Ø会议通知及管理

Ø公告发布及管理

Ø个人日程的安排及管理

Ø个人工作日志的管理

Ø公司内部员工短信息的发送及管理

Ø文件的上传和下载

4.2.2可行性分析

通过办公自动化管理系统对企业日常办公进行管理,满足了企业日常办公管理各方面的的需求,实现了企业员工之间消息的发送与接收功能,大大的方便了企业内部人员沟通,文件的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1