基于J2EE的企业人事管理系统的设计与实现.docx

上传人:b****8 文档编号:29198540 上传时间:2023-07-21 格式:DOCX 页数:32 大小:578.85KB
下载 相关 举报
基于J2EE的企业人事管理系统的设计与实现.docx_第1页
第1页 / 共32页
基于J2EE的企业人事管理系统的设计与实现.docx_第2页
第2页 / 共32页
基于J2EE的企业人事管理系统的设计与实现.docx_第3页
第3页 / 共32页
基于J2EE的企业人事管理系统的设计与实现.docx_第4页
第4页 / 共32页
基于J2EE的企业人事管理系统的设计与实现.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

基于J2EE的企业人事管理系统的设计与实现.docx

《基于J2EE的企业人事管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于J2EE的企业人事管理系统的设计与实现.docx(32页珍藏版)》请在冰豆网上搜索。

基于J2EE的企业人事管理系统的设计与实现.docx

基于J2EE的企业人事管理系统的设计与实现

摘要

企业人事管理是企业管理的一项重要内容,本文阐述了基于J2EE的企业人事管理系统的设计与实现,通过系统企业管理者可以随时随地对人事信息进行科学、高效的管理,提高了劳动生产率,同时也减少了企业资源的浪费。

文中首先论述了软件工程的设计方法,与开发技术,分析了系统实现的框架原理。

系统主要采用B/S架构和MVC设计模式,MVC设计模式将整个系统分成视图层、控制层、模型层,多层架构方式使系统具有灵活的可扩展性,为系统进一步完善打下基础。

其次文中以UML技术为基础进行系统的需求分析与设计建模,并在此基础上分析了系统的各个模块的功能,系统中包含两种角色,包括人事部员工和普通员工。

人事部员工可以通过系统对员工、部门、考勤、薪资等信息进行查询和更改,普通员工可以对自己的信息进行查询。

系统采用Struts2框架技术完成了系统的实现,列出系统核心代码。

最后对系统技术与系统功能进行了总结,为下一步系统的完善指明了方向。

关键词:

J2EE,Struts2,人事管理,MVC

ABSTRACT

Personnelmanagementplaysavitalroleinthemanagementofenterprise.ThepaperexplainsthedesignandrealizationoftheenterprisehumanresourcemanagementsystembasedonJ2EE.Throughthesystem,managercandealwithpersonnelinformationscientificallyandeffectively,improvinglaborproductivityandmakingfulluseofenterpriseresource.Firstly,thepaperdiscussesthedesignmethodandthedevelopmenttechnologyofsoftwareengineeringaswellastheanalysisoftheframeworktheorytoputthesysteminpractice.B/SarchitectureandMVCdesignmoduleareprincipallyappliedinthesystemwhichisdividedbyMVCdesignmoduleintoviewlayer,controllayerandmodellayer.Itissuchkindofmulti-layerstructuresthatmakesthesystemfeasibleandflexible,supplyingthefollowingimprovementwithfoundation.Secondly,basedonUMLtechnology,thepaperanalyzesthedemandanddesignsthemodulesystematically,exploringthefunctionsofeverypartofthesystemwhichcontainstworoles,includingpersonnelemployeesandgeneralemployees.Byusingthesystem,personnelemployeescaninquireaboutandmodifytheinformationonemployees,departments,attendance,salaryandsoon;generalemployeescanchecktheirowninformation.Inaddition,thesystemgivesthekeycodewiththeapplicationofStruts2frameworktechnologyandAJAXtechnology.Finally,itgeneralizesthetechnologyandfunctionofthesystem,whichindicatesafurtherresearchonthesystem.

Keywords:

J2EE,Struts2,OfficeAutomation,MVC

第一章绪论

1.1研究背景

随着企业规模的进一步扩大,企业职工的数量越来越多,管理制度也越来越严密复杂,传统的人工管理方式或C/S架构的管理软件的缺陷逐渐的显露出来,已经远远不能够满足企业人事管理的需求。

其缺陷如下所列:

1、人事查询不方便,经常发生错误。

2、只能本地进行管理,进行远程管理即必须重新安装远程管理软件。

3、普通职工无法方便的查询自己的相关信息。

