资源描述
毕 业 论 文(设计)用 纸佳 木 斯 大 学毕业论文设计论文题目: 基于Struts的人力资源管理系统 学 院: 信息电子技术 专 业:生物医学工程 学生姓名: * 学 号: 0409024211 指导教师: 职 称: 高级实验师 助教 2008年 6月 8日佳木斯大学教务处 第 1 页摘要 随着计算机信息技术及网络通讯技术的飞速发展,企业所处的外部环境发生了前所未有的变化,企业间的竞争日趋激烈,而竞争的主要因素是人才的竞争,人力资源成为企业中最宝贵的资源。但由于传统的管理方式的落后,不但浪费了人力,物力和时间,又不能完全的向员工开放,提高员工的积极性,极大的发挥他们的潜力。 因此,开发一个功能强大的人力资源管理系统显得十分必要。本文主要研究采用JSP+Struts+Hibernate技术开发的营口市纸制品有限公司人力资源管理系统.本系统采用浏览器/服务器(B/S)结构开发,选用经典的Struts作为开发架构 ,服务器采用Tomcat,与后台数据库的连接采用中间件Hibernate。本文主要介绍了系统的构成、系统的需求分析与设计,并给出了系统的实现方案及技术细节,包括运行环境的配置、数据库的建立及功能模块的实现细节等。关键字:人力资源;JSP; B/S; StrutsAbstractWith the computer information technology and network communications technology the rapid development of enterprises in which the external environment of unprecedented change, enterprises in the increasingly fierce competition, and competition is the major factor in the talent competition, human resources become the most valuable enterprises Resources. However, due to the traditional management methods are backward, not only a waste of manpower, resources and time, can not be fully open to staff, improve staff enthusiasm, great play to their potential. Therefore, the development of a powerful human resources management system is very necessary. This paper explore the use of JSP + Struts + Hibernate technology developed by the Yingkou Paper Products Co., Ltd. of human resources management system. This system uses the browser / server (B / S) structural development, selected as the classic Struts Framework, the server used Tomcat, And a background database connectivity middleware Hibernate. This paper describes the systems structure, systems analysis and design of the demand, and gives the system of programme and technical details, including the allocation of the environment, the establishment and functions of the database module, such as details of the realization ofKey Words: human resources ;JSP;B/S;Struts佳木斯大学教务处 第 II 页目录摘要IAbstractII第1章绪论11.1 课题研究背景11.2 课题研究意义11.3 国内外的状况3第2章 系统分析42.1 可行性分析42.1.1 技术可行性42.1.2 经济可行性42.1.3 社会可行性52.2 需求分析52.2.1应用需求分析52.2.2系统功能需求6第3章 系统设计93.1 系统总体设计93.2 设计思想103.3 数据库设计103.3.1数据需求分析113.3.2 E-R 图113.3.3逻辑结构设计153.4系统运行环境和开发工具183.4.1运行环境183.4.2开发工具183.5系统开发的主要技术193.5.1 JAVA简介193.5.2浏览器/服务器结构(B/S)193.5.3动态WEB技术JSP203.5.4 Tomcat应用服务器213.5.5框架技术213.5.5.1 Struts框架213.5.5.2 Hibernate框架22第4章 系统实现234.1 用户操作总体设计234.1.1 用户登录设计234.1.2 人员管理模块设计254.2 技术难点304.2.1 中文乱码304.2.2 HQL语言304.2.3 安全性30第5章 系统测试325.1 测试的定义及目的325.2 测试的方法325.2.1 界面测试325.2.2 功能测试335.2.3 需求测试345.3 人力资源管理系统的测试34总结36致谢37参考文献39附录 1 程序源代码40附录 2 程序使用说明书54附录 3 外文文献及其译文66 佳木斯大学教务处 第 页第 1 章 绪 论1.1 课题研究背景目前,网络的发展已呈现出商业化、全民化、全球化的趋势,网络已成为企业进行竞争的战略手段。企业经营的多元化拓展,企业规模的进一步扩大,对于企业的管理、业务扩展、企业品牌形象等提出了更高的要求。在以信息技术为支撑的新经济条件下,越来越多的企业利用起网络这个有效的工具。目前,全球范围内的企业内部组织正在发生巨变,未来企业成功的关键将主要依靠人力资源,人才之争已经成为市场竞争的核心内容之一,以人为本成为企业立足和发展的根本。有效地管理企业的人力资源,不仅能节省大量的人力物力,而且能够帮助企业制订计划,激发员工的积极性,充分发挥每员工的潜能,为企业创造更大的价值。营口市纸制品有限公司自建厂以来,在短短几年的时间里从一个只有几十人的小厂发展成一个拥有几百名员工的公司,在发展过程中公司原有的管理体制已经不能适应企业的发展,公司不断出现新的问题,同时对人力资源的管理也提出了新的要求.公司领导逐渐认识到人事管理的重要性,认识到企业的发展离不开优秀的人才和人力资源的有效配置,公司只有拥有先进的管理和优秀的人力资源,才能拥有未来的市场,才能提高企业的竞争力。本系统的开发不但能够改善公司原有的管理方式,把人力资源管理人员从繁重的手工劳动中解脱出来,而且通过人力资源的有效管理能够适时地制定公司的培训计划,根据员工的个人能力对其岗位进行调动,充分发挥员工自身的能力,为公司带来更大的经济利益。1.2 课题研究意义人力资源管理是指组织为了实现既定的目标,运用现代管理措施和手段,对人力资源的取得、开发、保持和运用等方面进行管理的一系列活动的总和。从上可知,人力资源管理的内涵至少包括以下内容:一是任何形式的人力资源开发与管理都是为了实现一定的目标,如个人家庭投资的预期收益最大化、企业经营效益最大化及社会人力资源配置最优化。二是人力资源管理必须充分有效地运用计划、规划、组织、指挥、监督、协调、激励和控制等现代管理手段才能达到人力资源管理目标。三是人力资源管理主要研究人与人关系的利益调整,个人的利益取舍、人与事的配合,人力资源潜力的开发、工作效率和效益的提高以及实现人力资源管理效益的相关理论、方法、工具和技术。四是人力资源管理不是单一的管理行为,必须使相关管理手段的相互配合才能取得理想的效果。例如,薪酬必须与绩效考核、晋升、流动等相配套。可见,人力资源管理的主要任务就是以人为中心,以人力资源投资为主线,研究人与人、人与组织、人与事的相互关系,掌握其基本理念和管理的内在规律,为充分开发、利用人力资源,不断提高和改善职业生活质量,充分调动人的主动性和创造性,促使管理效益的提高和管理目标的实现。人力资源管理与人事管理既有历史上的渊源关系,又有本质的区别。它们不仅仅是称谓的变换和职能部门名称的改变,而且有着下列区别:(1) 传统人事管理将事作为重心,把人降格为“执行指令的机器”,着眼于为人找位,为事配人。而人力资源管理则将人作为重心,把人作为第一资源,既重视以事择人,也重视为人设事,尤其对特殊的人力资源。(2) 传统人事管理将人视为组织的财产,部门所有、闲置和压抑等现象严重,只重拥有不重开发使用。现代人力资源管理将人力资源作为劳动者自身的财富。作为人力资本,它有增值的本能。因而个人、组织和社会均重视人力资源开发使用,一旦闲置和遭到压抑,则具有在市场机制作用下重新配置的本能。(3) 传统人事管理的主体是行政部门,管理制度受到领导人意志左右,个人、组织包括企业均是被动的接受者。而人力资源管理的主体也就是市场运行的主体,他们的行为受到市场机制的左右,遵循市场通行规则和人力资源管理自身特有的规律。(4) 传统人事管理的部门作为组织内的一个从事执行的职能部门,从事日常的事务性工作。而人力资源管理部门被纳入决策层,把人的开发、利用、潜能开发作为重要内容,鼓励成员参与管理,将人力资源管理部门作为组织战略决策的参与者。管理模式也由“垂直”模式过渡到“主体”模式。(5) 人力资源管理充分运用了当代社会学、心理学、管理学、经济学和技术学等学科的最新成果,更加强调管理的系统化、规范化、标准化以及管理手段的现代化,突出了管理者诸要素之间互动以及管理活动与内外部环境间的互动。从上述区分中可知,人力资源管理转变在未来将会出现以下发展趋势:一是管理原则上同时强调个人和集体;二是管理方法上同时强调理性与情感;三是在领导方式上同时强调权威与民主;四是在考核晋升上同时强调能力与资历;五是在薪资报酬上同时强调即时工资和长远收益。 1.3 国内外的状况20世纪70年代以来,随着全球竞争的日益激烈和人力资本作用的日益突出,发达国家的人事管理进入了一个新阶段,主要表现在: 企业首席执行官开始关注、重视有关人的管理工作,并由副总裁级的领导主管这方面的工作。企业对有关人员的管理方面的投资大幅度增长。 对人事工作者的资历和能力要求越来越高,其待遇也有较大改善;人事主管在组织决策层开始享有较大的发言权。 企业越来越重视各级管理者和员工的教育培训工作。在这一时期,人事管理开始向人力资源管理阶段发展,其职责范围大为扩展,受重视程度、对企业的贡献和作用以及在企业中的地位等也都有了很大提高。今后几年我国的各大中小型企业将有以下主要的发展趋势: 1.人力资源主管要将精力用在战略性的人力资源管理工作规划、人力资源配置、选人、育人、留人、用人的策略及制度建设等方面,不能将主要精力用在烦琐的人事和行政工作事务上。2.人力资源主管不仅要健全、完善人事管理制度,更重要的是有效地执行,并敢于坚持原则,敢于碰硬、坚持公开公平公正,坚持制度面前人人平等。3.人力资源部门是一个职能服务部门,如何让老板认识到企业各种目标的实现都与人力资源部的工作息息相关,这是人力资源主管发挥作用的主要方面。4.人力资源主管要想更好地在企业中发挥作用,必须熟悉企业生命周期的管理,并根据不同阶段、调整人力资源策略,对企业在什么时期用什么样的人,什么岗位用什么样的员工了如指掌,并为企业储备各类人才,建立人才梯队。5.人力资源主管发挥作用重要的一环是沟通交流、协调的艺术,涉及到三个方面:一是和老板(顶头上司)的沟通,让老板认识到人力资源工作的重要性,以得到支持。第 2 章 系统分析2.1 可行性分析2.1.1 技术可行性技术可行性:本系统主要采用JSP技术开发,使用Struts 实现MVC框架的设计,与后台数据库的连接采用Hibernate。由于JSP的动态内容是Java 代码实现的,而Java 又具有一次编写多处运行的特点,因此采用JSP开发的系统具有平台无关性,可以在不同的操作系统上运行。Struts是一种基于MVC经典设计模式的框架,在当前Web开发中已经发展得比较成熟. 它可以最大限度地实现组件的复用,具有很好的可重用性和可扩展性,有利于项目的扩展和二次开发。Hibernate本质上是一个面向Java开发环境的对象/关系数据库映射工具,借助Hibernate对象/关系数据库映射技术,可以非常轻松地将以面向对象思想封装的对像的各个状态数据映射到基于SQL的关系模型数据结构中去.由于本系统所采用的技术已经发展得比较成熟,因此本系统在技术上是可行的。2.1.2 经济可行性经济可行性:随着计算机技术的飞速发展和企业间竞争的加强,目前计算机的硬件和软件的价格非常低廉,因此本系统的开发和运行不需要花费很大的成本。但是本系统运行将会为企业带来很大的经济利益,主要表现在以下几个方面:一,本系统可以代替人工进行许多复杂、重复的信息的记录和统计工作;二,管理人员可以方便的的对公司的员工、人才的招骋、培训计划、员工薪金等进行管理;三,普通员工可以方便的从本系统了解到公司的培训计划、奖惩信息、个人薪金等信息;因此,本系统在经济上是可行的。2.1.3社会可行性目前,全球范围内的企业内部组织正在发生巨变,未来企业成功的关键将主要依靠企业人力资源。有效地管理企业的人力资源,为企业提供强有力的储备力量将成为企业发展的主动力。通过人力资源的有效管理能够激发员工的积极性,充分发挥每个员工的潜能,为企业创造更大的价值。因此本系统的开发是适应时代发展的。2.2 需求分析需求分析是软件开发最基本的,也是最重要的一点。它是所有开发设计的前提,要是在没有搞清用户需求之前,就动手设计编程,其后果是无论程序做的如何精妙都是徒劳的。需求分析的基本任务的准确的回答“系统必须做什么?”。虽然在可行性分析阶段已经粗略了解了用户的需求,但可行性研究的基本目的是用较小的成本在较短的时间内确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量,因此,必须对软件需求分析进行严格的审查分析。2.2.1应用需求分析营口市纸制品有限公司现拥有几百名员工,传统的手工人事管理管理已经不能适应企业的发展,公司在管理方面面临严重的问题。人事管理体制部门要花费大量的人力、物力来管理员工的信息、薪金等情况,既浪费了时间、又浪费人力和物力,而且数据的准确性低。同时,由于管理制度的落后,有些员工表现出对工作不积极,在工作中偷懒、违反公司制度等情况。因此,开发一个操作简单、功能强大的人力资源管理系统是十分必要的。2.2.2系统功能需求由于本系统存储了关于公司的很多重要的信息,因此对于本系统的管理需要考虑的关键就是安全的问题。本系统通过对不同的用户设置不同的访问权限来保证数据库的安全,管理员可以对系统进行增加、删除、修改等操作,而对于普通的用户,只能浏览一些信息,不能执行任何的修改数据库信息的操作。为了实现企业对员工的有效管理,在管理员的访问权限内本系统需要完成以下功能:对公司员工信息进行管理, 对应聘人才信息及人才库的管理,公司培训计划的制定与实施, 对员工薪金进行管理, 对员工奖惩信息的管理;具体的功能图请参见2-1。管理员添加人员信息添加应聘信息添加人才库添加培训计划添加薪金管理添加奖惩制度图2-1 管理员的功能图对于普通的用户,本系统需要完成以下功能:浏览培训计划,查看培训总结,查看个人薪金,浏览奖惩信息;具体的功能图请参见图2-2。普通用户浏览培训计划查看培训总结浏览薪金列表浏览奖惩信息图2-2 普通用户的功能图按系统分模块并给出各模块的功能图:人员管理模块包括:浏览和添加用户,如图2-3。人员管理添加人员信息浏览人员信息图2-3 人员管理功能图招聘管理模块包括:浏览招聘信息、添加招聘信息、浏览人才库,如图2-4 。招聘管理添加应聘信息浏览应聘信息浏览人才库图2-4 招聘管理功能图培训管理模块包括:浏览培训计划、添加培训计划、察看培训总结, 。薪金管理模块:浏览薪金和添加薪金,如图2-5 。薪金管理浏览薪金列表添加薪金数据图2-5 薪金管理功能图奖惩管理模块: 添加和浏览奖惩制度,如图2-6。奖惩管理浏览奖惩信息添加奖惩信息图2-6 奖惩管理功能图第3章 系统设计3.1 系统总体设计为实现需求分析提及的各种功能本系统主要由五部分组成,分别是人员管理、招骋管理、薪金管理、培训管理、奖惩管理,规划系统功能模块如下:人力资源管理系统人员管理招聘管理培训管理薪金管理奖惩管理浏览人员信息添加人员信息浏览招聘信息添加应聘信息浏览人才库浏览培训计划添加培训计划查看培训总结浏览薪金列表浏览奖惩制度添加薪金管理添加奖惩制度图3-1 人力资源管理系统结构图人员管理模块:该模块主要功能是对员工基本信息进行管理。管理员登录以后可以浏览、查询公司内员工的基本信息和他们的详细信息,如果有新的员工进入公司,管理员可以添加新员工的信息,并且可以对信息进行修改。招聘管理模块:该模块主要是对公司的应聘人员信息、公司人才库进行管理。管理员可以添加应聘人员的信息到数据库中,并且可以根据需要进行详细的查看或者删除。管理人员还可以把比较优秀的适合公司招聘要求的应聘者添加到公司的人才库中。培训管理模块:该模块主要是对企业的培训计划、培训实施、培训总结等信息进行管理。管理人员可以根据公司发展的需要适时的制定公司的培训计划,根据计划实施的情况进行培训的总结。普通用户进入系统以后可以查看到公司的培训计划和培训总结,了解公司对员工的培训情况。薪金管理模块:该模块主要功能是对员工薪金信息进行管理。管理员负责录入员工薪金的各项信息,由系统自动进行统计,管理员有权限浏览员工薪金信息并且可以对信息进行修改或者删除,而普通用户只能浏览到自己的薪金信息。 奖惩管理模块:该模块主要功能是对公司的奖惩信息进行管理。管理员和普通用户都可以浏览到公司的奖惩信息,但是只有管理员可以根据公司的奖惩决议添加员工的奖惩信息,并且可以对信息进行修改或删除。3.2 设计思想 随着Web开发技术的日益成熟,在Web开发领域中出现了许多设计好的软件开发框架,Struts就是一种基于MVC经典设计模式的框架,.它实际上是建立在Model2基础对Model,View和Controller都提供了现成的实现组件.本系统主要采用JSP技术开发,使用Struts 实现MVC框架的设计,与后台数据库的连接采用Hibernate。由于JSP的动态内容是Java 代码实现的,而Java 又具有一次编写多处运行的特点,因此采用JSP开发的系统具有平台无关性,可以在不同的操作系统上运行。Struts是一种基于MVC经典设计模式的框架,在当前Web开发中已经发展得比较成熟. 它可以最大限度地实现组件的复用,具有很好的可重用性和可扩展性,有利于项目的扩展和二次开发。Hibernate本质上是一个面向Java开发环境的对象/关系数据库映射工具,借助Hibernate对象/关系数据库映射技术,可以非常轻松地将以面向对象思想封装的对像的各个状态数据映射到基于SQL的关系模型数据结构中去.由于本系统所采用的技术已经发展得比较成熟,因此本系统在技术上是可行的。 3.3 数据库设计数据库设计是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。3.3.1数据需求分析根据系统需求,可以列出以下数据表:(1)用户表:保存系统的用户信息,数据项包括用户ID、用户名、密码、性别、真实姓名、创建时间、是否管理员(2)培训信息表:用来保存公司的培训信息,数据项包括培训ID、培训名称、培训目的、培训开始时间、培训结束时间、培训人员、培训讲师、创建时间、培训影响度、培训材料。(3)应聘信息表:存储公司应聘人员的信息,数据项包括应聘ID、姓名、性别、年龄、应聘职位、所学专业、工作经验、毕业院校、电话、Emai地址、创建时间、详细经历、是否入库。(4)奖惩信息表:存放公司员工的奖惩信息,数据项包括奖惩ID、奖惩名称、奖惩原因、奖惩说明、创建时间。(5)薪金表:保存员工的薪金信息,数据项包括薪金ID、员工姓名、基本薪金、饭补、房补、全勤奖、赋税、额外补助、罚款、发放时间、总计。3.3.2 E-R 图在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好的更准确的用数据库管理系统实现这些需求。根据需求分析的内容用E-R图分别表示出各个实及其属性,以及用E-R图表示实体之间的关系,如图所示: 培训名称开始时间结束时间人员创建时间影响度材料目的讲师 图3-2 培训信息实体属性 应聘 姓名性别年龄应聘职位所学专业工作经验是否入库毕业学校电话电子邮件创建时间详细经历 图3-3培训信息实体属性 奖惩奖惩名称奖惩原因奖惩说明创建时间 图3-4 奖惩信息实体属性薪金基本薪资员工姓名饭补房补全勤奖赋税额外补助罚款发放时间总计 图3-5 薪金信息实体属性用户 密码性别真实姓名创建时间用户名是否管理员 图3-6 用户信息实体属性员工薪金11领取图 3-7员工实体与薪金信息实体之间的联系图 3-8 员工信息实体与培训信息实体之间的联系员工培训nn参加图 3-9 员工信息实体与奖惩信息实体之间的联系员工奖惩nn获得员工领取获得参加奖惩培训薪金11nnnn图3-10 E-R图3.3.3逻辑结构设计表3-1 培训信息表educate字段名数据类型长度是否主键备注idint4Y培训IDnamevarchar100N培训名称purposevarchar500N培训目的begintimedatetime8N培训开始时间endtimedatetime8N培训结束时间datumvarchar2000N培训人员teachervarchar50N培训讲师createtimedatetime8N创建时间effectvarchar500N培训影响度summarizevarchar2000N培训材料说明: 培训信息表是用来存储公司的培训信息。培训ID是此表的主键,用来唯一标识一条培训记录,其它字段用来记录培训的详细信息。表3-2 应聘信息表job字段名数据类型长度是否主键备注idint4Y应聘IDnamevarchar50N姓名sexbit1N性别ageint4N年龄jobvarchar50N应聘职位specialtyvarchar50N所学专业experiencevarchar50N工作经验schoolvarchar50N毕业学校telvarchar50N电话emailvarchar50N电子邮件createtimedatetime8N创建时间contentntextN详细经历isstockbit1N是否入库说明: 应聘信息表是用来存储公司应聘人员的信息的。应聘ID 是应聘表的主健,用来唯一标识一条应聘记录,因为应聘者有可能重名,因此在此表中不能用应聘者的姓名作为主键。isstock字段用来标识应聘者是否加入到公司的人才库中。表3-3 奖惩信息表- institution字段名数据类型长度是否主键备注Idint4Y奖惩IDnamevarchar50N奖惩名称reasonvarchar100N奖惩原因explainvarchar2000N奖惩说明createtimedatetime8N创建时间说明: 奖惩信息表是用来存放员工的奖惩信息,奖惩ID是奖惩表的主健,用来唯一标识一条奖惩记录。name,reason,explain,createtime用来记录奖惩的详细信息。表3-4 薪金表stipend字段名数据类型长度是否主键备注idint4Y薪金IDnamevarchar50N员工姓名basicfloat8N基本薪资eatfloat8N饭补housefloat8N房补dutyfloat8N全勤奖scotfloat8N赋税punishmentfloat8N额外补助otherfloat8N罚款granttimedatetime8N发放时间totalizedouble8N总计说明:薪金表是用来保存员工的薪金信息。薪金ID是薪金表的主健,用来唯一标识一条记录。basic,eat,house,duty等字段记录了员工薪金的各项信息,totalize字段是系统根据薪金的各项信息自动生成的。表3-5用户表user字段名数据类型长度是否主键备注idint4Y用户IDusernamevarchar50N用户名passwordvarchar50N密码sexbit1N性别rnamevarchar50N真实姓名createtimedatetime8N创建时间isadminbit1N是否管理员说明:用户表是用来保存系统用户的基本信息。用户ID是用户表的主健,用来唯一标识一条记录,其数据类型为自动编号,递增数为1。username字段为用户名,记录用户登陆名称,该字段的记录值是唯一的,不允许有重复,通过该字段也能唯一标识一条记录。isadmin字段用来标识用户是否是管理员,通过该字段可以设置用户的权限。3.4系统运行环境和开发工具3.4.1运行环境硬件需求: PIII/256M/10G 及以上配置,要求为系统分配足够的数据库磁盘空间推荐配置: PIV 2G/512M/40G操作系统需求: Windows2000及以上操作系统 ( 推荐 ) ,也可以使用 Sun Solaris 等 Linux 操作系统数据库软件需求: mysql 数据库 ( 推荐 ) ,也可以使用 Oracle 数据库中间件软件需求:tomcat系列服务器3.4.2开发工具Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。3.5系统开发的主要技术3.5.1 JAVA简介 Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统。3.5.2浏览器/服务器结构(B/S)伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系统。过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题:1. 系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。2. 在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。B/S模式带来了巨大的好处:a) 开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。b) 良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。3.5.3动态WEB技术JSP JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点:a) 将业务层与表示层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;b) 能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务;c) 组件的开发和使用很方便:如ASP的组件是由C+,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用;d) 一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括Write once , Run everywhere.3.5.4 Tomcat应用服务器目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。 Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。3.5.5框架技术3.5.5.1 Struts框架 Struts是一个为开发基于模型(Model)视图(View)控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和custom tag library构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架.3.5.5.2 Hibernate框架Hibernate通过持久层的框架将数据库存储从服务层中分离出来,它是O/R Mapping的一种实现是目前在JAVA界使用非常广泛的O/R Mapping的一种实现,可以实现关系型数据库和对象之间的映射。用来开发数据库系统非常方便,可以将数据库和程序的设计融合在一起。表现层和服务层的分离是通过两种框架达到目的的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来就是其目的,持久层框架有两种方向:直接自己编写JDBC等SQL语句(如Ibatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。Hibernate的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一 些基本类,就可以达到使用数据库的目的。例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。Hibernate提供的HQL是一种类SQL语言,是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于标准的SQL第 4 章 系统实现4.1 用户操作总体设计用户操作主要包括用户登录和人员管理模块,具体功能如下:用户登录:用于登录系统。人员管理模块:用于浏览、添加和修改人员信息。4.1.1 用户登录设计用户登录是用户进入主页面的入口,其运行结果如图4-1所示。 图4-1 用户登录运行结果系统登陆是人力资源管理中最先使用的功能,因为用户登陆在数据库中使用的是人员表,人员表中有一个isadmin字段,是来标识是否是管理员的。在登陆时要根据数据库的这个字段来判断此用户是否具有管理员的权限。在网页里添写用户名和密码后点击登陆按钮,网页会访问一个URL,这个URL是“logon.do?action=logon”,这个action的name属性的值是usersForm,它是Struts的ActoinForm的实现类在配置文件中的名字,如下所示:action是Struts的Action的URL,他们在Struts的配置文件中都是已经配好的,如下所示: 在这个配置文件中,可以了解到如下信息:根据name=userForm可以找到与之相对应的ActionForm的实现类“com.bOS.bPRO_PersonManage.actionform.UsersForm”。根据type=com.bOS.bPRO_PersonManage.action.UsersAction可以找到处理用户数据的Action类。根据和可以了解,这个Action返回success时,页面会被转到manage.jsp文件,这就是登陆成功的页面。如果当Action返回failed时,页面会被转到failed.jsp文件,这个文件是当用户登陆失败将要转到的页面。Struts的UserAction实现类的execute()方法是最先被执行的,这个方法本身也没有具体的事务,而是根据action的参数不同执行相应的方法。在登陆页里面可以找到有一个“action=logon”的字样,它的目的就是在这里做逻辑判断。当action=logon时调用logon()方法。logon()方法从UsersForm中得到用户提交的数据,然后在调用UsersDao()的logonUsers()方法。并且把UsersForm转成Users类做为logonUsers()方法的参数。调用后会返回一个boolean型的值。如果为真,则返回“mapping.findForward(success);”否则返回“mapping.findForward(failed);”也就是当用户登陆成功后,返回给用户登陆成功的页面,登陆失败后返回用户一个登陆失败的页面。那么UsersDao的logonUsers()方法是根据什么得到的返回值呢,现在就让我们看看这个方法, 这个方法先通过HibSessionFactory得到一个Hibernate的Session并且开始一个事务,Session再像使用一个欲编译似的命令似的东西,设定参数、提交事务和最后在关闭Session.。得到一个List里面就存储着所有查询出的结果。根据这个结果就可以判断出该用户是否有登陆的权根了,在返回true 或者false。就这样合法的用户就可以顺利的登陆了。那刚才那些有些类似于欲编译的东西是什么呢,这些就是Hibernate特有的查询语言,被称为Hibernate 查询语言(HQL),而它本身也就是使用的JDBC的欲编译技术。4.1.2 人员管理模块设计人员管理模块主要包括浏览人员信息、添加人员信息、人员信息的删除、人员信息的修改。此模块文件架构如图4所示。各项管理工作都是在用户成功登陆后的管理页面进行的,在管理控制页面的左侧是各项的相关链接,右侧是操作平台。单击“添加人员信息”,即打开添加人员信息的页面如图4-2所示。图4-2 添加人员信息页面添加人员信息的链接是这样的,如下所示:添加人员信息在Struts配置文件中,添加人员信息的链接没有使用ActionForm类,也没有使用Action的实现类,如下所示: adduser.jsp文件,只是一个普通的JSP文件,但是它的表单元素都是与UsersForm相对应的,UsersForm如下所示:UsersForm类中的reset()方法作用是当用户点击“重置”按钮时,清空input输入框的内容,toString()方法覆盖了Object和toString()方法,populate()方法很有,它把UsersForm转化成Users实体类,大大方便了程序在对数据库操作时使用的方便。而且这个方法中还把用户的生日等表单元素的值由字符型转成日期类型。在adduser.jsp页面中的action上可以看到它要提交的URL,如下所示:配置文件中modifyuser的Action实现类是“com.bOS.bPRO_PersonManage.action.UsersAction”,如下所示:在UsersAction找到参数action等于adduser时所调用的方法addUsers(),它只是把从UserForm表单转化成的User类做为参数传给了UsersDao的addUsers()方法。在由这个方法向数据库添加人员信息,如下所示: public void addUsers(Users users) throws HibernateException users.setCreatetime(new java.util.Date(); Session session = HibSessionFactory.currentSession(); Transaction
展开阅读全文