版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
...wd...企業(yè)員工信息管理系統(tǒng)的設計與實現(xiàn)目錄TOC\o"1-2"\u摘要IABSTRACTII1緒論11.1研究背景11.2本課題研究現(xiàn)狀12企業(yè)信息管理系統(tǒng)分析32.1需求分析32.2技術可行性42.3環(huán)境可行性分析52.4系統(tǒng)構造可行性分析63企業(yè)信息管理系統(tǒng)設計93.1數(shù)據(jù)庫設計93.2系統(tǒng)功能模塊詳細設計134系統(tǒng)實現(xiàn)184.1用戶操作文件總體架構184.2技術難點285系統(tǒng)測試295.1界面測試295.2功能測試295.3需求測試305.4性能測試305.5企業(yè)員工信息管理系統(tǒng)的測試30總結31摘要在當今社會,互聯(lián)網(wǎng)空前的開展,給人們的工作和生活帶來了極大的便利和高效,信息化,電子化已經(jīng)成為節(jié)約運營成本,提高工作效率的首選??紤]到當前大量企業(yè)的企業(yè)員工管理尚處于手工作業(yè)階段,不但效率低下,還常常因為管理的不慎而出現(xiàn)紕漏。因此根據(jù)局部企業(yè)提供的需求,設計此企業(yè)企業(yè)員工管理系統(tǒng),以幫助企業(yè)到達企業(yè)員工管理辦公自動化、節(jié)約管理成本、提高企業(yè)工作效率的目的。根據(jù)實際需求,“企業(yè)員工信息管理系統(tǒng)〞工程采用模塊化的設計思想,在WindowsXP操作系統(tǒng)環(huán)境下,搭建JSP運行環(huán)境JDK+TOMCAT,通過使用JAVA腳本語言完成動態(tài)的、交互的web服務器應用程序,實現(xiàn)員工個人信息查詢、個人業(yè)績查詢及用戶密碼修改功能。本系統(tǒng)具有多方面特點:系統(tǒng)功能完備,用戶使用方便簡捷,人性化的用戶界面,安全保密設置齊全,大大減少了操作人員和用戶的工作負擔,提高了企業(yè)員工信息管理的工作效率和企業(yè)的信息化的水平。關鍵詞:java;jsp;信息管理、企業(yè)員工1緒論隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識。作為計算機應用的一局部,使用計算機對企業(yè)員工信息進展管理,具有著手工管理所無法比較的優(yōu)點。這些優(yōu)點能夠極大地提高企業(yè)員工管理的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。根據(jù)以上情況,大量企業(yè)已經(jīng)實施建設企業(yè)員工信息管理系統(tǒng),因為企業(yè)員工信息管理是一個企業(yè)單位不可缺少的局部,它的內容對于企業(yè)的決策者和管理者來說都至關重要,所以企業(yè)員工信息管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。可以解決一直以來人們使用傳統(tǒng)人工的方式管理文件檔案存在著的許多缺點,如:效率低、保密性差,另外時間一長,將產生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。隨著計算機技術的飛速開展,計算機在企業(yè)管理中應用的普及,利用計算實現(xiàn)企業(yè)企業(yè)員工檔案的管理勢在必行。企業(yè)員工管理系統(tǒng)是現(xiàn)代企業(yè)管理工作不可缺少的一局部,是適應現(xiàn)代企業(yè)制度要求、推動企業(yè)勞動企業(yè)員工管理走向科學化、標準化的必要條件。企業(yè)員工信息管理系統(tǒng)是針對企業(yè)信息管理部門的大量業(yè)務處理工作用計算機進展全面現(xiàn)代化管理,該系統(tǒng)必須具備以下基本功能:〔1〕企業(yè)員工檔案管理數(shù)據(jù)庫及表的操作。實現(xiàn)對企業(yè)員工檔案管理數(shù)據(jù)庫及表的創(chuàng)立,表中數(shù)據(jù)的維護?!?〕企業(yè)員工檔案信息的管理。實現(xiàn)企業(yè)員工信息的添加、保存、修改和刪除等?!?〕企業(yè)員工檔案信息的應用。實現(xiàn)企業(yè)員工信息的查詢、統(tǒng)計和企業(yè)員工資源的利用等。1.1研究背景現(xiàn)代信息技術的開展,在改變著我們的生活方式的同時,也改變著我們的工作方式,使傳統(tǒng)意義上的企業(yè)員工管理的形式和內涵都在發(fā)生著基本性的變化。企業(yè)員工信息管理的內容也己經(jīng)轉變?yōu)閷Ω鼮閺V泛的系統(tǒng)價值的追求。信息管理,如今已是一個熱門話題,它已為許多企業(yè)所采用。在現(xiàn)代化的進程中,引入現(xiàn)代管理的思想,建設一套可面向企業(yè)單位的員工信息管理系統(tǒng),也是十分必要的。本課題基于我國企業(yè)管理信息化建設現(xiàn)狀,結合在實際工作中所遇到的問題和收獲,對企業(yè)員工管理系統(tǒng)在設計開發(fā)等方面進展研究,重點研究系統(tǒng)開發(fā)中所采用的軟硬件平臺標準、數(shù)據(jù)庫構造設計、開發(fā)工具的選擇與使用,目的是從技術手段的角度闡述若何實現(xiàn)企業(yè)從傳統(tǒng)經(jīng)營管理模式向信息化管理模式轉變的過程,以及企業(yè)員工管理系統(tǒng)在企業(yè)管理信息化中所起到的重要作用。1.2本課題研究現(xiàn)狀目前,在國內外各大企業(yè)單位中,企業(yè)員工信息管理系統(tǒng)的使用是非常廣泛的。同時,有很多的軟件開發(fā)商也開發(fā)了許多基于各種行業(yè)的企業(yè)員工管理學系統(tǒng)。而不同的企業(yè)具有不同的企業(yè)員工管理制度,這就決定了不同的企業(yè)需要不同的企業(yè)員工管理系統(tǒng)。而且,企業(yè)管理信息量大、操作繁瑣、傳統(tǒng)的方式不再適應新的工作需要,開發(fā)研制適合企業(yè)的企業(yè)員工管理系統(tǒng),使其具有整體性強、流程簡單、操作方便、功能豐富和通用性強等特點,是加快企業(yè)人才管理工作辦公自動化、信息資源化和管理科學化建設進程必要途徑。因此建設適合企業(yè)的管理信息系統(tǒng),是促進企業(yè)信息高速公路的開展,為企業(yè)的開展提供條件的重要課題。1954年美國通用電氣公司安裝的第一臺商業(yè)用數(shù)據(jù)處理計算機,開創(chuàng)了信息系統(tǒng)應用于中小企業(yè)管理的先河。二十世紀50年代中期到60年代中期,EDPS在中小企業(yè)中得到廣泛應用,主要是用計算機局部地代替手工勞動,進展一些簡單的單項數(shù)據(jù)處理工作,如計算工資、統(tǒng)計產量等。80年代在中小企業(yè)中開場使用一種典型的管理信息系統(tǒng)-MRPⅡ〔制造資源方案〕。MRPⅡ于1977年提出的,它以MRP為核心,將生產制造、財務會計、市場營銷、工程管理、采購供給以及信息管理等各個部門納入整體管理之中,構成了完整運作體系。90年代以來MRPⅡ也逐漸開展成為新一代的中小企業(yè)資源系統(tǒng)〔ERP〕。ERP在MRPⅡ根基上將供給商和中小企業(yè)內部的采購、生產、銷售以及客戶看作一個嚴密聯(lián)系的供給鏈,通過信息技術和管理理論對中小企業(yè)的物流、資金流和信息流進展全面的集成管理,以提高供給鏈的運行效率,追求中小企業(yè)資源的合理高效利用,提高中小企業(yè)在全球市場中的競爭能力。以MRPⅡ/ERP為代表的現(xiàn)代中小企業(yè)管理信息系統(tǒng)主要支持中小企業(yè)內部管理業(yè)務。隨著網(wǎng)絡的迅猛開展,出現(xiàn)了各種管理思想和模式的管理信息系統(tǒng),如客戶關系管理〔CRM〕、供給鏈管理〔SCM〕、商業(yè)智能〔BI〕、電子商務〔EC〕和計算機集成制造系統(tǒng)〔CMIS〕等。中小企業(yè)管理信息系統(tǒng)逐步會開展成為一種融合各種管理思想和信息技術的面向產品生命周期的集成系統(tǒng),以實現(xiàn)資源共享、數(shù)據(jù)共享、適應網(wǎng)絡經(jīng)濟的充分柔性的中小企業(yè)管理信息系統(tǒng)。企業(yè)級信息管理涉及到眾多的工程、人員、數(shù)據(jù)和報告,如果沒有一個有效的信息管理系統(tǒng)來支持和提高工作效率,企業(yè)信息管理將會難以實施?,F(xiàn)在眾多的軟件公司都開發(fā)出了自己的企業(yè)信息管理信息系統(tǒng),包括微軟公司的MicrosoftProject2003;Primavera公司的PrimaveraProjectPlannerforEnterprise;Welcom公司的OpenPlan等,這些都是比較優(yōu)秀的企業(yè)工程信息管理軟件,但軟件只是一個輔助工具,如果沒有首先建設一個科學的企業(yè)信息管理體系,則企業(yè)工程管理軟件將難以發(fā)揮作用。因此,研究若何建設一個精簡、有效的企業(yè)信息管理體系,企業(yè)信息管理信息系統(tǒng),若何有效支持企業(yè)工程管理體系,從而提高企業(yè)的工程管理能力,是具有非常重大的實際應用意義的。2企業(yè)信息管理系統(tǒng)分析2.1需求分析2.1.1功能需求隨著經(jīng)濟的迅速開展,企業(yè)的規(guī)模越來越大,企業(yè)的管理也越來越復雜,組織機構越來越龐大,組織的劃分也越來越細,對企業(yè)各組織部門的管理以及各部門內部各職務的管理變的十分復雜,需要借助于計算機來進展管理。企業(yè)人員數(shù)量的增多,對員工的管理也是一項繁重的工作,不僅要對員工的基本信息進展管理,還要對員工的動態(tài)信息進展管理,例如調動信息,離職信息等,企業(yè)應對員工的這些動態(tài)信息及時的進展登記,只有合理的對員工進展管理,企業(yè)才能有條不紊的運行。進入企業(yè)的員工要與企業(yè)簽訂合同,合同管理關系到員工和企業(yè)雙方的利益,因而需要進展認真的管理。為了企業(yè)擴展的需要,需要招聘新的人才,為企業(yè)注入新的血液,所以招聘信息以及應聘人員的信息的管理也相當重要。經(jīng)濟迅猛開展,競爭日趨劇烈,企業(yè)為了能在競爭中立于不敗之地,對員工的素質提出更高的要求,因而企業(yè)需要定期對員工進展培訓,以便員工能更好的掌握新知識、新技術,提高工作效率,培訓管理就是對企業(yè)開展的培訓進展規(guī)劃管理。此外,為了進一步調發(fā)開工的積極性,適當?shù)陌l(fā)放福利也是必要的,所以對福利的管理也是必不可少的。考慮到對系統(tǒng)的安全控制,需要對登錄該系統(tǒng)的管理員進展驗證,因此涉及到對系統(tǒng)管理員的管理,綜上分析,該系統(tǒng)應具備管理員登錄管理功能,組織管理功能,人事管理功能,合同管理功能,招聘管理功能以及福利管理功能等。根據(jù)以上分析,可得系統(tǒng)的功能模塊劃分,系統(tǒng)功能模塊圖如圖2-1所示。企業(yè)員工信息管理系統(tǒng)企業(yè)員工信息管理系統(tǒng)人事管理考勤管理招聘管理系統(tǒng)管理薪酬管理主管部門審批人事部門審批人力規(guī)劃用戶管理添加用戶薪酬查詢薪酬修改薪酬登記考勤規(guī)劃設置招聘信息管理員工考勤登記考勤分析報表圖2.1企業(yè)員工信息管理系統(tǒng)功能模塊圖系統(tǒng)功能模塊圖展示了該系統(tǒng)的模塊劃分,是系統(tǒng)總體功能的初步分析概括。管理員登錄后,可以在主控界面查看統(tǒng)計分析信息,使用幫助信息,通過查看使用幫助信息可以了解系統(tǒng)操作的本卷須知以及一些具體操作的使用說明,熟悉系統(tǒng)的操作標準后,管理員可以對人事管理,考勤管理,招聘管理,薪酬管理,培訓開展管理,系統(tǒng)管理等模塊進展相應的操作,從而實現(xiàn)對各個模塊的管理。2.1.2數(shù)據(jù)需求(1)數(shù)據(jù)錄入和處理的準確性和實時性數(shù)據(jù)的輸入是否準確是數(shù)據(jù)處理的前提,錯誤的輸入會導致系統(tǒng)輸出的不正確和不可用,從而使系統(tǒng)的工作失去意義。數(shù)據(jù)的輸入來源是手工輸入。手工輸入要通過系統(tǒng)界面上的安排系統(tǒng)具有容錯性,并且對操作人員要進展系統(tǒng)的培訓。在系統(tǒng)中,數(shù)據(jù)的輸入往往是大量的,因此系統(tǒng)要有一定的處理能力,以保證迅速的處理數(shù)據(jù)。(2)數(shù)據(jù)的安全性本系統(tǒng)為企業(yè)人事管理部門設計,因此只有特定的人事管理者才能對數(shù)據(jù)實現(xiàn)增,刪,改,查等操作。未獲授權人員不能進入系統(tǒng)。(3)數(shù)據(jù)的備份要定期對數(shù)據(jù)庫中的數(shù)據(jù)進展全部或新增局部的備份工作,以保證在硬件出現(xiàn)故障或人為原因導致無法運行時是可以快速及時的復原到原來的正常狀態(tài)。2.2技術可行性2.2.1程序語言的選擇JSP(JavaServerPages)是一種新動態(tài)網(wǎng)頁技術標準,類似其他技術標準.在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中參加Java程序片斷(Scriptlet)和JSP標簽,構成了JSP網(wǎng)頁(*.jsp)Servlet/JSPContainer收到客戶端發(fā)出的請求時,首先執(zhí)行其中的程序片斷,軟后將執(zhí)行結果以HTML格式響應給客戶端,其中程序片斷可以是:操作數(shù)據(jù)庫,重新定向網(wǎng)頁以及發(fā)送E-Mail等等,這些都是建設動態(tài)網(wǎng)站所需要的功能.所有程序操作都在服務器端運行,網(wǎng)絡上傳送給客戶端的僅是得到的結果,與客戶端的瀏覽器無關,因此,JSP稱為Server-sideLanguage.所以被許多人認為是未來最有開展前途的動態(tài)網(wǎng)站技術之一。經(jīng)過比較,PHP功能相對簡單,不適合作大程序,而CGI效率相對較低,所以也不考慮,因為該系統(tǒng)并沒有原有的根基平臺需要擴展,也不需要與其他系統(tǒng)進展太多的交互,所以使用J2EE的模式并不能夠表達出J2EE本身的優(yōu)勢,而JSP又是J2EE的核心技術之一,可以隨時升級為J2EE程序,這里暫時不考慮采用J2EE,這樣只需要在ASP和JSP中進展選擇.在進展了諸多因素的比較之后,最終認為目前這個階段比較適宜的是JSP,而選擇Struts架構作為開發(fā)的主體框架,選用Hibernate作為數(shù)據(jù)持續(xù)性處理層,則是考慮到了其高速的開發(fā)效率,及代碼重用性高,易于維護等各種優(yōu)勢。其最終目的是希望提高系統(tǒng)底層業(yè)務邏輯的可重用性,增加系統(tǒng)的可擴展性,降低系統(tǒng)維護成本。2.2.2JSP技術特點·將內容的生成和顯示進展別離使用JSP技術,Web頁面開發(fā)人員可以使用HTML或者XML標識來設計和格式化最終頁面.使用JSP標識或者小腳本來生成頁面上的動態(tài)內容.生成的內容的邏輯被封裝在標識和JavaBeans組件中,那么其他人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面而不影響內容的生成?!ひ淮尉帉?,到處運行作為Java平臺的一局部,JSP擁有Java編程語言〞一次編寫,到處運行〞的特點,隨著越來越多的供給商將JSP支持添加到他們的產品中,您可以使用自己所選擇的服務器和工具,但并不影響當前的應用?!SP的平臺適應性更廣這是JSP比ASP的優(yōu)越之處,幾乎所有的平臺都支持Java,它們可以在任何平臺下通行無阻。雖然NT的OS占據(jù)了很大的市場的份額,但在服務器方面UNIX的優(yōu)勢仍然很大。從一個平臺移植到另一個平臺,JSP和JavaBeans甚至不用重新編譯,因為Java字節(jié)碼都是標注的字節(jié)碼與平臺無關?!?shù)據(jù)庫連接技術很多的OS中都帶有JDBC驅動程序,Java就通過JDBC與數(shù)據(jù)庫連接,執(zhí)行查詢,提取數(shù)據(jù)等操作。Sun公司還提供了JDBC-ODBC的橋連方式,因此Java也可以訪問帶有ODBC驅動的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅動,所以Java能訪問諸如Oracle、Sybase、MSSQLServer和Access等類型的數(shù)據(jù)庫。2.2.3操作可行性對于用戶來說,本系統(tǒng)只要求使用者掌握一定的上網(wǎng)經(jīng)歷,經(jīng)過仔細設計和測試之后的系統(tǒng)具有操作簡單,方便靈活等優(yōu)點,足可以滿足各種用戶的不同需求,同時也方便了公司的內部管理。管理人員及用戶一定會在短時間內掌握并熟練使用。只要動一動鼠標鍵盤就可以到達想要的效果。2.2.4經(jīng)濟可行性系統(tǒng)的經(jīng)濟可行性指的是對組織的經(jīng)濟狀況和投資能力進展分析,對系統(tǒng)建設、運行和維護費用進展估算,對系統(tǒng)建成后可能取得的社會及經(jīng)濟效益進展估計。本模塊簡單易開發(fā),且開發(fā)需要資金少,系統(tǒng)開發(fā)運行后,可以實現(xiàn)企業(yè)員工信息管理的計算機化,節(jié)省了人力、物力,將人從繁重的工作業(yè)務中解脫出來,減少了信息管理中無意的錯誤,節(jié)省了大量的時間,管理效率也大幅度提高,因此,在經(jīng)濟上是可行的。所帶來的效益遠遠大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟上完全可行。2.2.5綜合綜上所述,本系統(tǒng)使用JSP開發(fā)技術,工作平臺為應用界面友好且功能強大的由MXMyECplise軟件,服務器端腳本用JAVA腳本來編寫,客戶端腳本也用JAVA來編寫,數(shù)據(jù)庫使用MicrosoftSQLServer2000數(shù)據(jù)庫,服務器是TOMCAT。在大學的學習中,已經(jīng)自學過JAVA這種語言,并且曾經(jīng)參加實訓開發(fā)工程,有一定的實地開發(fā)經(jīng)歷。且熱愛計算機科學,又刻苦鉆研的精神,經(jīng)過大學四年的學習,相關課程已基本熟練掌握,本系統(tǒng)是在學校開發(fā),遇到問題可以與同學一起研究,再加上指導教師的指導。因此在技術上能夠適應本系統(tǒng)的開發(fā)。2.3環(huán)境可行性分析2.3.1軟件環(huán)境·操作系統(tǒng):Win2kServersp4·數(shù)據(jù)庫:MicrosoftSQLServer2000EnterpriseEditionsp4·Web服務器:TOMCAT·IDE;Eclipse3.1.1+Myeclipse4.1.1GA+Lomboz+emf,Dreamweaver8·外部包:Struts.jarHibernate.jar2.3.2硬件環(huán)境AMDAthlon643000+,KingMaxPC3200512MB×2,GainwardNV35XTSeagateSATA8M120GB×22.4系統(tǒng)構造可行性分析2.4.1模式采用本系統(tǒng)采用B/S模式。B/S〔Browser/Server〕構造即瀏覽器和服務器構造。它是隨著Internet技術的興起,對C/S構造的一種變化或者改良的構造。在這種構造下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少局部事務邏輯在前端〔Browser〕實現(xiàn),但是主要事務邏輯在服務器端〔Server〕實現(xiàn),形成所謂三層3-tier構造。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本〔TCO〕。以目前的技術看,局域網(wǎng)建設B/S構造的網(wǎng)絡應用,并通過Internet/Intranet模式下數(shù)據(jù)庫應用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式〔比方LAN,WAN,Internet/Intranet等〕訪問和操作共同的數(shù)據(jù)庫;它能有效地保護數(shù)據(jù)平臺和管理訪問權限,服務器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構管理軟件更是方便、快捷、高效。目前,軟件系統(tǒng)的改良和升級越來越頻繁,B/S架構的產品明顯表達著更為方便的特性。對一個稍微大一點單位來說,系統(tǒng)管理人員如果需要在幾百甚至上千部電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構的軟件只需要管理服務器就行了,所有的客戶端只是瀏覽器,基本不需要做任何的維護。無論用戶的規(guī)模有多大,有多少分支機構都不會增加任何維護升級的工作量,所有的操作只需要針對服務器進展;如果是異地,只需要把服務器連接專網(wǎng)即可,實現(xiàn)遠程維護、升級和共享。所以客戶機越來越“瘦〞,而服務器越來越“胖〞是將來信息化開展的主流方向。今后,軟件升級和維護會越來越容易,而使用起來會越來越簡單,這對用戶人力、物力、時間、費用的節(jié)省是顯而易見的。因此,維護和升級革命的方式是“瘦〞客戶機,“胖〞服務器?,F(xiàn)在的趨勢是凡使用B/S架構的應用管理軟件,只需安裝在Linux服務器上即可,而且安全性高。所以服務器操作系統(tǒng)的選擇是很多的,不管選用那種操作系統(tǒng)都可以讓大局部人使用windows作為桌面操作系統(tǒng)電腦不受影響,這就使的最流行免費的Linux操作系統(tǒng)快速開展起來,Linux除了操作系統(tǒng)是免費的以外,連數(shù)據(jù)庫也是免費的。2.4.2Struts架構隨著Web開發(fā)技術的日益成熟,在Web開發(fā)開發(fā)領域中出現(xiàn)了許多設計好的軟件開發(fā)框架,Struts就是一種基于MVC經(jīng)典設計模式的框架,也是當前Web開發(fā)中比較成熟的一種框架。2.4.3經(jīng)典MVC模式MVC(Model-View-Controller)模式,即模型-視圖-控制器模式,其核心思想是將整個程序代碼分成相對獨立而又能協(xié)同工作的3個組成局部?!つP?Model):業(yè)務邏輯層。實現(xiàn)具體的業(yè)務邏輯,狀態(tài)管理的功能?!ひ晥D(View):表示層。即與用戶實現(xiàn)交互的界面,通常實現(xiàn)數(shù)據(jù)輸入和輸出功能。·控制器(Controller):控制層。起到控制整個業(yè)務流程(FlowControl)的作用,實現(xiàn)View和Model局部的協(xié)同工作。MVC設計模式可以針對需要為同樣的數(shù)據(jù)提供多個不同視圖的應用程序,例如:公司產品數(shù)據(jù)庫中同樣的產品信息數(shù)據(jù),但需要根據(jù)用戶的不同需求在頁面中顯示其所需的不同產品信息。MVC設計模式中,事件一般是指客戶端Web瀏覽器提交的各種不同請求,這些請求由控制器進展處理,控制器根據(jù)事件的類型來改變模型或各個視圖,視圖也可以承受模型發(fā)出的數(shù)據(jù)更新的通知,依據(jù)數(shù)據(jù)更新的結果調整視圖效果,呈現(xiàn)在用戶面前。而模型也可以通過視圖所獲得的用戶提交的數(shù)據(jù)進展具體業(yè)務邏輯的處理。原理如圖2.2所示。圖2.2MVC設計模式的構造Struts1.2開發(fā)框架作為基于MVC設計模式的Web應用的一種典型表達,Struts架構實際上是建設在Model2根基上的,對Model,View和Controller都提供了現(xiàn)成的實現(xiàn)組建。Controller控制器局部Struts中的Controller控制器局部是通過專門的Servlet來實現(xiàn)的,該Servlet是一個StrutsAPI中提供的ActionServlet類型的實例,ActionServlet類繼承了javax.servlet..Servlet類,因此該類的實例可以和普通的Servlet一樣工作,其作用是接收客戶端瀏覽器的請求,然后選擇執(zhí)行相應的業(yè)務邏輯,再把響應結果送回到客戶端。Action對象是開發(fā)者定義的類(該類必須是StrutsAPI中提供的Action類的子類)的實例。在繼承該類的過程中開發(fā)者可以參加具體業(yè)務邏輯或調用業(yè)務邏輯模塊。Action對象在進展了業(yè)務邏輯或調用業(yè)務邏輯模塊。Action對象在進展了業(yè)務邏輯的處理以后會將應用程序流程轉到適宜的View組件,最終將響應送回瀏覽器客戶端。Struts中提倡Action對象只用來決定〞做什么〞,相當于一個低層面的控制器,因此也可以將Action歸納為Controller的組成局部。Model模型局部MVC系統(tǒng)中的Model模型局部從概念上可以分為兩類:系統(tǒng)的內部狀態(tài)和改變系統(tǒng)狀態(tài)的動作.Struts中的Model局部一般由JavaBean以及EJB組成。在Struts架構中使用JavaBean來提供具體的業(yè)務邏輯,即〞若何做〞,對于復雜的系統(tǒng)也可以使用EJB等組件來實現(xiàn)系統(tǒng)狀態(tài)維護。這種業(yè)務邏輯的細分可以增強可以代碼的可重用性。View視圖局部Struts中的View視圖局部依然可以采用JSP來實現(xiàn)。此外,Struts還提供了豐富的自定義標記庫,View局部使用這些自定義標簽同樣可以實現(xiàn)與Model局部的有效交互并能夠增強顯示功能。3企業(yè)信息管理系統(tǒng)設計系統(tǒng)設計是在系統(tǒng)分析的根基上由抽象到具體的過程,主要目標是將系統(tǒng)分析階段所提出的反映到信息需求的系統(tǒng)邏輯方案并轉換成可以實施的基于計算機與通信系統(tǒng)的物理〔技術〕方案,為下一階段系統(tǒng)實施提供必要的技術資料,應符合系統(tǒng)性、靈活性、可靠性,經(jīng)濟性的要求。3.1數(shù)據(jù)庫設計3.1.1數(shù)據(jù)庫的需求分析依據(jù)工程的處理需求,對應數(shù)據(jù)表的設計及功能如下:·培訓信息表:主要用于保存培訓信息·獎懲表:主要用于保存獎懲信息·應聘信息表:主要用于保存應聘信息·薪金表:主要用于保存薪金信息·用戶表:主要用于保存用戶信息員工登記員工登記員工基本信息管理考勤信息管理員工工資設置員工考核管理完畢基本信息錄入員工工資管理考勤信息管理計算員工工資基本信息錄入圖3.1數(shù)據(jù)庫需求分析流程圖數(shù)據(jù)庫設計數(shù)據(jù)庫設計登陸統(tǒng)計查詢存儲數(shù)據(jù)頁面應用顯示數(shù)據(jù)退出判斷選擇存儲數(shù)據(jù)數(shù)據(jù)錄入統(tǒng)計查詢一般查詢圖3.2數(shù)據(jù)庫訪問數(shù)據(jù)流圖用戶登記用戶登記說明:輸入用戶信息數(shù)據(jù)流來源:用戶輸入數(shù)據(jù)流去向:數(shù)據(jù)庫存儲方式:人工操作存儲員工基本信息管理員工基本信息管理說明:用于員工基本信息的修改,刪除,添加數(shù)據(jù)流的輸入:當前登錄用戶數(shù)據(jù)流的輸出:操作界面存儲方式:數(shù)據(jù)庫直接存儲員工考勤信息管理員工考勤信息管理說明:用于對員工考勤的管理數(shù)據(jù)流的輸入:當前登錄用戶數(shù)據(jù)流的輸出:操作界面存儲方式:數(shù)據(jù)庫直接存儲員工考核信息管理員工考核信息管理說明:用于對員工考核的管理數(shù)據(jù)流的輸入:當前登錄用戶數(shù)據(jù)流的輸出:操作界面存儲方式:數(shù)據(jù)庫直接存儲員工工資信息管理員工工資信息管理說明:用于對員工工資信息的管理數(shù)據(jù)流的輸入:當前登錄用戶數(shù)據(jù)流的輸出:操作界面存儲方式:數(shù)據(jù)庫直接存儲圖3.3系統(tǒng)模塊數(shù)據(jù)字典3.1.2數(shù)據(jù)庫表的具體設計表3.2.2培訓信息表字段名數(shù)據(jù)類型長度是否主鍵描述idint4是數(shù)據(jù)庫流水號namevarchar100培訓名稱purposevarchar500培訓目的begintimedatetime8開場培訓時間endtimedatetime8完畢培訓時間datumvarchar2000培訓人員teachervarchar50培訓講師studentvarchar50學生createtimedatetime8創(chuàng)立時間educatebit1培訓級別effectvarchar500培訓影響度summarizevarchar2000培訓材料表3.2.3獎懲表字段名數(shù)據(jù)類型長度是否主鍵描述Idint4是數(shù)據(jù)庫流水號Namevarchar2000獎懲名稱Reasonvarchar50獎懲原因explainvarchar50描述createtimedatetime8創(chuàng)立時間表3.2.4應聘信息表字段名數(shù)據(jù)類型長度是否主鍵描述idint4是數(shù)據(jù)庫流水號namevarchar50姓名sexbit1性別ageint4年齡jobvarchar50應聘職位specialtyvarchar50所學專業(yè)experiencevarchar50工作經(jīng)歷studyeffortvarchar50在校所學專業(yè)schoolvarchar50畢業(yè)學校telvarchar50emailvarchar50電子郵件createtimedatetime8創(chuàng)立時間contentntext16詳細經(jīng)歷isstockbit1標識表3.2.5薪金表字段名數(shù)據(jù)類型長度是否主鍵描述idint4是數(shù)據(jù)庫流水號namevarchar50員工姓名basicfloat8基本薪資eatfloat8飯補housefloat8房補dutyfloat8全勤獎scotfloat8賦稅punishmentfloat8額外補助otherfloat8罰款granttimedatetime8發(fā)放時間totalizefloat8總計表3.2.6用戶表字段名數(shù)據(jù)類型長度是否主鍵描述idint4是數(shù)據(jù)庫流水號usernamevarchar50用戶名稱passwordvarchar50用戶密碼sexbit1用戶性別birthdaydatetime8用戶出生年月日createtimedatetime8用戶創(chuàng)立的時間isadminbit1是否超級管理員contentvarchar2000管理員級別3.2系統(tǒng)功能模塊詳細設計3.2.1功能設計本系統(tǒng)主要用于對企業(yè)中的“人〞進展管理。具體地講,企業(yè)員工信息管理系統(tǒng)就是通過企業(yè)員工信息規(guī)劃、員工考核、薪酬管理、員工鼓勵、人才培訓和開發(fā)等一系列手段來提高勞動生產率,最終到達開展目標的一種管理行為。具體實現(xiàn)目標如下。實現(xiàn)對員工信息進展全面管理的功能。設置企業(yè)員工根基信息管理功能。設置員工考勤管理功能模塊。員工薪酬信息管理。實現(xiàn)企業(yè)員工培訓信息全程跟蹤的功能。實現(xiàn)企業(yè)的招聘信息、應聘信息的管理功能。企業(yè)人才庫管理功能。系統(tǒng)用戶信息的管理。系統(tǒng)最大限度地實現(xiàn)了易安裝性、易維護性和易操作性。系統(tǒng)運行穩(wěn)定、安全可靠。3.2.2模塊設計企業(yè)員工信息管理系統(tǒng)是針對中小企業(yè)對現(xiàn)有員工和新聘員工的一個WEB管理平臺。主頁功能模塊主要包括以下功能模塊:人員管理:主要包括瀏覽人員信息、添加人員信息、人員信息的添加、人員信息的修改。招聘管理:主要包括應聘人員信息的詳細查看、刪除、添加以及信息入庫。培訓管理:主要包括培訓方案的詳細信息、信息刪除、添加培訓方案和填寫培訓總結。獎懲管理:主要包括獎懲詳細信息、刪除詳細信息、添加詳細信息、修改詳細信息。薪金管理:主要包括薪金的修改、添加、刪除。企業(yè)員工信息管理系統(tǒng)功能模塊之間的關系基本信息管理功能集合包括部門信息管理和員工信息管理等功能模塊。此集合中功能模塊的關系如圖3.4所示。員工基本管理員工基本管理員工業(yè)績信息管理員工工作經(jīng)歷管理員工基本信息管理部門信息管理圖3.4員工基本信息管理模塊關系圖員工基本信息管理模塊是整個系統(tǒng)的核心。除了部門管理模塊外,其他各個模塊都針對每一個員工的一個方面進展管理,都需要提供員工編號等基本信息作為索引??己伺c待遇管理功能集合包括考勤管理,工作考評管理和工資管理模塊。此集合中功能模塊的關系如圖3.5所示。員工基本信息管理員工基本信息管理員工工資管理員工考評管理員工考勤管理圖3.5考核與待遇管理功能集合模塊關系圖用戶管理及權限控制功能集合包括用戶信息管理、權限控制等模塊。權限控制對于企業(yè)員工信息系統(tǒng)來說是非常必要的。部門與員工基本信息數(shù)據(jù),包括考勤,考核工作和工資等信息都不是一般的員工可以隨意添加和改動的。這些操作只有人力資源主管才有此權限。在本系統(tǒng)中,我們將系統(tǒng)用戶劃分了3大類:人力資源主管:此類型用戶是本系統(tǒng)中權限最高的用戶。在本系統(tǒng)中的任何模塊中,都可以進展添加,刪除,修改等記錄,并對所有數(shù)據(jù)進展查詢顯示的權限。系統(tǒng)管理員:是為了維護本系統(tǒng)而創(chuàng)立的用戶,可以對除“人力資源主管〞用戶以外的其他類型用戶進展管理。普通用戶:權限最低的一類用戶,除了可以修改自身的用戶名和密碼外,幾乎沒有其他數(shù)據(jù)庫操作權限。在其他的模塊中,此類用戶只能瀏覽到與自己或自己的下屬相關的數(shù)據(jù),但是不能對數(shù)據(jù)進展修改或刪除操作。在員工工作考評模塊中,普通用戶可以輸入對自己下屬員工的工作評價和資金系數(shù)等數(shù)據(jù)。此集合中功能模塊的關系如圖3.6所示超級HR主管用戶超級HR主管用戶普通HR主管用戶修改自身用戶名和密碼普通系統(tǒng)管理員用戶創(chuàng)立和管理普通HR主管用戶超級系統(tǒng)管理員用戶創(chuàng)立和管理普通用戶創(chuàng)立和管理普通用戶修改超級HR主管的密碼修改自身的用戶名和密碼創(chuàng)立和管理普通系統(tǒng)管理員修改自身的用戶名和密碼系統(tǒng)用戶信息系統(tǒng)創(chuàng)立和管理普通用戶圖3.6用戶管理功能集合模塊關系圖用戶登錄模塊開場,對系統(tǒng)的身份進展認證。身份認證可以分為以下兩個過程:確認用戶是否為有效的系統(tǒng)用戶;確定用戶的類型;第一個過程決定用戶能否進入系統(tǒng)。第二個過程根據(jù)用戶的類型決定用戶的操作權限,從而決定用戶的工作界面。開場開場退出系統(tǒng)登錄進入系統(tǒng)主界面錯誤3次NY圖3.7系統(tǒng)登錄驗證流程圖在圖3.7中可以看到,每個用戶有3次時機進展身份認證。如果3次輸入的用戶名和密碼都無法與數(shù)據(jù)庫中的數(shù)據(jù)匹配,則強制退出系統(tǒng)??荚u模塊查詢流程圖進入系統(tǒng)后,不同類型的用戶所能進展的操作也不一樣。這些操作籠統(tǒng)可以分為用戶管理模塊和人事管理模塊。由于篇幅所限,五法完整地描述人事管理模塊的系統(tǒng)流程,只是把它分為兩個局部:考評信息的高級管理和查詢;普通用戶考評信息管理查詢。普通用戶對考評管理和查詢。普通用戶人事考評信息管理和查詢局部非常簡單,,因此在很讀模塊中,普通用戶只有查詢功能。系統(tǒng)流程見圖3.8所示:進入系統(tǒng)進入系統(tǒng)工作考評管理部門信息管理員工信息管理下屬工作考評信息管理查詢部門信息查詢員工新名列表圖3.8考評管理和查詢流程圖“人事主管〞用戶對考評信息的高級管理和查詢。系統(tǒng)流程如圖3.9所示:員工信息員工信息部門信息管理進入系統(tǒng)進入系統(tǒng)刪除考評信息添加考評信息查詢考評信息修改考評信息工作經(jīng)歷信息家庭成員信息查詢部門信息員工照片管理員工基本信息刪除用戶信息修改用戶信息添加用戶信息部門信息管理員工信息是否存在員工部門是夠存在圖3.9考評模塊查詢流程圖4系統(tǒng)實現(xiàn)4.1用戶操作文件總體架構用戶操作模塊主要包括用戶登錄和人員管理模塊,具體功能如下:用戶登錄模塊:用于登錄系統(tǒng)。人員管理模塊:用于瀏覽、添加和修改人員信息。4.1.1用戶登錄模塊設計用戶登錄模塊是用戶進入主頁面的入口,其運行結果如圖4.1所示。圖4.1用戶登錄模塊運行結果系統(tǒng)登陸是企業(yè)員工信息管理中最先使用的功能,因為用戶登陸在數(shù)據(jù)庫中使用的是人員表,人員表中有一個isadmin字段,是來標識是否是管理員的。在登陸時要根據(jù)數(shù)據(jù)庫的這個字段來判斷此用戶是否具有管理員的權限。在網(wǎng)頁里添寫用戶名和密碼后點擊【登陸】按鈕,網(wǎng)頁會訪問一個URL,這個URL是“l(fā)ogon.do?action=logon〞,代碼如下: <formname="usersForm"method="post"action="logon.do?action=logon"><tr><tdwidth="170"height="40"align="center">用戶名:</td><tdwidth="230"height="40"><inputname="username"type="text"class="input"></td></tr><tr><tdheight="40"align="center">密 碼:</td><tdheight="40"><inputname="password"type="password"class="input"></td></tr><tr><tdheight="40"colspan="2"align="center"><inputtype="submit"name="Submit"value="登陸"class="button"> <inputtype="reset"name="Submit2"value="重置"class="button"></td></tr> </form>在這個表單的name的值是usersForm,它是Struts的ActoinForm的實現(xiàn)類在配置文件中的名字,如下所示:<form-beanname="userForm"type="com.bOS.bPRO_PersonManage.actionform.UsersForm"/>action是Struts的Action的URL,他們在Struts的配置文件中都是已經(jīng)配好的,如下所示:<actionpath="/logon"type="com.bOS.bPRO_PersonManage.action.UsersAction"name="userForm"scope="request"><forwardname="success"path="/manage.jsp"/><forwardname="failed"path="/failed.jsp"/></action>在這個配置文件中,可以了解到如下信息:根據(jù)name="userForm"可以找到與之相對應的ActionForm的實現(xiàn)類“com.bOS.bPRO_PersonManage.actionform.UsersForm〞。根據(jù)type="com.bOS.bPRO_PersonManage.action.UsersAction"可以找到處理用戶數(shù)據(jù)的Action類。根據(jù)<forwardname="success"path="/manage.jsp"/>和<forwardname="failed"path="/failed.jsp"/>可以了解,這個Action返回success時,頁面會被轉到manage.jsp文件,這就是登陸成功的頁面。如果當Action返回failed時,頁面會被轉到failed.jsp文件,這個文件是當用戶登陸失敗將要轉到的頁面。Struts的Action實現(xiàn)類的execute()方法是最先被執(zhí)行的,這個方法本身也沒有具體的事務,而是根據(jù)action的參數(shù)不同執(zhí)行相應的方法。在登陸頁里面可以找到有一個“action=logon〞的字樣,它的目的就是在這里做邏輯判斷。當action=logon時調用logon()方法。logon()方法從UsersForm中得到用戶提交的數(shù)據(jù),然后在調用UsersDao()的logonUsers()方法。并且把UsersForm轉成Users類做為logonUsers()方法的參數(shù)。調用后會返回一個boolean型的值。如果為真,則返回“mapping.findForward("success");〞否則返回“mapping.findForward("failed");〞也就是當用戶登陸成功后,返回給用戶登陸成功的頁面,登陸失敗后返回用戶一個登陸失敗的頁面。那么UsersDao的logonUsers()方法是根據(jù)什么得到的返回值呢,現(xiàn)在就讓我們看看這個方法。這個方法先通過HibSessionFactory得到一個Hibernate的Session并且開場一個事務,Session再像使用一個欲編譯似的命令似的東西,設定參數(shù)、提交事務和最后在關閉Session.。得到一個List里面就存儲著所有查詢出的結果。根據(jù)這個結果就可以判斷出該用戶是否有登陸的權根了,在返回true或者false。就這樣合法的用戶就可以順利的登陸了。那剛剛那些有些類似于欲編譯的東西是什么呢,這些就是Hibernate特有的查詢語言,被稱為Hibernate查詢語言〔HQL〕,而它本身也就是使用的JDBC的欲編譯技術。4.1.2人員管理模塊設計人員管理模塊主要包括瀏覽人員信息、添加人員信息、人員信息的添加、人員信息的修改。此模塊文件架構如圖4所示。各項管理工作都是在用戶成功登陸后的管理頁面進展的,在管理控制頁面的左側是各項的相關鏈接,右側是操作平臺。管理控制頁面右側實際上是一個iframe,如下所示:<tdheight="550"valign="top"><iframename="frame"src="main.do"width="100%"height="100%"frameborder="0"hspace="0"></iframe></td>在左側的鏈接中使用target="frame"就可以在這個iframe中翻開新的鏈接了。單擊“添加人員信息〞,即翻開添加人員信息的頁面如圖4.2所示。圖4.2添加人員信息頁面添加人員信息的鏈接是這樣的,如下所示:<tdheight="22"align="center"><ahref="adduser.do"target="frame">添加人員信息</a></td>在Struts配置文件中,添加人員信息的鏈接沒有使用ActionForm類,也沒有使用Action的實現(xiàn)類,如下所示:<actionpath="/adduser"forward="/adduser.jsp"/>adduser.jsp文件,只是一個普通的JSP文件,但是它的表單元素都是與UsersForm相對應的,UsersForm如下所示:packagecom.bOS.bPRO_PersonManage.actionform;importcom.bOS.bUtil.DateUtil;importjavax.servlet..ServletRequest;importorg.apache.struts.action.ActionErrors;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionMapping;importcom.bOS.bPRO_PersonManage.en.Users;publicclassUsersFormextendsActionForm{publicStringgetContent(){returncontent;}publicvoidsetContent(Stringcontent){this.content=content;}privateLongid;privateStringusername;privateStringpassword;privateBytesex;privateStringbirthday;privateStringcreatetime;privateByteisadmin;privateStringcontent;publicStringgetCreatetime(){returncreatetime;}publicvoidsetCreatetime(Stringcreatetime){this.createtime=createtime;}publicLonggetId(){returnid;}publicvoidsetId(Longid){this.id=id;}publicBytegetIsadmin(){returnisadmin;}publicvoidsetIsadmin(Byteisadmin){this.isadmin=isadmin;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicvoidreset(ActionMappingarg0,ServletRequestarg1){this.id=null;this.username=null;this.password=null;this.isadmin=null;this.createtime=null;this.content=null;this.sex=null;this.birthday=null;}publicActionErrorsvalidate(ActionMappingarg0,ServletRequestarg1){returnnull;}publicStringtoString(){StringBuffertoStr=newStringBuffer();toStr.append("[UsersForm]=[\n");toStr.append("id="+this.id+";\n");toStr.append("username="+this.username+";\n");toStr.append("password="+this.password+";\n");toStr.append("sex="+this.sex+";\n");toStr.append("birthday="+this.birthday+";\n");toStr.append("createtime="+this.createtime+";\n");toStr.append("isadmin="+this.isadmin+";\n");toStr.append("content="+this.content+";\n");toStr.append("];\n");returntoStr.toString();}publicStringgetBirthday(){returnbirthday;}publicvoidsetBirthday(Stringbirthday){this.birthday=birthday;}publicBytegetSex(){returnsex;}publicvoidsetSex(Bytesex){this.sex=sex;}publicUserspopulate(){Usersu=newUsers();u.setId(getId());u.setIsadmin(getIsadmin());u.setContent(getContent());u.setUsername(getUsername());u.setPassword(getPassword());u.setSex(getSex());u.setBirthday(DateUtil.parseToDate(getBirthday(),DateUtil.yyyyMMdd));u.setCreatetime(DateUtil.parseToDate(getCreatetime(),DateUtil.yyyyMMddHHmmss));returnu;}}UsersForm類中的reset()方法作用是當用戶點擊“重置〞按鈕時,清空input輸入框的內容,toString()方法覆蓋了Object和toString()方法,populate()方法很有,它把UsersForm轉化成Users實體類,大大方便了程序在對數(shù)據(jù)庫操作時使用的方便。而且這個方法中還把用戶的生日等表單元素的值由字符型轉成日期類型。在adduser.jsp頁面中的action上可以看到它要提交的URL,如下所示:<formname="userForm"method="post"action="modifyuser.do?action=adduser"onSubmit="returnuserValidate();">配置文件中modifyuser的Action實現(xiàn)類是“com.bOS.bPRO_PersonManage.action.UsersAction〞,如下所示:<actionpath="/modifyuser"type="com.bOS.bPRO_PersonManage.action.UsersAction"name="userForm"scope="session"><forwardname="success"path="/user.do?action=listuser"/></action>在UsersAction找到參數(shù)action等于adduser時所調用的方法addUsers(),它只是把從UserForm表單轉化成的User類做為參數(shù)傳給了UsersDao的addUsers()方法。在由這個方法向數(shù)據(jù)庫添加人員信息,如下所示:publicvoidaddUsers(Usersusers)throwsHibernateException{users.setCreatetime(newjava.util.Date());Sessionsession=HibSessionFactory.currentSession();Transactiontx=session.beginTransaction();session.save(users);txmit();HibSessionFactory.closeSession();}如果添加成功頁面會被發(fā)轉到user.do?action=listuser的URL。user.do的配置文件如下所示:<actionpath="/user"type="com.bOS.bPRO_PersonManage.action.UsersAction"name="userForm"scope="request"><forwardname="success"path="/listuser.jsp"/></action>這樣就在頁面做一次提交時它訪問了二次UsersAction,第一次的作用是向數(shù)據(jù)庫中添加信息,隨后又把所有人員信息取出來顯示給用戶,同樣UsersAction還只是調用UsersDao,取數(shù)據(jù)庫的具體操作在UsersDao文件中,他這次調用的是listUser()方法,如下所示:publicListlistUser()throwsHibernateException{Sessionsession=HibSessionFactory.currentSession();Transactiontx=session.beginTransaction();Queryquery=session.createQuery("selectufromUsersasuorderbycreatetime");Listlist=query.list();txmit();HibSessionFactory.closeSession();returnlist;}UsersAction取出從UsersDao中數(shù)據(jù),在把它存到request里,然后返回returnmapping.findForward("success");在Strutsr的配置文件里返回頁是listuser.jsp。所有用戶的信息都在這個頁中顯示出來。如下所示:<tr><tdheight="22"colspan="7"align="left"><strongclass="text13">瀏覽人員信息</strong></td></tr><trclass="tdhui"><tdheight="22"align="center">人員姓名</td><tdalign="center">登陸密碼</td><tdheight="22"align="center">性別</td><tdheight="22"align="center">出生日期</td><tdheight="22"align="center">是否管理員</td><tdheight="22"align="center">簡介</td><tdalign="center">執(zhí)行操作</td></tr><%Listlist=(List)request.getAttribute("list"); if(list!=null&&list.size()>0){ Iteratorit=list.iterator();while(it.hasNext()){Usersu=(Users)it.next();%><tr><tdheight="22"align="center"><%=StringUtil.notNull(u.getUsername())%> </td><tdheight="22"align="center"><%=StringUtil.notNull(u.getPassword())%> </td><tdheight="22"align="center"><%=newByte("1").equals(u.getSex())?"男":"女"%></td><tdheight="22"align="center"><%=StringUtil.notNull(DateUtil.parseToString(u.getBirthday(),DateUtil.yyyyMMdd))%> </td><tdheight="22"align="center"><%=newByte("1").equals(u.getIsadmin())?"是":"否"%></td><tdheight="22"align="center"><%=StringUtil.notNull(u.getContent())%> </td><tdheight="22"align="center"><ahref="selectuser.do?action=selectuser&id=<%=u.getId()%>">修改</a> <ahref="modifyuser.do?action=deleteuser&id=<%=u.getId()%>">刪除</a></td></tr><% }}else{%><tr><tdheight="22"colspan="7"align="center">對不起,沒有添加人員信息!?。?lt;/td></tr><%}%>在顯示頁中,從request里面的取出數(shù)據(jù),如果有則顯示在頁面上,使用“l(fā)ist!=null&&list.size()>0”判斷如果在沒有數(shù)據(jù)的情況下,將對用戶提示說“對不起,沒有添加人員信息?。。〃?。這是添加人員信息的整個過程,在這個過程中,有一局部是用于顯示人員信息的,就是“user.do?action=listuser〞,它是顯示人員信息的地址。如果在網(wǎng)頁中直接點擊這個鏈接地址,同樣也會調用出所有用戶的信息。這就是“瀏覽人員信息〞的鏈接。頁面執(zhí)行后如圖4.4所示。圖4.4瀏覽人員信息頁面人員信息的列表的最后一列可以對該條記錄做刪除和修改。刪除的鏈接地址是“modifyuser.do?action=deleteuser&id=<%=u.getId()%>〞它向Action的實現(xiàn)類提交了兩個參數(shù),一個是action=deleteuser是固定不變的,另一個是該用戶的id這是根據(jù)不同記錄取出來的。在UsersAction類中根據(jù)action的值可以找到與其相對的方法,如下所示:privateActionForwarddeleteUser(ActionMappingmapping,ActionFormform,ServletRequestrequest,ServletResponseresponse)throwsHibernateException{Longid=newLong(request.getParameter("id"));Usersusers=newUsers();users.setId(id);dao.deleteUsers(users);returnmapping.findForward("success");}在這個方法里得到頁面提交過來的用戶ID,把這個id存在Users表中的實例中,傳給dao的deleteUsers()方法,我們可以看到關于數(shù)據(jù)庫方面的操作都被封裝在Dao中。具體的刪除操作的代碼如下所示:publicvoiddeleteUsers(Usersusers)throwsHibernateException{Sessionsession=HibSessionFactory.currentSession();Transactiontx=session.beginTransaction();session.delete(users);txmit();HibSessionFactory.closeSession();}刪除用戶時和添加用戶一樣都是先得到一個Hibernate的Session,后調用它的delete()方法就可以了,操作完成后千萬記得要提交事務,即調用commit()方法,和關閉Session。修改人員的信息時必須先把要修改的人員信息先查找出來,讓用戶可以直觀的根據(jù)以前的信息修改。這樣在點擊修改時也要傳給Action一個用戶ID,用來查詢出用戶信息,如下所示:<ahref="selectuser.do?action=selectuser&id=<%=u.getId()%>">修改</a>根據(jù)頁面的鏈接可以在Struts的配置文件里找到相應的配置信息,如下所示:<actionpath="/selectuser"type="com.bOS.bPRO_PersonManage.action.UsersAction"scope="request"><forwardname="success"path="/updateuser.jsp"/></action>它調用了UsersAction類,返回到updateuser.jsp文件,在UsserAction中同前面一樣也是根據(jù)action的參數(shù)來識別出調用selectUser()方法的,方法實現(xiàn)如下所示:privateActionForwardselectUser(ActionMappingmapping,ActionFormform,ServletRequestrequest,ServletResponseresponse)throwsHibernateException{Longid=newLong(request.getParameter("id"));Usersu=dao.loadUsers(id.longValue());request.setAttribute("user",u);returnmapping.findForward("success");}這個方法使在調用Dao的loadUsres()的方法后,得到一個Users的返回值,里面存著與此id相對應的人員信息,然后在把它存在request里。loadUsres()方法實現(xiàn)如下所示:publicUsersloadUsers(longid)throwsHibernateException{Sessionsession=HibSessionFactory.currentSession();Transactiontx=session.beginTransaction();Usersu=(Users)session.load(Users.class,newLong(id));txmit();HibSessionFactory.closeSession();returnu;}Hibernate在使用這個load()方法時比較特別,需要傳入實體類的class,和要查詢的用戶ID。得到的返回值需要做一下強制類型轉換。顯示用戶信息的頁面在updateuser.jsp中,如圖4.5所示。圖4.5修改用戶信息頁面首先要從request中取出人員信息,在轉化成Users類型,然后顯示在頁面中。在顯示是否是管理員的項時比較人特別。如下所示:<tdwidth="33%"height="22"align="center">是否管理員:</td><tdwidth="67%"height="22"align="left"><inputname="isadminhelp"type="checkbox"<%=newByte("1").equals(u.getIsadmin())?"checked":""%>onClick="javascript:adminChecked();"value="<%=u.getIsadmin()%>"></td> <inputtype="hidden"name="isadmin"value="<%=u.getIsadmin()%>">>實際想要提交的表單的名字是isadmin,而在顯示checkbox時用的name是isadminhelp。Isadmin確使用hidden類型做為表單提交名字,這和checkbox的特性有關。在使用javascrip對checkbox的value控制時。當value的值如果像這樣“value="<%=u.getIsadmin()%>"〞被寫死時,使用javascrip是對value的值改變后,在提交表單時是無效的。于是我們就用hidden做為表單提交項,而<inputname="isadminhelp"type="checkbox"<%=newByte("1").equals(u.getIsadmin())?"checked":""%>onClick="javascript:adminChecked();"value="<%=u.getIsadmin()%>">只是在顯示給用戶的看的。在表單不接收isadminhelp的value,只接收isadmin的value。4.2技術難點4.3.1參數(shù)傳遞中的中文亂碼問題由于瀏覽器中的參數(shù)傳遞是按字節(jié)傳送,因此英文和數(shù)字不會有任何的問題,而中文漢字則
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版港口物流中心運營合同
- 2025年度安全生產標準化咨詢服務及現(xiàn)場指導合同3篇
- 2024生物質鍋爐余熱回收利用項目合作協(xié)議3篇
- 2025年度大理石地暖系統(tǒng)設計與施工合同3篇
- 2024軟件系統(tǒng)銷售合同系統(tǒng)購買合同
- 2024物業(yè)企業(yè)服務能力提升與市場拓展合作協(xié)議3篇
- 敦煌壁畫與文創(chuàng)知到智慧樹章節(jié)測試課后答案2024年秋酒泉職業(yè)技術學院
- 森林防火施工員聘用協(xié)議
- 建筑工程節(jié)能改造合同
- 別墅鋅鋼欄桿安裝施工協(xié)議
- 校長在評估反饋會上的表態(tài)發(fā)言稿(5篇)
- 個人貸款業(yè)務營銷技巧課件
- 新人教版小學三年級數(shù)學上冊知識點整理歸納培訓課件
- 霉菌性陰道炎VVC的分類及診治
- 預制艙技術方案思源弘瑞課件
- 四年級科學《運動與摩擦力》說課課件
- 訴訟費退費確認表
- 全球變暖視野下中國與墨西哥的能源現(xiàn)狀分析
- 新外研版八年級上冊英語全冊教案(教學設計)
- 2022年(高級)茶藝師職業(yè)資格考試參考題庫-下(多選、判斷題部分)
- 邊坡安全施工組織方案
評論
0/150
提交評論