4、软件维护费用高。

5、软件有任何变动,都要重新安装所有客户端。

为了弥补这些缺陷,提高企业人事管理的效率和正确性,方便普通职工对个人信息的查询管理,同时也为了降低管理系统的维护费用,因此有必要研究开发出一套功能完善、齐全,性能优良的基于B/S的Web系统。

在B/S模式下,用户工作界面通过0012浏览器来实现,极少部分事务逻辑在客户端(Browser)实现,主要事务逻辑在服务器端(Server)实现,可以大大减轻系统维护与升级的成本和工作量,降低系统的总体成本。

1.2研究目的和意义

人事管理是一个单位日常工作中不可或缺的重要部分,它对于本单位的决策者和管理者来说都至关重要的,而人员的复杂性却使得人事管理成为难题。

针对中小型企事业对人事管理的需求,开发出小型人事管理系统,让人事管理系统对人事档案信息进行管理,力求方便快捷实现人事档案的自动管理。

人事管理系统克服了以往传统人工的方式效率低、保密性差,查找、更新、维护特别困难的缺点,采用计算机对人事档案信息进行管理,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低廉。

而且功能全面、操作简便,能够快速地为员工建立电子档案,而且便于修改、保存和查询,实现了无纸化存档,能够为使用者节省大量资金和空间。

人事管理系统利用计算机进行信息控制和数据处理,不仅提高了工作效率,而且还大大的提高了其安全性。

1.3论文结构

在人事管理系统设计开发时,综合考虑了代码重用、系统管理、操作简便以及后期维护等方面的要求,决定将系统构建于Struts2框架之上。

第一章绪论。

介绍了人事管理系统的开发背景、意义,明确所要完成的任务。

第二章开发主要技术介绍。

介绍Java语言的特点,以及介绍构建人事管理系统所需的关键技术Struts2。

在对MVC设计模式介绍的基础上,详细介绍了Struts2框架体系架构和核心组件。

第三章系统的需求和设计,首先提出系统需求分析,利用UML建模技术设计出系统的用例图,然后在需求的基础上对系统进行模块化分析和设计。

第四章人事管理系统数据库设计,包括对数据库的概念设计和逻辑设计。

第五章人事管理系统的系统实现,给出系统一些核心模块的实现。

第六章总结与展望。

论文的最后对项目进行了总结,总结其中的经验,分析系统中的不足。

第二章开发主要技术

2.1Java语言

Java语言是一种基本结构与C++极为相似却简单得多的适用于网络编程语言。

它集成了其它一些语言的特点和优势,同时又避开了它们的不足之处。

它的主要特点如下:

♦简单性:

Java与C++相比,不再支持运算符重载、多级继承及广泛的自动强制等易混淆和较少使用的特性,而增加了内存空间自动垃圾收集的功能,复杂特性的省略和实用功能的增加使得开发变得简单而可靠。

简单性的另一个方面是Java的系统非常小,使得Java应用软件能在相当小的系统之上独立工作。

♦平台独立性:

由于Java采用先编译成中间码(字节码),然后装载与校验,再解释成不同的机器码在Java虚拟机上执行,从而“屏蔽”了具体“平台环境”的特性要求。

平台独立性使得Java应用软件能在异构平台之间平滑移植。

♦面向对象特性:

面向对象技术是近年来软件开发中用得最为普遍的程序设计方法,它通过客观事物进行分类组合、参数封装、用成员变量来描述对象的性质、状态,而方法(成员函数)来实现其行为和功能。

面向对象技术具有继承性、封装性、多态性等众多特点,Java在保留这些优点的基础上,又具有动态联编的特性,更能发挥出面向对象的优势。

♦多线程:

多线程机制使应用程序能并行执行。

Java有一套成熟的同步原语,保证了共享数据的正确操作。

通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易实现网络上的实时交互行为。

♦扩展性:

Java的设计使它适合于一个不断发展的环境。

在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。

并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。

2.2MVC模式

MVC是一种成熟的面向企业应用的优秀的设计模式。

在J2EE中把MVC作为Web应用的首选架构模式,这是与J2EE应用模型结构和MVC模式在设计理念上的一致性分不开的。

MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三层:

