張麗娜
(太原學院機電工程系,山西 太原 030032)
員工技能管理WEB系統(tǒng)主要是一個針對公司員工技能考核管理的系統(tǒng),該系統(tǒng)主要有員工信息錄入,員工信息查詢(精確查詢,模糊查詢均可),員工詳細信息查看,員工信息的更新,以及員工信息的刪除等幾大功能。其中員工的信息則主要包括了:現(xiàn)等級,社內(nèi)資格,日語能力等級,技術(shù)能力等級,設(shè)計能力等級,管理能力等級,環(huán)境能力等級,以及日本語資格,技術(shù)資格等內(nèi)容。該系統(tǒng)的實現(xiàn)采用了MVC模式和MS ACCESS數(shù)據(jù)庫,以 tomcat為服務(wù)器,使用了 JavaBeans,Jsp,Servlet,JavaScript等技術(shù)。
通過員工技能管理WEB系統(tǒng)對員工技能及資格的考核評估,公司能對一位員工的技術(shù)能力有一個全面詳盡的了解,并能對之做一個較為精確的定位。這些考核評估的結(jié)果,可以給公司對員工的加薪及提升提供一個較為可靠的依據(jù)。
員工技能管理WEB系統(tǒng)實現(xiàn)的主要功能如下:
(1)員工的注冊
員工在本系統(tǒng)中擁有一個唯一的編號(員工編號),只有在員工編號不存在或從未被使用的時候,才允許注冊。注冊成功時,系統(tǒng)會提示用戶注冊已成功。
(2)根據(jù)條件查詢員工部分信息本系統(tǒng)支持模糊查詢。
(3)查詢員工的詳細信息
在查詢到員工部分信息的基礎(chǔ)上查詢員工的詳細信息。
(4)更新員工信息
除了員工編號以外的信息均可更改,更新成功時,系統(tǒng)會提示用戶更新成功。
(5)刪除員工信息
本系統(tǒng)的刪除操作為邏輯刪除而非物理刪除。刪除成功時,系統(tǒng)會提示用戶刪除成功。
系統(tǒng)功能模塊如圖1所示:
圖1 系統(tǒng)功能模塊圖
這是一個Web應(yīng)用程序,用Java實現(xiàn)這樣一個系統(tǒng),很顯然不能只使用標準的Java。整個系統(tǒng)采用了Jsp/Servlet模型[1]。先由客戶端(瀏覽器)向服務(wù)器(運行tomcat服務(wù)器軟件)發(fā)出對某個Jsp頁面的請求,此時服務(wù)器將在dopost方法中遵照事先設(shè)計好的程序邏輯流程對客戶端的這個請求進行響應(yīng),也就是說轉(zhuǎn)向客戶端所請求的某個Jsp頁面。若客戶端是第一次請求該頁面,則服務(wù)器端的服務(wù)器軟件Tomcat會先將該Jsp頁面轉(zhuǎn)譯成Servlet java文件,在對該Java文件進行編譯,將其編譯為Class文件,并運行Class文件。若客戶端不是第一次請求該Jsp頁面,則服務(wù)器(Tomcat)會在其work文件夾中,找到該Jsp頁面所對應(yīng)的已編譯好的class文件,并運行該Class文件。最后將運行結(jié)果與jsp頁面原有的html標記文本部分合為新的Html標記文本,然后將此靜態(tài)的html文本傳到客戶端,由瀏覽器進行解釋,最終將內(nèi)容顯示給客戶??蛻舳双@取Jsp頁面后,若再頁面上進行操作,觸發(fā)了某數(shù)據(jù)庫操作事件,則客戶端回將該事件請求發(fā)送給服務(wù)器端,運行在服務(wù)器端的Servlet程序,將在srvice方法中遵照事先設(shè)計好的程序邏輯流程對客戶端的這個請求進行響應(yīng),也即是調(diào)用相關(guān)的處理機制(Java文件)對數(shù)據(jù)庫進行具體操作,然后將結(jié)果返回到客戶端[2]。其整個流程如圖 2所示。
圖2 Jsp/Servlet模型流程圖
設(shè)計模式是面向?qū)ο蟮某绦蛟O(shè)計人員用來解決編程問題的一種形式化表示。目前,在大多數(shù)Browser/Server結(jié)構(gòu)的Web應(yīng)用中,瀏覽器直接通過HTML或者JSP的形式與用戶交互,響應(yīng)用戶的請求。雖然很直觀,但是大多數(shù)管理信息系統(tǒng)操作的數(shù)據(jù)量都是驚人的,隨著代碼的增多會使JSP頁面臃腫不堪,Web服務(wù)器的負荷過重。因此,在中間層上采用基于模型視圖控制(MVC.Model-View -Controller)的設(shè)計模式[3]。
在設(shè)計Servlet和JSP構(gòu)建基于WEB的員工技能管理系統(tǒng)時,按照MVC的設(shè)計模式將Servlet、JSP和JavaBean三者結(jié)合起來。把Servlet用作應(yīng)用程序的控制器,把JSP文檔作為視圖,JavaBeans被用來表示模型。所有的請求都被發(fā)送給作為控制器的Servlet,它接受請求,并根據(jù)請求信息將它們分發(fā)給適當?shù)腏SP來響應(yīng)。同時,Servlet還根據(jù)JSP的需求生成JavaBeans的實例并輸出給JSP環(huán)境。JSP可以通過直接調(diào)用方法或使用UseBean的自定義標簽得到JavaBeans中的數(shù)據(jù)。這種MVC設(shè)計模式把用戶界面設(shè)計、流程控制和事務(wù)邏輯進行了分離,很好地實現(xiàn)了數(shù)據(jù)層與表示層的分離,使得程序設(shè)計的過程更清晰,提高了可復(fù)用程度,并使開發(fā)工作更加容易和迅速[4]。實現(xiàn)模式如圖3所示:
圖3 系統(tǒng)模式設(shè)計圖
(1)從MVC的概念來看,員工技能管理系統(tǒng)可以分成三部分。
* 模型(M):數(shù)據(jù)庫操作,封裝程序數(shù)據(jù)的結(jié)構(gòu)及其操作,生成數(shù)據(jù)集。
*視圖(V):獲取模型處理后返回的數(shù)據(jù)集,將數(shù)據(jù)顯示在頁面上。
* 控制(C):實現(xiàn)頁面的正確跳轉(zhuǎn)及各畫面的業(yè)務(wù)邏輯。
(2)三部分已經(jīng)出來,下面是更進一步的細化。
* 模型(M):
數(shù)據(jù)庫操作:數(shù)據(jù)庫的連接和關(guān)閉,連接失敗處理。
數(shù)據(jù)操作:生成固定格式的數(shù)據(jù)集,運行SQL語句,解析固定格式的數(shù)據(jù)集更新數(shù)據(jù)庫(內(nèi)容包括有:注冊員工信息,得到檢索結(jié)果集,更新員工信息,刪除員工信息)。
文件操作:將提示信息和error信息封裝成數(shù)據(jù)集,并附讀取文件操作(內(nèi)容包括有:讀取提示信息和error信息)。
* 視圖(V):
數(shù)據(jù)顯示:根據(jù)要求授權(quán)給控制器(C)向模型(M)請求數(shù)據(jù)集,然后根據(jù)數(shù)據(jù)集顯示出界面。
操作結(jié)果顯示:根據(jù)控制返回的數(shù)據(jù)資料決定顯示的提示資料。
* 控制(C):
數(shù)據(jù)/文件操作:接收請求并引用模型的生成數(shù)據(jù)集類生成指定數(shù)據(jù)集,然后交給相應(yīng)的模型操作方法處理,然后再確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)集。
(3)系統(tǒng)基本上細化完畢,下一步就是將以上分析出來的結(jié)果封裝成class。
* 模型(M):
·用于頁面?zhèn)鬟f信息的數(shù)據(jù)可以封裝成一個JavaBean類。
·用于檢索頁面存放檢索結(jié)果的數(shù)據(jù)可以封裝成一個JavaBean類。
·輸入數(shù)據(jù)的檢驗可以封裝成一個類。
·讀取提示信息和error信息的文件操作可以封裝成一個類。
·數(shù)據(jù)庫的連接和關(guān)閉可以封裝成一個類。
·將數(shù)據(jù)集轉(zhuǎn)化成模型(M)合適的SQL句及數(shù)據(jù)的查詢、添加、更新、刪除操作可以封裝成一個類。
* 視圖(V):
·視圖部分可均以JSP文件模式出現(xiàn)。
* 控制(C):
·實現(xiàn)頁面跳轉(zhuǎn)可以封裝成一個類。
·接受控制器的請求并引用模型的生成數(shù)據(jù)集類生成指定數(shù)據(jù)集,以及各頁面的業(yè)務(wù)邏輯處理可以封裝成一個類。
結(jié)合員工技能管理WEB系統(tǒng)的需求分析,本系統(tǒng)設(shè)計的模型(Model)有兩個JavaBeans,一個DataBean,用于保存數(shù)據(jù)和傳遞數(shù)據(jù),一個ListDataBean,用于存儲數(shù)據(jù)庫查詢結(jié)果每一項的具體信息。
Model中JavaBean,封裝了一些屬性和方法,具體到本系統(tǒng)的這兩個JavaBean,它封裝員工各項信息作為屬性并且作為私有類型,比如員工編號,姓名,拼音/羅馬字等等,都分別作為一個私有屬性,另外還封裝了一系列的 getXXX()和setXXX()方法,在get方法中得到相應(yīng)的屬性值,在set方法中修改相應(yīng)的屬性值,這些方法為用戶得到或修改屬性值提供了一個接口,避免用戶直接對屬性進行操作,也就是說用戶只能通過這些接口來訪問屬性。
視圖模塊在本系統(tǒng)中主要是用JSP來實現(xiàn),在后期實現(xiàn)過程中,還加入了JavaScript實現(xiàn)一些輔助功能。JSP頁面使用jsp:useBean實例化JavaBeans并于Servlet處理生成的JavaBeans綁定,然后使用jsp:getProperty輸出bean的屬性。JSP頁面并不創(chuàng)建或修改bean;它只是提取并顯示由servlet創(chuàng)建的數(shù)據(jù)。
該畫面模塊的主要功能是根據(jù)不同的條件對數(shù)據(jù)庫中的員工信息進行檢索,顯示出所有符合條件的員工信息,并可在查詢結(jié)果中選中一條信息,在詳細畫面查看其詳細信息,在更新/刪除畫面進行更新或刪除操作.這些就要求在這個畫面使用三個JavaBeans,其中一個保存用戶輸入的查詢條件,以保證從詳細畫面和更新/刪除畫面返回回來的時候,還顯示用戶之前輸入的查詢條件,這樣方便用戶的再查詢,一個保存數(shù)據(jù)庫的查詢結(jié)果,一個用于給詳細畫面和更新/刪除畫面?zhèn)鬟f某一員工的所有信息。
控制器的流程控制部分Skill_WebServlet首先從請求對象中取action參數(shù),根據(jù)此參數(shù)決定需要調(diào)用的控制器的業(yè)務(wù)邏輯部分handler,在handler調(diào)用相應(yīng)的模型JavaBeans,并根據(jù)此參數(shù)決定需要傳給模型JavaBeans的參數(shù)。
本文分析和設(shè)計了基于MVC模式的員工技能管理WEB系統(tǒng),著重介紹了該系統(tǒng)的結(jié)構(gòu)設(shè)計和模式設(shè)計,以及各模塊的實現(xiàn)。該系統(tǒng)有助于企業(yè)通過網(wǎng)絡(luò)實現(xiàn)人力資源分布式網(wǎng)絡(luò)化管理,將人力資源管理過程信息化、系統(tǒng)化、數(shù)字化。
[1]Jayson Falkner,Ben Galbraith,Romin Irani.JSP WEB編程指南[M].北京:電子工業(yè)出版社,2002.
[2]Marty Hall,Larry Brown.Servlet與 JSP 核心編程[M].北京:人民郵電出版社,2003.
[3]George Reese.JDBC與 JAVA 數(shù)據(jù)庫編程[M].北京:中國電力出版社,2002.
[4]Brucew.Perry.JAVA SERVLET&JSP 經(jīng)典實例[M].北京:中國電力出版社,2004.