张丽娜
(太原学院机电工程系,山西 太原 030032)
员工技能管理WEB系统主要是一个针对公司员工技能考核管理的系统,该系统主要有员工信息录入,员工信息查询(精确查询,模糊查询均可),员工详细信息查看,员工信息的更新,以及员工信息的删除等几大功能。其中员工的信息则主要包括了:现等级,社内资格,日语能力等级,技术能力等级,设计能力等级,管理能力等级,环境能力等级,以及日本语资格,技术资格等内容。该系统的实现采用了MVC模式和MS ACCESS数据库,以 tomcat为服务器,使用了 JavaBeans,Jsp,Servlet,JavaScript等技术。
通过员工技能管理WEB系统对员工技能及资格的考核评估,公司能对一位员工的技术能力有一个全面详尽的了解,并能对之做一个较为精确的定位。这些考核评估的结果,可以给公司对员工的加薪及提升提供一个较为可靠的依据。
员工技能管理WEB系统实现的主要功能如下:
(1)员工的注册
员工在本系统中拥有一个唯一的编号(员工编号),只有在员工编号不存在或从未被使用的时候,才允许注册。注册成功时,系统会提示用户注册已成功。
(2)根据条件查询员工部分信息本系统支持模糊查询。
(3)查询员工的详细信息
在查询到员工部分信息的基础上查询员工的详细信息。
(4)更新员工信息
除了员工编号以外的信息均可更改,更新成功时,系统会提示用户更新成功。
(5)删除员工信息
本系统的删除操作为逻辑删除而非物理删除。删除成功时,系统会提示用户删除成功。
系统功能模块如图1所示:
图1 系统功能模块图
这是一个Web应用程序,用Java实现这样一个系统,很显然不能只使用标准的Java。整个系统采用了Jsp/Servlet模型[1]。先由客户端(浏览器)向服务器(运行tomcat服务器软件)发出对某个Jsp页面的请求,此时服务器将在dopost方法中遵照事先设计好的程序逻辑流程对客户端的这个请求进行响应,也就是说转向客户端所请求的某个Jsp页面。若客户端是第一次请求该页面,则服务器端的服务器软件Tomcat会先将该Jsp页面转译成Servlet java文件,在对该Java文件进行编译,将其编译为Class文件,并运行Class文件。若客户端不是第一次请求该Jsp页面,则服务器(Tomcat)会在其work文件夹中,找到该Jsp页面所对应的已编译好的class文件,并运行该Class文件。最后将运行结果与jsp页面原有的html标记文本部分合为新的Html标记文本,然后将此静态的html文本传到客户端,由浏览器进行解释,最终将内容显示给客户。客户端获取Jsp页面后,若再页面上进行操作,触发了某数据库操作事件,则客户端回将该事件请求发送给服务器端,运行在服务器端的Servlet程序,将在srvice方法中遵照事先设计好的程序逻辑流程对客户端的这个请求进行响应,也即是调用相关的处理机制(Java文件)对数据库进行具体操作,然后将结果返回到客户端[2]。其整个流程如图 2所示。
图2 Jsp/Servlet模型流程图
设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。目前,在大多数Browser/Server结构的Web应用中,浏览器直接通过HTML或者JSP的形式与用户交互,响应用户的请求。虽然很直观,但是大多数管理信息系统操作的数据量都是惊人的,随着代码的增多会使JSP页面臃肿不堪,Web服务器的负荷过重。因此,在中间层上采用基于模型视图控制(MVC.Model-View -Controller)的设计模式[3]。
在设计Servlet和JSP构建基于WEB的员工技能管理系统时,按照MVC的设计模式将Servlet、JSP和JavaBean三者结合起来。把Servlet用作应用程序的控制器,把JSP文档作为视图,JavaBeans被用来表示模型。所有的请求都被发送给作为控制器的Servlet,它接受请求,并根据请求信息将它们分发给适当的JSP来响应。同时,Servlet还根据JSP的需求生成JavaBeans的实例并输出给JSP环境。JSP可以通过直接调用方法或使用UseBean的自定义标签得到JavaBeans中的数据。这种MVC设计模式把用户界面设计、流程控制和事务逻辑进行了分离,很好地实现了数据层与表示层的分离,使得程序设计的过程更清晰,提高了可复用程度,并使开发工作更加容易和迅速[4]。实现模式如图3所示:
图3 系统模式设计图
(1)从MVC的概念来看,员工技能管理系统可以分成三部分。
* 模型(M):数据库操作,封装程序数据的结构及其操作,生成数据集。
*视图(V):获取模型处理后返回的数据集,将数据显示在页面上。
* 控制(C):实现页面的正确跳转及各画面的业务逻辑。
(2)三部分已经出来,下面是更进一步的细化。
* 模型(M):
数据库操作:数据库的连接和关闭,连接失败处理。
数据操作:生成固定格式的数据集,运行SQL语句,解析固定格式的数据集更新数据库(内容包括有:注册员工信息,得到检索结果集,更新员工信息,删除员工信息)。
文件操作:将提示信息和error信息封装成数据集,并附读取文件操作(内容包括有:读取提示信息和error信息)。
* 视图(V):
数据显示:根据要求授权给控制器(C)向模型(M)请求数据集,然后根据数据集显示出界面。
操作结果显示:根据控制返回的数据资料决定显示的提示资料。
* 控制(C):
数据/文件操作:接收请求并引用模型的生成数据集类生成指定数据集,然后交给相应的模型操作方法处理,然后再确定用哪个视图来显示模型处理返回的数据集。
(3)系统基本上细化完毕,下一步就是将以上分析出来的结果封装成class。
* 模型(M):
·用于页面传递信息的数据可以封装成一个JavaBean类。
·用于检索页面存放检索结果的数据可以封装成一个JavaBean类。
·输入数据的检验可以封装成一个类。
·读取提示信息和error信息的文件操作可以封装成一个类。
·数据库的连接和关闭可以封装成一个类。
·将数据集转化成模型(M)合适的SQL句及数据的查询、添加、更新、删除操作可以封装成一个类。
* 视图(V):
·视图部分可均以JSP文件模式出现。
* 控制(C):
·实现页面跳转可以封装成一个类。
·接受控制器的请求并引用模型的生成数据集类生成指定数据集,以及各页面的业务逻辑处理可以封装成一个类。
结合员工技能管理WEB系统的需求分析,本系统设计的模型(Model)有两个JavaBeans,一个DataBean,用于保存数据和传递数据,一个ListDataBean,用于存储数据库查询结果每一项的具体信息。
Model中JavaBean,封装了一些属性和方法,具体到本系统的这两个JavaBean,它封装员工各项信息作为属性并且作为私有类型,比如员工编号,姓名,拼音/罗马字等等,都分别作为一个私有属性,另外还封装了一系列的 getXXX()和setXXX()方法,在get方法中得到相应的属性值,在set方法中修改相应的属性值,这些方法为用户得到或修改属性值提供了一个接口,避免用户直接对属性进行操作,也就是说用户只能通过这些接口来访问属性。
视图模块在本系统中主要是用JSP来实现,在后期实现过程中,还加入了JavaScript实现一些辅助功能。JSP页面使用jsp:useBean实例化JavaBeans并于Servlet处理生成的JavaBeans绑定,然后使用jsp:getProperty输出bean的属性。JSP页面并不创建或修改bean;它只是提取并显示由servlet创建的数据。
该画面模块的主要功能是根据不同的条件对数据库中的员工信息进行检索,显示出所有符合条件的员工信息,并可在查询结果中选中一条信息,在详细画面查看其详细信息,在更新/删除画面进行更新或删除操作.这些就要求在这个画面使用三个JavaBeans,其中一个保存用户输入的查询条件,以保证从详细画面和更新/删除画面返回回来的时候,还显示用户之前输入的查询条件,这样方便用户的再查询,一个保存数据库的查询结果,一个用于给详细画面和更新/删除画面传递某一员工的所有信息。
控制器的流程控制部分Skill_WebServlet首先从请求对象中取action参数,根据此参数决定需要调用的控制器的业务逻辑部分handler,在handler调用相应的模型JavaBeans,并根据此参数决定需要传给模型JavaBeans的参数。
本文分析和设计了基于MVC模式的员工技能管理WEB系统,着重介绍了该系统的结构设计和模式设计,以及各模块的实现。该系统有助于企业通过网络实现人力资源分布式网络化管理,将人力资源管理过程信息化、系统化、数字化。
[1]Jayson Falkner,Ben Galbraith,Romin Irani.JSP WEB编程指南[M].北京:电子工业出版社,2002.
[2]Marty Hall,Larry Brown.Servlet与 JSP 核心编程[M].北京:人民邮电出版社,2003.
[3]George Reese.JDBC与 JAVA 数据库编程[M].北京:中国电力出版社,2002.
[4]Brucew.Perry.JAVA SERVLET&JSP 经典实例[M].北京:中国电力出版社,2004.