模型层、视图层和控制层。

♦视图(View):

视图代表用户交互界面,它是应用程序与最终用户之间的接口:

一方面,它为用户提供了输入手段,并触发应用逻辑运行;另一方面,将逻辑运行的结果以某种展示形式显示给最终用户。

对于J2EE的Web应用来说,主要是HTML和JSP完成。

在复杂的系统中,一个应用可能有很多不同的视图。

MVC设计模式对于视图的处理不涉及业务流程的处理,业务流程的处理交予模型(Model)处理。

因而,用户或界面开发人员不需要了解数据库方面的知识,也不必了解业务逻辑进行了什么操作。

比如一个模拟取款过程的视图只接受来自取款动作模型的数据并显示给用户,以及将用户界面的输入取款数据和相应请求传递给控制层和取款动作的模型。

♦模型(Model):

模型封装并制定了应用程序的业务逻辑和用到的数据结构,模型实现了软件的功能,是MVC框架下应用程序的核心部分。

业务逻辑的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。

“模型”有对数据直接访问的权利,例如对数据库的访问。

“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。

但是模型中数据的变化一般会通过一种刷新机制被公布。

为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。

在MVC中,模型采用面向对象的方法,将问题领域的对象抽象为应用程序对象,抽取的层次很重要。

MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。

一个模型可以为多个视图提供数据,这样就提高了应用程序的可重用性。

♦控制器(Controller):

控制器起到不同层面间的组织作用,用于控制应用程序的流程,它处理事件并做出响应。

“事件”包括用户的行为和数据模型上的改变。

划分控制层的作用也很明显,“控制”就是一个分发器,分发不同请求到“模型”或者“视图”。

控制层并不做任何的数据处理,一般采用Servlet来实现控制器角色。

用户点击网页中的提交按钮后,触发控制器,由控制器调用相应的模型组件进行业务处理,最后通过相应的视图将处理结果显示出来。

MVC模式通过强制限定应用程序的控制、模型和视图各模块,从而提高应用程序的可读性和代码的可重用性、可扩展性。

模型、视图与控制器的分离,使得一个模型可以对应多个视图,这样,一个模型可以被多个视图重用,大大提了代码的可重用性;同时,模型相对独立,对于业务逻辑的修改,不必牵系控制器和视图两个模块,便于程序的扩充、维护、方便移植。

如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。

因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。

这实际上是一种模型的变化-传播机制。

模型、视图、控制器三者之间的关系和各自的主要功能,如图2-1所示。

图2-1MVC组件类型的关系和功能

MVC的优点表现在以下几个方面:

♦可以为一个模型在运行时同时建立和使用多个视图。

变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。

♦视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。

♦模型的可移植性。

因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。

需要做的只是在新平台上对视图和控制器进行新的修改。

这些优点保证了在使用MVC模式进行系统设计时,代码和设计的复用性,易于维护性和可扩展性。

2.3Struts2介绍

2.3.1体系结构

上面介绍了MVC设计模式,而Struts2的体系结构正是实现了MVC设计模式的概念,它将这些概念映射到Web应用程序的组件和概念中。

如图2-2所示:

图2-2Struts2的体系结构

♦模型层(Model):

模型层指的是后端业务逻辑处理,在Struts2中,通常会被action调用来处理用户请求,当控制器需要获许得业务逻辑组件实例时,通常并不会直接获取业务逻辑组件实例,而是通过工厂模式来获得业务逻辑组件的实例,或者利用其他IOC容器来管理业务逻辑组件的实例。

♦视图层(View):

Struts2框架改变了Struts1只能使用jsp作为视图技术的现状,它还允许使用其他的视图技术,如(FreeMarker\Velocity)等作为显示层。

 当Struts2的控制层调用业务逻辑组件处理完用户请求后,会返回一个字符串,该字符串代表逻辑视图,它并未与任何的视图技术关联。

♦控制层(Controller):

与Struts1使用ActionServlet作为控制器不同,Struts2使用了Filter技术,FilterDispatcher是Struts框架的核心控制器,该控制器负责拦截和过滤所有的用户请求,如果用户请求以action结尾,该请求将被转入Struts框架来进行处理。

