基于jspjava工资管理系统的设计和开发doc.docx
《基于jspjava工资管理系统的设计和开发doc.docx》由会员分享,可在线阅读,更多相关《基于jspjava工资管理系统的设计和开发doc.docx(33页珍藏版)》请在冰豆网上搜索。
基于jspjava工资管理系统的设计和开发doc
毕业设计(论文)
基于jsp(java)工资管理系统的设计和开发
姓 名
系别、专业
导师姓名、职称
完成时间
摘 要
随着现代企业管理制度的建立和软件产业的迅速发展,企业人事劳资管理系统已成为企业进行日常管理工作的重要工具,加强人事劳资管理类软件的开发和运作已成为提高企业管理效率的重要手段,而工资管理是企业人事劳资管理的重要组成部分。
本文论述了基于Web的工资管理系统的开发和实现过程,主要包括系统开发技术、系统需求分析、系统概要分析与设计、系统详细设计与实现等。
重点介绍了数据库的设计及系统的实现过程,此外还介绍了系统框架结构。
本系统采用了目前较为流行的SSH组合框架开发技术。
在表示层采用Struts技术实现了经典的MVC模式,规范了表示层的开发过程。
在业务层中,使用Spring组件技术,用容器管理表示层的控制器和数据层的数据访问对象,以提高系统的可扩展性能。
在数据持久层,使用Hibernate框架技术,实现了数据与业务的分离,降低了系统的耦合度。
开发结果表明,将Struts、Spring和Hibernate技术整合为一种组合型多框架,极大的提高了系统的可维护性、可扩展性、可移植性和组件的复用性。
关键词:
工资管理;SSH框架;MVC模式
Abstract
Withtheestablishmentofmodernenterprisemanagementsystemandtherapiddevelopmentofsoftwareindustry,businesspersonnellabormanagementsystemhasbecomethedailymanagementofanimportanttooltostrengthenthepersonnellabormanagementclasssoftwaredevelopmentandoperationofbusinessmanagementtoimproveefficiencyhasbecomeanimportantmeansofandwagesofpersonnelmanagementisanimportantpartoflabormanagement.
ThispapersdiscussestheWeb-basedpayrollsysteminthedevelopmentandimplementationprocess,includingsystemdevelopmenttechnology,systemrequirementsanalysis,systemprofilinganddesign,detaileddesignandimplementation.Focusesondatabasedesignandsystemimplementationprocess,theframeworkalsointroducesthesystemstructure.ThesystemusesacombinationofthecurrentframeworkofthemorepopularSSHdevelopmenttechnology.InthepresentationlayerusingStrutstechnologytoachievetheclassicMVCpattern,thepresentationlayerspecificationofthedevelopmentprocess.Inthebusinesslayer,theuseofSpringcomponenttechnology,withcontainer-managedpresentationlayerofthecontrollerandthedatalayerdataaccessobjectstoimprovesystemscalability.Inthedatapersistencelayer,Hibernateframeworkusingtechnologytoachievetheseparationofdataandservices,reducingthesystemcoupling.TheresultsshowthatthedevelopmentwillbeStruts,SpringandHibernatetechnologyintegrationasacombinationofmultiframe,greatlyimprovingsystemmaintainability,scalability,portabilityandreusabilityofcomponents.
KeyWords:
payrollmanagement,SSHframework,MVCmode
目 录
1引言
1.1编写目的
随着计算机技术的发展,企业管理越来越趋于自动化,而工资管理是企业管理的重要组成部分,它与企业的财务管理、人事管理有着密切的联系。
由于企业员工工资结构存在一定的规律性,工资发放在时间上和操作上存在一定的重复性,这使得企事业单位工资管理计算机化成为可能。
本系统在此基础上实现了工资信息查询、人员信息管理、报表生成等功能。
用户只要使用IE浏览器访问相关站点,输入正确的用户名和密码成功登录后,普通用户便可查询自己的工资情况和其他相关信息。
对管理员来说使用起来也非常的方便快捷,可以进行科学、合理的对员工工资和人员进行管理。
1.2项目背景
项目名称:
基于Web的工资管理系统的设计与实现
项目的提出者:
马春辉
开发者:
马春辉
项目简介:
本系统主要实现员工工资和员工信息管理。
1.3系统概述
1.3.1系统说明
该系统着眼于员工工资业务的实际,对发放工资业务进行了细致的分析、研究,认真分析其业务流程,采用灵活方便的计算处理方式,改变手工操作的繁杂、低效、不宜操作、灵活性差的特点,提高其工作效率和效益。
实现员工工资管理业务的制度化、现代化的管理。
工资管理系统是为了能够迅速、准确地反映出用户需要的各种信息,及时方便的进行各种检索,从而为决策者做出准确的判断提供强有力的支持。
计算机的使用使得企业管理变得更加合理,更加规范,更加科学。
1.3.2具体要求
系统数据初始化;员工基本信息数据的查询、添加、修改、删除;企业工资结构的基本设定;企业工资参数的设定与管理;员工考勤的管理;员工个人工资表的查询;员工工资的浏览、修改、添加、删除;系统的维护包括用户的操作权限、密码修改。
1.3.3系统设置
员工信息、部门信息、岗位信息、考勤记录等只能被管理员修改,添加,删除。
员工可以查看个人信息、考勤记录、工资信息等。
2系统开发技术
2.1JSP程序设计语言简介
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术。
JSP技术是在传统的网页HTML文件中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,插入的Java程序段可以操作数据库、重新定向网页等。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
因此,客户端只要有浏览器就能浏览。
JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。
JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。
在传统的网页HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。
程序片段可以操作数据库、重新定向网页以及发送email等,这就是建立动态网站所需要的功能。
所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无JavaApplet,甚至无Frame。
2.2Java程序设计语言简介
Java语言是美国Sun公司于1995年推出的一种简单的、面向对象的、分布式的、可解释的、键壮的、安全的、结构的、中立的、可移植的、性能很优异的多线程的、动态的语言。
其前身为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。
他们最初的目的只是为了开发一种独立于平台的软件技术。
经过Sun公司的工程师的不懈努力以及全世界无数的编程爱好者的使用,Java终于发展成为今天这样一个集桌面(J2SE)、网络(J2EE)、移动平台(J2ME)应用为一体的功能强大的编程语言。
目前Java由于其平台无关及分布式特性,最重要的应用是在网络应用上。
2.3SSH框架简介
SSH框架是Spring+Struts+Hibernate组合框架的简称。
Spring是一个开源框架,它由RodJohnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
Struts是一种开发源代码的Web应用开发框架,Struts架构MVC(ModelViewController,模型-视图-控制器),将视图和模型分离,用户界面和事务逻辑分离,简化了程序开发者的开发和维护工作,提高了系统的灵活性、重用性和可维护性。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
2.4Mysql数据库简介
MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。
由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。
MySQL是一个真正的多用户、多线程SQL数据库服务器。
2.5Tomcat服务器简介
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
3系统需求分析
3.1系统设计目标
员工工资管理系统用来对员工工资及员工相关信息进行管理。
本系统可以方便管理员管理员工工资及相关信息,为管理员提供高效的工作效率与质量保证等,主要包括管理员登录、员工信息管理、工资结算管理、工资结构设置、考勤信息管理、部门信息管理、岗位信息管理。
本系统还可以方便员工查看个人工资详细情况,主要包括查看个人信息及个人工资明细,并可以申请假期。
3.2系统角色
3.2.1普通用户
员工通过该系统可以查看个人相关信息、每月工资信息、每月考勤信息,可以修改密码,并可以向上级申请假期。
3.2.2管理员
管理员通过该系统可以管理员工信息(包括增加、删除、修改、查看员工信息)、管理员工工资信息(包括查看员工工资信息、工资结算、设置工资结构)、管理部门信息(包括对部门信息的增删改查)、管理岗位信息(包括对岗位信息的增删改查)。
3.3系统需求模块
3.3.1登录模块
关联角色:
员工、管理员。
需求描述:
员工登录该系统进入前台浏览页面,管理员登录该系统进入后台管理页面。
备注说明:
只有合法用户才能进入相关界面。
3.3.2前台浏览模块
关联角色:
员工。
需求描述:
员工可以查看个人详细信息、工资信息、考勤信息,可以申请假期。
备注说明:
员工只能查看个人相关信息。
3.3.3后台管理模块
关联角色:
管理员。
需求描述:
管理员可以进行员工信息管理、员工工资管理、部门信息管理、岗位信息管理、工资管理(包括工资结算、工资结构设置)。
3.4系统设计的特点
采用MVC(Model、View、Control)架构,结合SSH(Spring+Struts+Hibernate)框架实现系统的功能。
MVC:
当前非常流行的一种系统架构模式。
MVC作为模式:
提供一个原则,可以按照模型(model)、界面(view)、控制(control)等角色把一个应用系统的各个部分之间的耦合解脱、分割开来。
MVC(Model-view-controllerpattern)模式由三部分组成:
模型(Model):
是一组表示应用系统商业逻辑的对象。
它通常包括表示商业抽象的类(如:
账号、采购等等)和现实世界的对象(如职员、客户等)。
视图(View):
是用一种向用户表达信息的具体方式。
要理解视图的捷径是把视图想象成为一个具体的网页或者屏幕,它能够给用户提供一组互相有关的信息。
控制(Controller):
是应用系统处理具体流程和导向的核心部分。
它把模型对象给出的信息翻译成视图可以理解的形式,并且处理系统流程的走向,例如视图在下一个回应中将会给用户什么样的反馈。
MVC的关键是商业模型的设计与实现可以独立于应用系统的结构设计与实现(控制)和界面的设计与实现(视图)。
本系统采用的是SSH(Struts+Spring+Hibernate)三层架构。
Struts用于表现层,负责页面数据提取,页面动作响应。
Spring是一种轻量级的框架模型,主要负责业务逻辑层的对象创建,表现层的Action的创建,以及持久层的DAO的创建。
Hibernate负责把内存中的数据对象保存到数据库中。
在SSH三层架构中,主要用Struts来实现对页面的响应就页面跳转。
当用户向服务器发送某一个请求,这个请求会被服务器(Tomcat)接收到,服务器会根据请求的内容,将这个请求发送给相应的Servlet实例进行处理。
Servlet会根据其内容,去生成相应的Action实例。
本程序中,Struts将Action的创建工作交给了Spring的代理类来完成,创建这个实例后,将这个实例注入,由Struts调用Action中的相应方法。
Action中可以配置一个或多个Service对象,Action调用Service中的方法进行业务处理。
Service中通常会有一个或多个DAO的对象,DAO继承了Hibernate的借口,用来处理数据库的操作。
而Action,Service,DAO的创建与注入,都是由Spring的Bean工厂来实现的。
4系统概要分析与设计
4.1系统总体结构
本系统主要由登录模块、前台员工浏览模块、后台管理员管理模块构成。
普通员工正确登录后进入前台员工浏览界面,管理员正确登录后进入后台管理员管理界面。
系统结构图如图4-1所示:
图4-1系统结构图
4.2前台功能分析与设计
前台功能主要有员工查看个人信息、查看工资明细、查看考勤信息、申请假期、修改登录密码等。
前台页面设计如图4-2所示:
图4-2前台页面跳转图
4.3后台功能分析与设计
后台功能主要有员工信息管理(包括增加、删除、修改、查看员工信息)、员工工资管理(包括查看员工工资、设置岗位工资结构、工资结算等)、考勤记录管理(考勤内容有出差、加班、请假、迟到早退、旷工等)、部门信息管理(包括增加、删除、修改、查看员工信息)、岗位信息管理(包括增加、删除、修改、查看岗位信息)。
后台页面设计如图4-3所示:
图4-3后台页面跳转图
4.4数据库分析与设计
由于企业组织结构呈树形,即一个企业有多个部门;一个部门有多个岗位,一个岗位对应一个岗位工资结构,每个岗位有多个员工;每个员工有多条考勤记录和工资发放记录,一个员工对应一个系统用户身份。
从上往下看,基本都是一对多或一对一的关系,而在本系统中我使用了Hibernate技术和Java编程思想,在建立实体抽象时,分别作了一些对应的引用来实现数据库表之间的关联,这样不仅充分运用了面向对象编程的思想,并简化了表的结构,使得数据库管理更合理化。
4.4.1数据库设计
建立数据库employeemanage,包含的表如图4-4所示:
图4-4数据库表图
4.4.2表设计
部门表如图4-5所示:
图4-5部门表
岗位表如图4-6所示:
图4-6岗位表
员工表如图4-7所示:
图4-7员工表
岗位工资结构表如图4-8所示:
图4-8岗位工资结构表
用户表如图4-9所示:
图4-9用户表
工资记录表如图4-10所示:
图4-10工资记录表
考勤记录表如图4-11所示:
图4-11考勤记录表
考勤表如图4-12所示:
图4-12考勤表
5系统详细设计与实现
系统功能模块主要有登录模块、前台功能模块、后台功能模块等。
5.1系统登录模块
系统用户输入正确的用户名和密码可登录系统。
若为普通员工则进入前台浏览首页,若为管理员则进入后台管理页面。
系统登录页面如图5-1所示:
图5-1系统登录页面
实现代码部分如下:
Stringidentify=userService.login(user);
if(identify.equals("admin")){
return"adminLogin_succ";
}elseif(identify.equals("emp")){
return"empLogin_succ";
}else{
return"login_fail";
}
5.2前台功能模块
前台功能模块主要由查看个人信息、考勤记录、工资明细,申请假期,修改密码等模块组成。
前台首页如图5-2所示:
图5-2前台首页
5.2.1查看个人信息模块
员工点击个人详细信息按钮,可查看个人详细信息。
个人信息页面如图5-3所示:
图5-3个人信息页面
5.2.2查看考勤记录模块
员工点击考勤记录按钮,可查看个人考勤记录信息。
考勤记录页面如图5-4所示:
图5-4个人考勤记录页面
5.2.3查看工资明细模块
员工点击工资明细按钮,可查看个人工资明细情况。
工资主要由岗位基本工资、五险一金、考勤相应奖罚金额等组成。
工资明细页面如图5-5所示:
图5-5工资明细页面
5.2.4申请假期模块
员工点击申请假期按钮,可进入假期申请页面,需填写请假理由、请假时间等信息。
申请假期页面如图5-6所示:
图5-6申请假期页面
实现代码部分如下:
userService.applyLeave(leaveInfors);
5.2.5修改密码模块
员工点击修改密码按钮,可以修改登录密码,需键入旧密码、新密码、新密码确认等信息。
修改密码页面如图5-7所示:
图5-7修改密码页面
实现代码部分如下:
Useruser=(User)this.getSession().getAttribute("user");
User.setPassword(newPassword);
userService.updateUser(user);
5.3后台功能模块
后台功能模块主要由员工信息管理、考勤记录管理、工资管理、部门信息管理、岗位信息管理等模块组成。
5.3.1员工信息管理模块
点击员工信息管理菜单系统列出员工信息管理的子菜单,包括增加员工信息、删除员工信息、修改员工信息、查看员工信息等。
1>增加员工信息。
需填写员工姓名、性别、住址、联系方式、电子邮箱、身份证号等基本信息,并选择员工所属部门和岗位,还可以上传照片,最后选择提交,信息合法即可添加成功,系统自动生成员工编号。
增加员工信息页面如图5-8所示:
图5-8增加员工信息页面
实现代码部分如下:
employeeService.addEmployee(post,employee);
2>删除员工信息。
点击删除员工信息菜单,系统列出员工列表,从列表中选择或直接搜索员工,点击删除按钮,确认删除即可删除该员工相关信息。
删除员工信息页面如图5-9所示:
图5-9删除员工信息页面
实现代码部分如下:
employeeService.deleteEmployee(empNOs);
3>修改员工信息。
点击修改员工信息菜单,系统列出员工列表,从列表中选择或直接搜索员工,点击修改按钮,系统列出该员工详细信息,并可以进行修改。
修改员工信息页面如图5-10所示:
图5-10修改员工信息页面
实现代码部分如下:
employeeService.updateEmployee(empNO,employee);
4>查看员工信息。
点击查看员工信息菜单,系统列出员工列表,从列表中选择或直接搜索员工,系统列出该员工的详细信息。
查看员工信息页面如图5-11所示:
图5-11查看员工信息页面
实现代码部分如下:
ListemployeeList=
employeeService.lookEmployee();
this.getRequest().setAttribute("employeeList",employeeList);
5.3.2考勤记录管理模块
点击考勤记录管理菜单系统列出考勤管理子菜单,包括查看考勤记录、加班管理、出差管理、迟到管理、旷工管理、请假管理等。
1>查看考勤记录。
点击查看考勤记录菜单,可查看员工考勤记录。
2>员工加班管理。
点击加班管理菜单,可添加员工加班记录。
3>员工出差管理。
点击出差管理菜单,可添加员工出差记录。
4>员工迟到管理。
点击迟到管理菜单,可添加员工迟到记录。
5>员工旷工管理。
点击旷工管理菜单,可添加员工旷工记录。
6>员工请假管理。
点击请假管理菜单,可添加员工请假记录。
员工加班管理页面如图5-12所示:
图5-12员工加班管理页面(check_extra.jsp)
实现代码部分如下:
checkRecordSe