基于JSP的人事管理系统毕业设计.doc
本科毕业论文(设计) 题 目 基于JSP的人事管理系统 学 院 计算机与信息科学学院 2011 年 4 月 25 日 28目录1.引言11.1背景11.2信息化的发展11.3课题设计的意义21.4系统调研21.5可行性分析31.5.1社会可行性31.5.2经济可行性41.5.3技术可行性42需求分析62.1硬件环境62.2软件环境73.系统总体设计83.1功能描述:83.2功能模块划分:84.数据库设计95详细设计105.1普通员工登录模块10登录页面10请假条填写11个人请假信息查询模块155.2管理员登录模块17管理员登录17人员添加18公司员工查询195.3公司领导登录模块21公司领导登录21请假条批示22员工请假信息查询236.结论257. 参考文献:26致 谢27基于JSP的人事管理系统 摘要:在现代化的教育技术模式下,计算机已经广泛应用于企业的人事管理,给传统的人事管理方式带来了重大的变革。如何有效地进行人事管理是摆在我们面前的一个新的课题。在对目前各个企业人事管理情况的理解的基础上,从企业的实际需求出发,采用当前较为流行的B/S(浏览器/服务器)结构和JSP动态网页开发技术,基于Windows xp Server操作系统和Sql数据库,设计并实现了一个功能较为完善的小型企业管理系统。通过对系统进行一系列的需求分析、设计、编码、测试等工作,使系统实现了对企业员工信息的查看,添加,修改,删除,以及搜索等相关功能。重点对系统设计过程作了相应描述。关键词:JSP;人事管理;Sql数据库;B/S模式Personnel management system based on JSP Abstract:In the modern educational technology mode, the computer has been widely used in the personnel management of enterprises, bringing about a major revolution to the traditional personnel management methods. How to take personnel management effectively is a new topic in front of us.Based on the study of the current different kinds of personnel management in many enterprise, allowing for the actual demand from enterprises , the more popular B / S (browser / server) JSP structure and dynamic web development technology are taken into consideration. Based on Windows2000 Server operating system and database Sql, we design and implement a small enterprise management system with whole function. Through a series of requirements analysis, design, coding, testing, the system has the function that view, add, modify, delete, and search on the employees. Focus on accordingly description of the system design process.Keyword: JSP; Personnel Management;Sql database;B/S mode1.引言1.1背景 人事管理系统是一个企业单位不可缺少的部分,它对于企业的管理者和决策者来说都至关重要,所以人事管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们采用传统的方式管理文件档案,这种方式存在着许多缺点,比如效率低、保密性差,另外时间一长,将产生大量的文件和数据,这为查找、更新和维护等操作带来了不少的困难。随着科学技术的不断提高,计算机科学日益成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥越来越重要的作用。作为计算机应用的一部分,使用计算机对人事劳资信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率,也是企业科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。1.2信息化的发展 随着人类迈入二十一世纪,以计算机通信技术、网络技术为代表的现代信息技术飞速发展,人类正在从工业时代向信息时代迈进,人们越来越重视信息资源的开发和利用,信息化已成为一个国家经济和社会发展的关键环节,信息化水平的高低已成为衡量一个国家现代化水平和综合国力的重要标志,信息化的实质是使信息 这一社会的主导资源充分发挥作用,可以说推广信息技术使手段,真正利用信息是目的,信息化则是实现目的的过程。1993年,美国提出建立“信息高速公路”,有的称之为国家信息基础设施(NII)计划,其核心是建立全国性的高速网络,把所有的计算机网络连接起来。这个计划的实现将对经济和社会生活产生重大的影响,由此引起的信息化建设浪潮已波及世界各国。 我国自1983年大力推广微型计算机应用以来,在管理信息领域,无论在理论方面,还是在实践方面都有了很大发展。1986年2月国务院批准建设了国家经济信息系统,全国从中央到省、市地方都陆续成立了信息中心,各行各业应用电子计算机的热情普遍高涨。目前,已从单项业务的信息管理迅速向综合的管理层和决策层的信息管理发展,应用水平日趋提高;以金桥工程、金关工程和金卡工程为代表的国民经济信息工程也正在加速建设。 1.3课题设计的意义随着社会的发展,科技的进步,作为信息载体的计算机日益显露出其举足轻重的地位。当今社会已步入了信息社会,知识经济将成为新世纪的主导产业。伴随计算机的逐步推广和使用,计算机已在科研、生产、商业、服务等许多方面创造了提高效率的途径,与此同时,单位技术成本也逐年有了明显的下降,然而办公室里的人事费用却不断增加。在国外,花费在专业、管理和行政人员上的成本占了办公室总成本的2/34/5,这一现象使人们对办公室自动化的要求与日俱增。我们必须在进行机构改革的同时,尽快使用现代化管理设备、管理手段、管理方法。计算机在人事部门的广泛使用,改进了统计手段,改革了统计方法,提高了统计工计算机在人事部门的广泛应用,将为我国的人事管理工作提供现代化的管理手段和科学的管理方法,并将为开创人事管理工作的新局面创造条件。人事管理工作都面临从被动执行层面的事务性工作向主动开发企业人才资源,实现人力资源增值的开拓性、战略性工作转变的压力。大多事务性工作尽管是基于经验的重复劳动,琐碎烦杂,缺乏创造性,占用了管理人员大量的时间,但又是不可回避的基本事务,通过增加人事工作人员来解决人事工作压力已不现实,目前我们只能借助于计算机、借助于人事信息管理系统来进行工作模式和方法的创新来解决这一问题。1.4系统调研正式开发管理信息系统之前进行调研是非常必要的,其必要性主要表现在以下几个方面。(1)明确用户的要求,以根据调查结果进行可行性分析,确认系统的开发是否可行。(2)提出新系统的人员并不都是系统研究人员,有些人对于其功能和处理数据的方法没有明确的认识。它们只是根据自己业务工作的需要提出了要求,系统开发人员要对此进行详细的调查和分析,确认用户的要求可以通过现有的计算机技术实现,保证开发的管理信息系统的功能与用户提出的要求相吻合。(3)企业的现行系统可能是手工系统,也可能是使用计算机的系统,无论是何种情况,都要详细地调查现行系统中信息处理的具体情况,系统内部功能结构,以便设计出一个合理的、好的新系统逻辑模型,为新系统的设计工作打好基础,保证整个系统开发的质量。 总之,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生。1.5可行性分析可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行可行性分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行。可行性分析阶段的主要工作包括以下几个方面:1.5.1社会可行性 人事管理是企业管理的一个重要分支。随着现代企业的人员数量不断增加、分工的不断细化、企业各个部门之间的联系不断加大、各个行业间的联系不断密切。对人事管理的要求就必然会提高,实现人事管理自动化,无疑将提高企业的管理效率。员工是企业生存的主要元素,人员的增减、变动将直接影响到企业的整体运作,企业每天都要涉及到员工问题。企业员工越多、分工越细、联系越密,要做的统计工作就越多,人事管理的难度就越大。最初的人事管理采用人工方式,不仅记录量大,而且容易出错。现代人事管理系统用电脑代替大量的人工记录,完成众多的信息的处理,有方便、准确度高,且可以长期保存等人工记录方式不具有的优点。人事管理系统,为个人提供资料查询服务,为企业提供员工分工等服务。旧式的用纸介材料来记录的人工管理方式已经不适合现代企业公司的发展了,已经不能满足现代市场化得需求。实现人事管理的系统化、规范化、自动化,将成为现代公司管理人员的首选。本系统基本上能够满足现代企业人事管理的需求,人事管理系统中使用各种表格,保存相关人员信息,方便查询、浏览、修改等操作。系统的前提是一定要有员工的在职作为基础,在使用的时候一定要保证员工在职的人事信息数据库。1.5.2经济可行性现代经济迅速发展,各行业间的竞争、各企业间的竞争愈演愈烈。本系统具有无可比拟的优越性,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这样一个相对完善、运行稳定的人事管理系统可以使人们从繁重的传统手工管理中解脱出来,从而提高企业人事管理的工作效率,协助企业更好的完成人事管理工作;同时能降低企业的成本,提高效率,而且,企业整体管理的信息化建设是企业科学化、正规化管理与世界接轨的重要条件,企业人事管理的信息化又是企业整体管理信息化建设的重要组成部分。因此,利用计算机对企业人事进行管理是必然趋势,人事管理系统是企业管理工作中不可缺少的。1.5.3技术可行性技术可行性分析是根据新系统的目标来衡量是否具备所需要的技术,包括系统开发人员数量和水平,硬件方面,软件方面及其它应用技术。技术可行性分析主要包括四个方面:目前有关的技术能否支持所开发的新系统;新系统开发人员的数量和水平,即人力资源、硬件和软件资源。(1)技术支持:首先根据新系统的目标,考虑目前有关的技术能否支持所开发的新系统。这里讨论的技术必须是已经普遍使用的,而不是待研究的或正在研究的。(2)硬件资源:开发管理信息系统所需的硬件资源包含以下两个方面:系统开发人员在管理信息系统的开发过程中所需要的计算机设备及其有关的外部设备;管理信息系统开发成功投入使用后,使用单位所应具备的计算机设备及其有关的外围设备。对硬件资源进行可行性分析时主要考虑计算机的主机内存、类型、功能、联网能力、安全保护措施以及输入/输出设备,外存储器和联网数据通信设备的配置、功能、效率等指标是否符合系统方案设计要求,同时还要考虑计算机的性能/价格比。(3)软件资源软件资源的可行性分析主要考虑以下几点是否满足用户的要求:操作系统的选择;编译系统的选择;数据库管理系统的选择;高级编程语言的选择;汉字处理系统的选择;应用软件包的选择。结合人事管理系统的相关特点,本系统采用SQL2000做后台数据库管理系统,同时选择功能强大的Jdk、Eclipse作为开发工具,利用软件工程的思想和方法来进行设计。此外,可行性分析还包括管理可行性分析,它主要是分析企业现行的管理体制和企业领导是否具有现代化的管理意识和管理水平。2需求分析需求分析是开发管理信息系统的关键性阶段,是一个不断认识和逐步细化的过程,是下一阶段工作的基础,为下一阶段进行物理方案设计、解决“怎么做”提供依据,其关键性主要体现在“理解需求”和“表达需求”两方面。通过对现行系统的详细调研,主要是从系统的角度理解用户的需要,确定新系统的综合要求,并提出这些需求的实现条件以及需求应达到的标准,也就是确定新系统要做什么,做到什么程度。 本系统主要是为了方便管理员,简化管理员的工作强度,使管理员可以快速、准确、直观的了解到数据库当前人员档案、人员调动等方面的大致情况或具体个人档案信息。包括功能需求和性能需求。功能需求: 确定新系统应做什么,这是最主要的需求。具体说来,本系统有以下功能: 公司人员添加。 公司员工填写请假单。 公司员工名单查询。 请假单的审批。 公司员工请假情况查询。性能需求:给出所开发的新系统的技术性能指标,包括存储容量限制、运行时间限制、安全保密性等。环境需求: 这是对系统运行以及所处环境的要求。例如,在硬件方面采用什么机型、有什么硬件设备等;在软件方面,采用什么支持系统运行的系统软件(指操作系统、数据库管理系统)。2.1硬件环境(1)服务器端服务器端的最低配置是由建立站点所需的软件来决定的,在最低配置的情况下,服务器的性能往往不尽如人意,现在的硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器端配置高性能硬件。本网络系统服务器端的配置如下:处理器:Intel(R) Core(TM) Duo CPU T2250 1.73GHz(1729 MHz)。内存:1024MB。硬盘空间:250GB。(2)用户端因为用户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的电脑有很高的性价比,因此实际的配置一般高于下面的配置:处理器:Intel(R) Core(TM) Duo CPU T2250 1.73GHz(1729 MHz)。内存:1024MB。硬盘空间:120GB。2.2软件环境(1)服务器端操作系统:Windows 2000 Server。网络协议:TCP/IP。Web服务器:Internet Information Server5.0/Personal Web Server。数据库:Microsoft SQLServer2000。浏览器:Internet Explore7.0以上。(2)用户端操作系统:Windows 98/ME/2000/XP。网络协议:TCP/IP。数据库:Microsoft SQLServer2000。浏览器:Internet Explore7.0以上。3.系统总体设计3.1功能描述: 该人事管理系统工作流程为:用户输入用户名和密码,系统判断用户的用户名和密码是否有效,如果是无效的,则提示错误信息;如果是有效的,则根据用户的权限进入相应的页面,是用户能完成相应的操作3.2功能模块划分:系统分为普通员工登录模块、管理员登录模块、公司领导登录模块三部分。普通员工登录模块包括请假条填写、个人请假查询、重新登录及主页面的设计。每一个系统用户都拥有事先由公司管理员分配好的用户名和密码,此类型的用户只能访问自己工作领域的相关页面;管理员登录模块包括员工添加、员工查询、进入普通员工页面、重新登录界面的设计。每一个系统用户都拥有事先由公司管理员分配好的用户名和密码,此类型的用户只能访问普通用户和管理员相关页面,不能访问公司领导进入的页面;公司领导登录模块包括请假条批示、员工请假查询、进入普通员工页面、重新登录界面的设计。每一个系统用户都拥有事先由公司管理员分配好的用户名和密码,此类型的用户能够访问普通用户、管理员及公司领导相关页面。 系统的总体结构如图1所示。 图1 系统的总体结构Picture 1 structure of the system 4.数据库设计 公司员工(wglPERSON)。数据来源:管理员添加。公司员工表如表1所示。表1. 公司员工表 Table1 The employee table名称字段名称类型主键非空人员IDEMP_CODEvarchar(5)YesNo人员姓名EMP_NAMEvarchar(10)NoYes部门号EMP_DEPTvarchar(3)NOYes性别EMP_SEXint(4)NoYes出生日期EMP_BIRTHDAYvarchar(8)NoYes入社日期EMP_INDATEvarchar(8)NoYesWEB权限EMP_WEBint(4)NoYes婚姻状况EMP_MARRYInt(4)NoYes毕业学校EMP_SCHOOLvarchar(18)NoYes毕业日期EMP_RADUATIONvarchar(8)NoYes学历EMP_EDUATIONnvarchar(50)NoYes联系电话EMP_TELnvarchar(20)NoYes移动电话EMP_HANDTELnvarchar(20)NoYes住址EMP_ADRESSnvarchar(100)NoYes用户名EMP_USERNAMEnvarchar(20)NoNo密码EMP_PASSWORDnvarchar(20)NoNo 员工信息表(wglMESSAGE) 数据来源:前台页面取得。 员工信息表如表2所示。表2 员工信息表Table 2 Information table of employee名称字段名称类型主键非空人员IDEMP_CODEvarchar(5)YesNo请假次数M_TIMESvarchar(8)NoNo开始时间M_STIMEvarchar(12)NoNo结束时间M_ETIMEvarchar(12)NoYes小时数M_HOURSvarchar(4)NoYes原因M_CAUSEvarchar(50)NoYes申请时间M_TIMEvarchar(12)NoYes批示M_NOTEvarchar(50)NoYes5详细设计5.1普通员工登录模块登录页面(1) 登录页面IPO图 输入:用户名,密码。 处理: 判断用户名和密码是否有效。填入用户名和密码后点击【登录】按钮,系统将自动从员工信息表中判断是否存在相同的用户名和密码,如果其权限为0则进入普通用户界面,如果不存在则提示用户名和密码有错误信息。如果用户未填写同户名或密码,系统将出现提示错误信息。输出:登录成功,则进入普通员工系统并使用资源页面,不成功则显示错误信息页面。登录界面如图2所示图2登录界面Picture 2 Login interface普通员工登录模块包括登录页面、请假条填写、个人请假查询两个功能模块。普通员工登录界面如图3所示 图3员工登录界面Picture 3 employee login interface (2) 登录页面的部分代码(totalLogin1.jsp)<form name="S_form" method="post" ><jsp:useBean id="db" scope="page" class="opendb.opendb"/><%String getAusername=new String(request.getParameter("username").getBytes("ISO8859_1");String getApassword=new String(request.getParameter("password").getBytes("ISO8859_1");System.out.println(getAusername);System.out.println(getApassword);String sql="select EMP_CODE,EMP_WEB from wglPERSON where EMP_USERNAME='"+getAusername+"'and EMP_PASSWORD='"+getApassword+"'" System.out.println("sql="+sql);ResultSet rs=db.executeQuery(sql);System.out.println("aa2");if(rs.next()System.out.println("aa3");String personID=rs.getString("EMP_CODE");int web=rs.getInt("EMP_WEB");rs.close();session.setAttribute("personID",personID);请假条填写 (1)请假条填写IPO图 输入:点击“请假条填写”选项。输入请假开始时间,请假结束时间,请假小时数,请假的理由。处理: 1)将请假信息录入员工请假信息表中。请假信息填写后,点击【提交】按钮,系统会自动将请假信息录入员工请假信息表中,供公司领导查询批示,或员工自己查询。 2)前台校验。校验页面信息是否填写,避免非法数据进入数据库。输出:如果成功,则输出成功页面,不成功则输出失败页面。 3)填写请假条页面 填写请假条页面如图4.示。图4 请假条填写界面Picture 4 writting request for leaveinterface (2)填写请假条页面部分代码(rest.jsp)<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%"> <TBODY> <TR > <td width="16%"> <IMG align=left border=0 height=22 hspace=0 src="/DSN/b.files/nav1.gif" width=165></td> <TD background="/DSN/b.files/TdBg.gif" width="84%" valign="bottom"> <font color="#00FF00"size="2">请假条填写</font> <font color="#00FF00" size="2"><a href="restUser.jsp" target="_parent">个人请假查询</a></font> <font color="#00FF00"丂size="2"><a href="totallogin.jsp"target="_parent">重新登录</a></font> </TD> </TR></TBODY></TABLE><TABLE border=0 cellPadding=0 cellSpacing=0 class=splash width="100%"> <TBODY> <TR> <TD class=splash width="8%" align="center" valign="bottom"><IMG align=left border=0 height=72 hspace=0 src="/DSN/b.files/spl_1.gif" width=76></TD> <TD width="92%" align="center"><font size="5">公司内部管理系统</font></TD> </TR> </TBODY> </TABLE><form id="S_form" name="S_form" onSubmit="return chkUserPw()"action="restWrite.jsp" method="Post"><DIV align=center><h2 align="center"> <p> </p> </h2> 注意:带*为必添项<br><table width="80%" border="0" height="20"><tr align="center"> <td colspan="4" class=blue height="24" valign="bottom" align="center"><table border bordercolor="#008000"> <tr><td bgcolor="#00ff00"><p align="center">请假开始时间</p><td><input type=text name="Syear" class=input size="4"maxlength="4">年<input type=text name="Smonth" class=input size="2"maxlength="2">月<input type=text name="Sday" class=input size="2"maxlength="2">日<input type=text name="Shour" class=input size="2"maxlength="2">时<input type=text name="Sminute" class=input size="2"maxlength="2">分*</td> <tr> <td bgcolor="#00ff00"><p align="center">请假结束时间</p><td><input type=text name="Eyear" class=input size="4"maxlength="4">年<input type=text name="Emonth" class=input size="2"maxlength="2">月<input type=text name="Eday" class=input size="2"maxlength="2">日<input type=text name="Ehour" class=input size="2"maxlength="2">时<input type=text name="Eminute" class=input size="2"maxlength="2">分*</td><tr><td bgcolor="#00ff00"><p align="center">小时数</p><td><input type=text name="hours" class=input size="4"maxlength="100">*</td> <tr><td bgcolor="#00ff00"><p align="center">请假原因</p><td><textarea name=cause rows=5 cols=60 maxlenth="30"maxlength="100"></textarea></td></table><input type=submit value="提交" name="add"> <input type=reset value="重写" name="clear"> </form></body></html>(3)请假信息录入数据库的主要JSP代码(restwrite.jsp)<html><head><title>请假的写入</title></head><body bgcolor="#ffffff" text="#000000"><jsp:useBean id="db" scope="page" class="opendb.opendb"/><% String personID=(String)session.getAttribute("personID"); String Syear=request.getParameter("Syear"); Syear=Syear.trim(); String Smonth=request.getParameter("Smonth");Smonth=Smonth.trim();String Sday=request.getParameter("Sday");Sday=Sday.trim();String Shour=request.getParameter("Shour");Shour=Shour.trim();StringSminute=request.getParameter("Sminute");Sminute=Sminute.trim();StringEyear=request.getParameter("Eyear");Eyear=Eyear.trim();String Emonth=request.getParameter("Emonth");Emonth=Emonth.trim();StringEday=request.getParameter("Eday");Eday=Eday.trim();String Ehour=request.getParameter("Ehour");Ehour=Ehour.trim();StringEminute=request.getParameter("Eminute");Eminute=Eminute.trim();int hours=Integer.parseInt(request.getParameter("hours");String cause = new String(request.getParameter("cause").getBytes("ISO8859-1"),"gb2312"); /String Adate; /Date usertime=new Date(); /Adate=(String)usertime.getTime(); String Sdate;Sdate=Syear+Smonth+Sday+Shour+Sminute;String Edate;Edate=Eyear+Emonth+Eday+Ehour+Eminute; String sql="" sql=sql+"insert into wglMESSAGE "sql=sql+"(EMP_CODE,"sql=sql+"M_STIME,"sql=sql+"M_ETIME,"sql=sql+"M_HOURS,"sql=sql+"M_CAUSE,"sql=sql+"M_TIME)"sql=sql+" values("sql=sql+"'"+ personID +"'," sql=sql+"'" + Sdate + "',"sql=sql+"'"+ Edate + "',"sql=sql+"" + hours + ","sql=sql+"'" + cause + "',"sql=sql+"getdate()"ResultSet rs=db.executeQuery(sql);%><p align="center">您已经提交成功!</p><p align="center"><a href="userBack.jsp">返回</a></p> </body></html>个人请假信息查询模块功能:查询个人的请假时间,小时数,原因,申请时间,公司领导批示内容。(1) 个人请假信息查询模块IPO图 输入:点击个人请假信息查询链接。 处理: 1)显示个人请假信息。页面从Session中取得用户名代码,然后检索员工信息表和请假信息表,检索出个人请假的时间,小时数,原因,申请时间,公司领导批示内容。 2)所有查询结果都以列表方式显示,清晰明了。 输出:个人请假的时间,小时数,原因,申请时间,公司领导批示内容。进入如图6所示界面图6 查询结果界面Picture 6 interface for inquiring result(2) 个人请假信息查询部分代码实现(restUser.jsp) <% while(rs.next() String personname=rs.getString("EMP_NAME");String Stime=rs.getString("M_STIME"); Stime=Stime.trim();String Syear=Stime.substring(0,4);String Smonth=Stime.substring(4,6);StringSday=Stime.substring(6,8