Struts框架获取了*.action请求后,将根据*.action请求的前面名称部分决定调用哪个业务控制action类。

Struts应用中的action都定义在struts.xml文件中,在该文件中配置action时,主要定义了该action的name属性和class属性,其中name属性决定了该action处理哪个用户请求,而class属性决定了action的实现类。

用于处理用户请求的action实例,并没有与ServletAPI耦合,所以无法直接处理用户的请求,为此,Struts2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到action中,并回调Action的execute方法来处理用户请求。

2.3.2工作流程及优点

当Struts2接收到一个HttpRequest,Interceptor做一些拦截或者初始的工作,当外部的HttpServletRequest到来时,初始到了Servlet容器传递给一个标准的过滤器链,这个在集成插件方面非常有用。

Otherfilters调用FilterDispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMapper,它将会将控制权限交给ActionProxy,ActionProxy将会通过ConfigurationManager来查找配置struts.xml,下一步将会通过ActionInvocation来负责命令模式的实现(包括调用一些拦截Interceptor框架在调用action之前),一旦action返回,会查找相应的Result,Result类型可以是jsp或者freeMark等。

这些组件和ActionMapper一起返回给请求的url,响应的返回是通过我们在web.xml中配置的过滤器,如果ActionContextCleanUp是当前使用的,则FilterDispatecher将不会清理sreadlocalActionContext,如果ActionContextCleanUp不使用,则将会去清理sreadlocals。

Struts2的优点主要体现在以下几点:

♦Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发过程。

♦使用OGNL进行参数传递。

OGNL提供了在Struts2里访问各种作用域中的数据的简单方式,你可以方便的获取Request,Attribute,Application,Session,Parameters中的数据。

大大简化了开发人员在获取这些数据时的代码量。

♦强大的拦截器。

Struts2的拦截器是一个Action级别的AOP,Struts2中的许多特性都是通过拦截器来实现的,例如异常处理,文件上传,验证等。

拦截器是可配置与重用的,可以将一些通用的功能如:

登录验证,权限验证等置于拦截器中以完成一些JavaWeb项目中比较通用的功能。

♦易于测试。

Struts2的Action都是简单的POJO,这样可以方便的对Struts2的Action编写测试用例,大大方便了JavaWeb项目的测试。

♦全局结果与声明式异常。

为应用程序添加全局的Result,和在配置文件中对异常进行处理,这样当处理过程中出现指定异常时,可以跳转到特定页面,这一功能十分实用。

第三章系统需求和设计

3.1需求分析

人事管理系统需要人事管理不受地域的限制,不受系统平台限制,只要人员能够上网,通过验证并登陆系统,便可以随时查看人事相关信息,进行信息数据的管理和更新。

人事管理系统具有职员管理、部门管理、考勤管理、薪资管理等功能。

人事部员工负责添加、修改、删除各类信息,并且可以输入关键字查询档案信息、出勤信息、考勤信息和薪水信息。

职工可以查看个人出勤信息、考核信息和薪水信息。

该系统开发的总体目标是需要实现企业人事管理系统的系统化,规范化和自动化。

根据系统概述,设计本系统的顶层用例图,如图3-1所示:

图3-1人事管理系统顶层用例图

♦人事部管理端功能,主要针对的用户是人事部的员工,具有以下管理权限:

1、职工资料管理,主要是对在职的员工的管理,其中包括查看职工列表,添加职工,修改职工信息。

查看职员列表就从数据库中将有关人员的信息查询出来并显示,当有新职工报到时可以使用添加职工信息添加新的职工进数据库,同时也可以修改有关职工的个人信息。

2、部门管理,是对企业内存在的部门的管理。

其中包括查看部门列表,添加部门,修改部门。

查看部门列表就是从数据库中将有关部门查询并显示出来,当需要添加新的部门时使用添加部门信息的功能将部门添加到数据库,同时也可以修改有关部门的信息,比如部门名字和部门介绍之类。

3、职工考勤管理,是对在职员工考勤信息的管理。

其中包括职工签到,职工考勤管理及查询。

职员每天早上到之后签到,将职员签到信息存入数据库,认识不可以查询考勤信息并生成考勤信息表。

