负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IOC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
3.2开发工具
3.2.1Tomcat服务器
目前支持JSP的应用服务器很多,Tomcat是其中较为流行的一个Web服务器。
Tomcat是一个免费的开源的Servlet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapps目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用,当然本地也可以。
Tomcat是一个很好的工具,不仅仅因为其免费,更因为其开放性。如今,开源软件越来越收到人们的重视。人们不再限于只使用软件,而且已经关心起软件的具体实现。我们有理由相信Tomcat会走得更远。 3.2.2MySQL server 5.0
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。MySQL数据库优点: 1.支持5000万条记录的数据仓库 2.适应于所有的平台
3.是开源软件,版本更新较快
4.性能很出色。纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。MyISAM数据库 与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows 系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。 5.价格便宜
缺点: 缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能
MySQL提供图形化处理界面,Navicat for MySQL。 3.2.3MyEclipse 8.5
MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,
MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和Java2EE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Java2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet, AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。 3.2.4Rational Rose
Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。Rational Rose包括了统一建模语言(UML),OOSE,以及OMT。其中统一建模语言(UML)由Rational公司3位世界级面向对象技术专家Grady Booch、Ivar Jacobson、和Jim Rumbaugh通过对早期面向对象研究和设计方法的进一步扩展而得来的,它为可视化建模软件奠定了坚实的理论基础。同时这样的渊源也使Rational Rose力挫当前市场上很多基于UML可视化建模的工具,例如Microsoft的Visio2002、Oracle的Designer2000,还有PlayCase 、CA BPWin、CA ERWin、Sybase PowerDesigner等等。
Rational Rose 是一个完全的、具有能满足所有建模环境(Web开发,数据建模,Visual Studio和 C++ )灵活性需求的一套解决方案。Rose 允许开发人员,项目经理,系统工程师和分析人员在软件开发周期内在将需求和系统的体系架构转换成代码,消除浪费的消耗,对需求和系统的体系架构进行可视化,理解和精练。通过在软件开发周期内使用同一种建模工具可以确保更快更好的创建满足客户需求的可扩展的、灵活的并且可靠的应用系统。
Rational Rose是基于UML的可视化建模工具。UML全称叫Unified Modeling Language,顾名思义,UML是一种语言,一种表示法,一种交流沟通的工具,特别适用于软件密集型系统的表示。
UML的统一性(Unified)表现为以下几点: (1)、 UML是人类思想和计算机代码的一个连接桥梁
我们知道,计算机能直接识别的语言就是二进制的CPU指令,早期工程师们都是直接输入这些指令让计算机直接执行的,效率不高;
后来就出现了更好理解的汇编语言,之后就出现了各种各样更加容易理解和编写,更加接近人类语言的计算机高级语言、VB、DELPHI、JAVA等。
(2)、 UML所定义的概念和符号可用于软件开发的分析、设计和实现的全
过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。 (3)、 UML所用的语言元素基本都是图形化的,便于理解和沟通,不但开发人员之间可以用来交流,客户和开发人员之间也可以用它作为交流的工具。
目前版本的Rational Rose可以用来做以下一些工作: (1)对业务进行建模(工作流);
(2)建立对象模型(表达信息系统内有哪些对象,它们之间是如何协作完成系统功能的);
(3)对数据库进行建模,并可以在对象模型和数据模型之间进行正、逆向工程,相互同步;
(4)建立构件模型(表达信息系统的物理组成,如有什么文件、进程、线程、分布如何等等);
(5)生成目标语言的框架代码,如VB、JAVA、DELPHI等。
4系统设计
4.1系统结构设计
(1)OA系统管理页面
系统主体结构如图4-1所示:
图 4-1系统主体结构
(2)个子模块功能:
个人办公功能描述:打开个人办公桌,在个人办公桌上,是到达各种管理功能的快捷链接。有我的办公桌,通讯录,我的任务等。
图 4-2个人办公
工作流程管理:包含了工作流程的定义,比如报销流程,请假流程等。表单的定义,为各种不同的流程定义不同的表单。
公文管理:包括了公文的维护,增加,删除,修改等,公文的归档
图 4-3工作流程 图 4-4公文管理
权限的管理:模块的管理,系统有哪些模块,即系统有哪些功能。角色管理,对角色的增加,删除,修改,对角色的授权等。用户管理,对用户的操作,给人员分配账号,对人员授权,对用户的基本的增加,删除等。
图 4-4权限管理
人事归档管理:包括人员的履历,申请转正,离职申请,员工的考勤。是对员工的一些基本的管理。
图 4-5人事归档
消息管理:包括了收件箱,发件箱,垃圾箱,聊天记录等,是员工之间沟通的桥梁,渠道
图 4-6消息管理
组织管理;包括了机构管理,人员管理,有哪些机构,机构下面有哪些
子机构。人员是隶属那个机构的等功能
图 4-7组织管理
4.2数据库系统分析及设计
4.2.1数据库E-R图
(1)授权模块的E-R图如图4-8所示:
图4-8授权模块E-R图
(2)机构模块的E-R图如图4-9所示:
图4-9机构模块E-R图
(3)员工登陆账户模块E-R图如图4-10所示:
图4-10员工登陆账户模块E-R
(4)工作流和公文E-R图如图4-11所示:
图4-11 系统E-R图
4.2.2数据库连接
Java的数据库连接要添加一个相应的数据库jar包,里面包含了连接数据库需要的驱动等。本系统采用 hibernate来与数据库交互,通关配置文件 来连接数据库,数据库连接关键代码如图4-12所示:
图4-12数据库连接关键代码
4.2.3数据表设计
用人员表图如表4-13所示:
表4-13人员表
人员登陆表如表4-14所示:
表4-14人员登陆表
用户角色表4-15所示:
表4-15用户角色表
授权表 4-16所示:
表4-16授权表
工作流程表 4-17所示
表4-17工作流程表
公文表 4-18所示:
表4-18公文表
机构表4-19所示:
表4-19机构表
模块表 4-20所示:
表4-20模块表
审核表4-21所示:
表4-21审核表
5系统详细设计
5.1组织管理模块
5.1.1机构管理
(1)业务描述
对于机构的增删改查,点击添加机构信息链接,进入添加机构页面。点击机构的名称,进入机构的所有子机构。点击更新,可修改该机构的信息。点击删除可以删除机构,但是机构的子机构为空,才能删除。 界面原如图5-1所示:
图5-1机构管理
代码实现:在机构对应的action中调用机构对应的manager方法得到数据,跳转到页面,进行显示。 5.1.2人员管理
对于人员的管理,对于人员的增删改查。点击添加人员信息,可以添加人员信息。点击更新,可以修改人员的基本信息和所属机构。点击删除可以删除人员的信息。
界面原型如图5-2所示:
图5-2人员管理
添加人员信息界面如图5-3所示:
图5-3添加人员信息界面
代码实现:
@Override
protected ActionForward unspecified(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
request.setAttribute(\,
系统的设计与实现毕业论文