4、职工加班管理,主要是对在职员工加班信息的管理,其中包括部门加班查询及添加新的加班记录。

加班管理可以为某个部门添加加班记录,也可以为某个员工添加加班记录,添加部门加班记录,该部门所有人员都需要加班,添加员工加班记录,本人需要加班。

人事部员工可以查询相关的加班信息。

5、职工薪资管理,主要是对职员薪资信息的管理,其中包括生成薪资列表及操作工资发放。

薪资列表只能在月末生成,是将数据库中该员工的工资情况查询并显示出来。

操作工资发放是修改薪资构成和薪资的发放时间。

6、假期情况管理,主要用来处理职工的请假申请。

当一个职员申请假期之后,人事部员工需要处理职员的申请,同意申请之后职员才能查询到自己的假期申请。

♦个人页面功能,针对所有的员工,具有以下权限:

1、查看个人基本信息,这个功能用来让职工查询自己的个人信息,核对如果需要修改可以联系人事部进行修改。

2、查询个人考勤记录,用来查询个人的考勤信息,其中考勤信息包括正常,迟到,缺席和请假,如果信息有误可以联系人事部进行修改。

3、个人薪资情况查询,用来查询个人的薪资情况,包括个人薪水和薪资的发放情况。

4、申请请假,当一个员工需要请假时,可以通过这个功能进行在线请假,申请完之后,人事部员工可以看到申请,当人事部同意请假才能看到请假状态,这样请假程序才算完成。

5、个人请假记录查询,主要让员工来查询自己的请假记录。

3.2系统功能结构

根据系统用例图可以清楚地看到该系统的结构和系统的模块。

系统的结构图如图3-2所示:

图3-2系统结构图

系统结构图很直观的体现了该系统的两大模块:

人事部管理端,员工个人管理端。

人事部管理端主要是对职员资料、部门资料,职工考勤、加班、薪资、请假等信息的管理,而员工个人端是职工本人的资料信息、考勤记录、薪资信息、请假信息的一些查询和管理。

3.3系统设计

根据上述的需求分析,对该系统进行模块化分析和设计,由于文章篇幅所限,本节只是对系统核心模块进行分析和设计。

3.3.1登录模块

登录模块需求:

当用户进入登录界面,需要输入用户名、密码和验证码,均不能为空,如果为空需要非空提示。

如果不为空,系统将首先判断验证码是否正确,验证码错误,需要提示错误信息,如果验证码正确,系统将验证用户名和密码,用户名或者密码错误,需要提示错误信息,如果用户名和密码均正确将进入主界面。

以下为登录模块的活动图,如图3-3所示:

图3-3登录模块的活动图

登录模块设计:

从登录模块可以看出来,首先设计出登陆页面(Login.jsp),可以输入用户名(uid)、密码(pwd)以及验证码(yanzhengma)。

然后对输入的信息进行非空验证,可以用JavaScript实现,之后验证验证码是否正确,如果正确便验证用户名和密码,需要与数据库中的用户名密码进行比对,如果错误返回错误信息在页面上显示出来,正确的话根据用户名权限进入不同的主界面。

上述验证在LoginAction中实现。

3.3.2添加职员模块

添加职员模块需求:

当有新职员入职时,可以将新职员录入数据库,添加职员模块可以填入职员的信息:

职员编号、职员姓名、职员性别、出生日期、个人邮箱、个人电话、所属部门、职位、头像以及个人简历。

需要对填入的信息进行非空和合法性验证(编号只能为数字,出生日期、邮箱、电话合法,所属部门存在,薪资只能为数字)。

验证都通过提示添加成功。

以下为添加职员模块的活动图,如图3-4所示:

图3-4添加职员模块的活动图

添加职员模块设计:

从活动图可以看出来,首先设计出添加职员页面(AddImp.jsp),需求需要的完整性验证同样可以用JavaScript来实现,职员性别用radio实现选择,出生日期调用struts2自带的日历实现选择,所属部门可以先在数据库中取出来显示在页面上用选择框选择,上传头像用文件选择实现,而个人简历由于字数可能比较多,用textarea实现。

其中合法性验证可以使用JavaScript以及正则表达式来实现

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

当前位置:首页 > 自然科学 > 数学

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

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