版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘要</b></p><p> 人力資源管理系統(tǒng)是現代企業(yè)的核心業(yè)務系統(tǒng)之一,人力資源管理的狀況和水平對企業(yè)的運作和效率至關重要?,F代企業(yè)人力資源管理的內容非常豐富,可能包含檔案管理、合同管理、薪酬管理、招聘管理、績效管理、系統(tǒng)管理等很多部分。在本次畢業(yè)設計中,我們模擬實現了一家現代企業(yè)的人力資源管理系統(tǒng)中的部分子系統(tǒng)。由于現代企業(yè)都擁有功能完善的企業(yè)內部網,
2、所以該系統(tǒng)的體系結構采用了以SSH框架為基礎的Java企業(yè)級開發(fā)模式。SSH框架作為目前最流行和最成熟的Java企業(yè)級開發(fā)技術,在軟件系統(tǒng)的效率、可用性、可維護性等方面提供了優(yōu)秀的支持,并集成了當前Java Web開發(fā)方面的最好技術。</p><p> 本人在該系統(tǒng)中主要承擔系統(tǒng)管理子系統(tǒng)的開發(fā)。該子系統(tǒng)包括用戶注冊、登錄、用戶管理、權限管理、用戶組管理等模塊。本文首先簡要介紹人力資源管理系統(tǒng)的一些應用背景和應
3、用狀況;其次介紹了該項目開發(fā)所采用的平臺、開發(fā)工具以及開發(fā)環(huán)境;本文重點描述了該系統(tǒng)開發(fā)的流程,從項目策劃、需求分析、系統(tǒng)設計、編碼與實現等階段詳細介紹了系統(tǒng)的開發(fā)過程、實現方案和策略等。</p><p> 關鍵詞:人力資源管理;系統(tǒng)管理;SSH框架;Java Web開發(fā);面向對象建模</p><p><b> Abstract</b></p>&l
4、t;p> Human resource management system is one of the core business system of modern enterprises, the status and level of human resources management is very important for the running efficiency of a enterprise. The con
5、tent of a modern enterprise human resources management is very rich, it may contain archives management, contract management, compensation management, recruitment management, performance management, system management and
6、 so on many parts. In this graduation design, we simulate the impleme</p><p> I mainly undertake system management subsystem in the system development. The subsystem includes user register, login, user mana
7、gement, rights management, user group management module, etc. This paper first briefly introduces some application background of the human resources management system and application conditions; Secondly introduces the a
8、dopted by the project development platform, development tools and development environments; This paper mainly describes the system development process, </p><p> Key words:Human resource management;System ma
9、nagement;SSH framework;Java Web development;Object-oriented modeling</p><p><b> 目錄</b></p><p><b> 1. 緒論1</b></p><p> 1.1 研究背景1</p><p> 1.
10、2 設計目標1</p><p> 1.3 關于本系統(tǒng)的基本介紹2</p><p> 1.4 論文結構2</p><p> 2. 系統(tǒng)開發(fā)環(huán)境與技術3</p><p> 2.1 系統(tǒng)開發(fā)環(huán)境3</p><p> 2.1.1 MyEclipse介紹3</p><p> 2.
11、1.2 Tomcat服務器介紹4</p><p> 2.2 系統(tǒng)開發(fā)技術4</p><p> 2.2.1 JSP與Servlet技術4</p><p> 2.2.2 JavaScript簡介7</p><p> 2.2.3 MVC框架8</p><p> 2.2.4 SSH框架9</p>
12、;<p> 3. 系統(tǒng)需求分析14</p><p> 3.1 需求描述14</p><p> 3.1.1 系統(tǒng)界面設計及操作風格的需求14</p><p> 3.1.2 系統(tǒng)功能描述14</p><p> 3.1. 3 系統(tǒng)運行環(huán)境16</p><p> 3.2 系統(tǒng)的一般性規(guī)定
13、17</p><p> 3.2.1 對性能的規(guī)定17</p><p> 3.2.2 對時間特性的規(guī)定17</p><p> 3.2.3 輸入輸出要求17</p><p> 3.2.4 數據管理能力要求17</p><p> 3.2.5 網絡安全要求18</p><p> 4
14、. 系統(tǒng)的設計與實現19</p><p> 4.1 系統(tǒng)層次劃分19</p><p> 4.2 數據庫的設計與實現19</p><p> 4.2.1數據庫的數據模型25</p><p> 4.3 系統(tǒng)的設計與實現28</p><p> 4.3.1 系統(tǒng)項目的文件夾結構28</p>
15、<p> 4.3.2 登錄模塊31</p><p> 4.3.3 注冊模塊32</p><p> 4.3.4 系統(tǒng)管理子系統(tǒng)34</p><p> 4.3.5 檔案管理子系統(tǒng)40</p><p> 4.3.6 合同管理子系統(tǒng)42</p><p><b> 總 結45<
16、/b></p><p><b> 致 謝46</b></p><p><b> 參考文獻47</b></p><p><b> 1. 緒論</b></p><p><b> 1.1 研究背景</b></p><p&
17、gt; 隨著信息技術飛速發(fā)展,人們現在已處在數字化的生存空間之中?;ヂ摼W構造了無限的信息資源,它的普及已經從根本上改變了人們現實中的生活方式和工作方式,也改變了企業(yè)的經營方式、管理方式和服務方式。</p><p> 傳統(tǒng)的依賴手工方式的記錄的管理方式已經遠無法滿足企業(yè)的需求,傳統(tǒng)的方式效率普遍較低,無法對數據進行有效的、規(guī)范的管理,查詢比較困難,數據準確性、安全性相對較差,那么企業(yè)對于新的管理平臺的需求是必然
18、的。通過新的管理系統(tǒng)平臺,企業(yè)能夠大大提高各方面效率,而且方便了企業(yè)與員工之間的相互交流,能夠方便滿足將來的業(yè)務需求。</p><p> 當今,網絡技術的迅猛發(fā)展,使得基于Web開發(fā)的各類信息系統(tǒng)已經成為一種主流趨勢?;赪eb的系統(tǒng)具有的特點:</p><p> ?。?)信息的及時更新和發(fā)布;</p><p> ?。?) 良好的用戶界面和接口;</p>
19、;<p> ?。?) 方便操作和管理;</p><p> ?。?) 系統(tǒng)功能的通用性;</p><p> ?。?) 靈活性和可擴展性;</p><p> 正是在這樣的社會大背景下,我們開始進行“安博人力資源系統(tǒng)”的課題研究,其目的在于通過建設一個網站來實現基于Web的信息系統(tǒng)的上述特點,以展現該類管理系統(tǒng)的快速、便捷、準確地發(fā)布、管理信息,提供信息管
20、理的強大功能和作用。人力資源管理平臺可以幫助企業(yè)實現對人力資源信息數據更好的管理,大大提高工作人員的效率,幫助企業(yè)高層及時了解企業(yè)員工現狀。</p><p><b> 1.2 設計目標</b></p><p> 開發(fā)設計本系統(tǒng)的任務是對人力資源信息數據的管理。通過該系統(tǒng)能夠讓用戶對檔案信息、合同信息進行添加、刪除、修改、查詢;并能夠讓管理員對用戶進行管理。<
21、/p><p> 開發(fā)系統(tǒng)的目標是幫助人力資源公司進行員工的檔案、合同信息管理,需要滿足的要求具體包括如下:</p><p> ?。?) 網頁風格符合人力資源企業(yè)的特點,簡單實用;</p><p> ?。?) 能夠實現對于人力資源信息數據的管理;</p><p> ?。?) 網站運行安全、穩(wěn)定;</p><p> 1.3
22、 關于本系統(tǒng)的基本介紹</p><p> ?。?)系統(tǒng)名稱:安博人力資源管理平臺</p><p> (2) 用戶:甘肅安博人力資源服務有限公司</p><p> ?。?) 運行環(huán)境:Windows XP</p><p> ?。?)開發(fā)平臺:SSH框架、SQL Server 2005、Tomcat6.0</p><p>
23、; (5) 開發(fā)語言:Java</p><p><b> 1.4 論文結構</b></p><p> 本文的章節(jié)安排如下:</p><p> 第一章:緒論,說明本文的研究背景、設計目標和系統(tǒng)的基本信息介紹,為接下來系統(tǒng)后臺的分析與設計做準備。</p><p> 第二章:系統(tǒng)開發(fā)環(huán)境與技術,簡單介紹系統(tǒng)實現所依賴
24、環(huán)境和開發(fā)所用的技術。如MyEclipse、Tomcat服務器、SSH框架、JSP與Servle原理、JavaScript。</p><p> 第三章:系統(tǒng)需求分析,從系統(tǒng)功能需求和一般性規(guī)定對系統(tǒng)需求進行了詳細闡述。</p><p> 第四章:系統(tǒng)的設計與實現,給出系統(tǒng)后臺的具體設計與實現,包括系統(tǒng)各個模塊功能以及數據庫的設計與實現。</p><p> 第五
25、章:總結,對整個論文總結,并針對目前工作中的不足對未來工作的展望。</p><p> 2. 系統(tǒng)開發(fā)環(huán)境與技術</p><p> 2.1 系統(tǒng)開發(fā)環(huán)境</p><p> 安博人力資源管理平臺以MyEclipse8.5為開發(fā)平臺,且由Tomcat6.0充當Web服務器來開發(fā)實現。</p><p> 2.1.1 MyEclipse介紹&
26、lt;/p><p> MyEclipse(My Eclipse Enterprise Workbench)是一款商業(yè)軟件,是一個非常優(yōu)秀的用于開發(fā)Java、J2EE的Eclipse插件集合,是對EclipseIDE的擴展,是基于Java和Eclipse的可擴展開發(fā)平臺,它的功能非常強大、支持也十分廣泛、特別是對各種開源產品的支持很不錯。就其工具本身而言,它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調試、測
27、試和發(fā)布功能,利用它可以在數據庫和J2EE的開發(fā)、發(fā)布以及應用程序服務器的整合方面,極大地提高工作效率??梢哉f,MyEclipse幾乎囊括了目前所有主流開源產品的專屬eclipse開發(fā)工具。</p><p> 隨著MyEclipse 2013支持JQuery,你可以通過插件提升性能,并可添加動畫效果到設計中。簡單而言,MyEclipse是eclipse的插件,也是一款功能非常強大的J2EE集成開發(fā)環(huán)境,支持代碼
28、編寫、配置、測試及除錯。程序的功能包括:HTML智能編輯器、Java Servlet、Struts、JSF、CSS、JavaScript、SQL、Hibernate、Spring、EJB3等,帶有自動完成和語法高亮顯示功能的J2EE編輯器。盡管eclipse是使用Java語言開發(fā)的,但它的用途并不限于Java語言。例如:支持諸如C/C++、COBOL和Eiffel及Perl等編程語言的插件。在結構上,MyEclipse的特征包括:<
29、;/p><p> ?。?) J2EE模型</p><p> ?。?) WEB開發(fā)工具</p><p><b> (3)數據庫服務</b></p><p> (4) J2EE項目部署服務</p><p> ?。?) 應用程序服務器的連接</p><p> (6)EJB開發(fā)工
30、具</p><p> ?。?) MyEclipse整合幫助</p><p> 由于MyEclipse結構上的這種模塊化,使我們在不影響其他模塊的情況下,對任一模塊可以進行單獨的擴展和升級。</p><p> 2.1.2 Tomcat服務器介紹</p><p> Tomcat最初是由Sun公司的軟件架構師詹姆斯·鄧肯·
31、戴維森開發(fā)的,后來在他的幫助下變?yōu)殚_源代碼,并由Sun貢獻給Apache基金會。Tomcat服務器是免費開源代碼的Web應用服務器,屬于輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶相對較少時被普遍使用,是開發(fā)和調試JSP程序的首選。實際上,Tomcat部分是Apache服務器的擴展,但它是獨立運行的,因此,當你運行Tomcat時,它實際上是作為一個與Apache獨立的進程單獨運行的。Tomcat是一個Servlet和JSP容器,具有處理
32、HTML頁面的功能,當配置正確時,Apache為HTML頁面服務,而Tomcat實際上運行JSP頁面和Servlet。</p><p> 由于Tomcat運行時占用的系統(tǒng)資源少,擴展性好,支持負載平衡與郵件服務等開發(fā)應用程序的基本功能,它很受廣大程序員的喜歡;而且,它還在不斷地改進和完善中,任何喜歡它的程序員都可更改它或加入新功能。由于Java的跨平臺特性,基于Java的Tomcat也具有跨平臺性。與傳統(tǒng)的桌面
33、應用程序相比,Tomcat中的應用程序是一個WAR文件。WAR是Sun提出的一種Web應用程序格式,與JAR類似,是文件的一個壓縮包。這個包中的文件按一定的目錄結構來組織:其根目錄下包含有html和Jsp文件或目錄,另外,還有一個WEB-INF目錄,這個目錄很重要。通常,在WEB-INF目錄下有一個web.xml文件和一個classes目錄,web.xml是應用的配置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或S
34、ervlet所依賴的其他類(如JavaBean)。通常,這些所依賴的類可以打包成JAR文件,然后放到WEB-INF下的lib目錄下。</p><p> 因為Tomcat的技術先進、性能穩(wěn)定,且免費,所以深受廣大程序開發(fā)者的喜愛,并得到了部分軟件開發(fā)商的認可,已經成為目前比較流行的Web應用程序服務器。</p><p> 2.2 系統(tǒng)開發(fā)技術</p><p>
35、安博人力資源管理平臺的開發(fā)技術是基于J2EE架構的SSH框架技術。開發(fā)平臺是MyEclipse,Tomcat6.0作為服務器,JDK1.7.0_03作為工具包。</p><p> 2.2.1 JSP與Servlet技術</p><p> JSP全稱Java Server Pages,是由SunMicrosystems公司倡導,許多公司一起建立的一種動態(tài)技術標準。其根本是一個簡化的Ser
36、vlet設計,它實現了HTML語法中的Java擴張(以<%,%>形式)。在傳統(tǒng)的網頁HTML文件中加入Java程序片段和JSP標簽,就能夠使JSP網頁中的Java程序片段操縱數據庫、重新定向網頁,以及發(fā)送E-mail等,實現建立動態(tài)網站所需的功能。所有程序操作都在服務器端運行,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務器在遇到訪問JSP頁面的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行的結
37、果連同JSP文件中的HTML代碼一并返回給客戶端。網絡上傳送給客戶端的僅僅是得到的結果,這樣大大降低了對客戶瀏覽器的要求,即使客戶瀏覽器端不支持Java,也可訪問JSP頁面。通常,JSP頁面很少進行數據處理,只是用來實現網頁的靜態(tài)化,只是用來提取數據,不會進行業(yè)務處理。</p><p> JSP是一種動態(tài)頁面技術,它的主要目標是將表示邏輯從Servlet中分離出來。JSP將網頁邏輯與網頁設計的顯示分離,支持可重
38、用的基于組件的設計,使基于Web的應用程序開發(fā)變得容易、迅速。JSP頁面是由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端請求以后,對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端。JSP具備了Java技術的簡單易用,完全面向對象,具有平臺無關性且安全可靠。</p><p> Servlet是服務器上運行的小程序,是一種獨立于平臺和協(xié)議的Java應用程序,可以生成動態(tài)的Web頁
39、面。Servlet位于Web服務器的內部,通過Web服務器進行加載,該Web服務器必須包含支持Servlet的java虛擬機。Servlet是JSP的技術基礎,而且大型的Web應用程序開發(fā),需要Servlet和JSP的配合才能完成。</p><p> (1)JSP工作原理</p><p> JSP頁面通常以擴展名為.jsp的純文本文件的形式存在服務器上,以當一個JSP文件第一次被請求時
40、,JSP引擎把該JSP文件轉換成一個Servlet,而這個引擎也是一個Servlet。JSP引擎先把該Jsp文件轉換成一個Java源文件,在轉換時若發(fā)現語法錯誤,轉換過程將中斷,并向服務器和客戶端輸出出錯信息;若轉換成功,JSP引擎將用javac把該Java源文件編譯成相應的class文件。然后創(chuàng)建一個該Servlet實例,該Servlet的Init()方法被執(zhí)行,此方法在Servlet的生命周期中只被執(zhí)行一次。然后,Service()
41、方法被調用來處理客戶端的請求。對于每一個請求,JSP引擎創(chuàng)建一個新的線程來處理該請求。若有多個客戶端同時請求該JSP文件,則該引擎會創(chuàng)建多個線程,每個線程對應一個客戶端請求。JSP頁面被編譯成Servlet之后,其執(zhí)行代碼以獨立線程的形式一直存在服務器的內存中,以后該JSP頁面再提出請求時,就不需要重新編譯,至到該頁面被修改或Web應用程序重新啟動。當需要銷毀某個文件時,就調用Destroy()方法來釋放相應的資源。圖2.1所示為JSP
42、的工作原理圖</p><p> 圖2.1 JSP的工作原理</p><p><b> ?。?)JSP語法 </b></p><p> 1)常用JSP命令:</p><p> a. page---頁面指令,主要用來指定當前JSP頁面的屬性。</p><p> b. <jsp:inclu
43、de>---允許包含其他動態(tài)和靜態(tài)文件。</p><p> c. <jsp:forward>---將一個JSP文件傳給另一個JSP文件。</p><p> d. <jsp:plugin>---可以通過Java插件在瀏覽器中運行Java Applet 。</p><p> e. <jsp:useBean>---是用來訪問
44、JavaBean的動作標記。當JSP頁面使用<jsp:useBean>標記時,表示將引用一個JavaBean的實例。JavaBean標記的語法格式如下:<jsp:useBean id=“實例名稱” scope=“范圍” class=“類名” type=“類的類型” beanName=“JavaBean的名稱/>。</p><p> 2)JSP內置對象:</p><p&
45、gt; 為了方便WEB頁面開發(fā),JSP提供了一組內置對象,這些內置對象可以不經顯式的聲明而在程序中直接使用,JSP的主要內置對象有Request、Response、Out、Session等。通過這組內置對象,可以實現頁面的一些請求輸入、輸出功能,還可實現數據在頁面之間的交互。</p><p> a. Request對象:主要功能是接受客戶端以HTTP方式傳送的數據,實現與客戶交互的功能。一般最常用的是它的ge
46、tParameter(String name)方法來獲取傳遞的參數。</p><p> b. Response對象:主要功能是用來對客戶的請求做出響應,與Request對象對應。Response對象用于將服務器的數據發(fā)送到客戶端,輸出的數據可以是各種數據類型,甚至是文件。一般經常用到的是它的sendRedirect(URL url)方法來重定向當前用戶訪問的url。</p><p>
47、c. Out對象:主要功能是用于動態(tài)地向客戶端輸出數據信息,主要作用是在Web瀏覽器內輸出信息。在數據的輸出方面會經常用到它的rintln(parameter)方法,該方法也是進行糾錯處理時一個比較有效的輸出方法。</p><p> d. Session對象:主要功能用來保存每個用戶在會話期間的數據信息,這樣就方便了會話處理工作。當用戶登陸網站時,系統(tǒng)將為其生成一個session對象,用以記錄該用戶的個人信息,
48、當用戶退出網站時,該session對象將會自動注銷。Session對象可以綁定若干個人的信息或java對象。</p><p> 2.2.2 JavaScript簡介</p><p> JavaScript是一種基于對象和事件驅動且具有相對安全性的客戶端腳本語言,也是一種廣泛應用于客戶端WEB開發(fā)的腳本語言,常用來給HTML網頁添加動態(tài)功能,比如響應用戶的各種操作。它最初是由Netsca
49、pe公司的Brendan Eich設計,是一種動態(tài)、弱類型、基于原型的語言,內置支持類。JavaScript是Sun公司的注冊商標。完整的JavaScript實現包含三個部分:ECMAScript,字節(jié)順序記號,文檔對象模型。</p><p> JavaScript是為了適應動態(tài)網頁制作的需要而誕生的一種編程語言,現今廣泛地應用于Internet網頁制作。JavaScript是由Netscape公司開發(fā)的一種腳
50、本語言(scripting language),或者稱為描述語言。JavaScript的出現使得用戶和網頁之間實現了一種動態(tài)的、實時性的、交互性的關系,使得網頁包含了更多活躍的元素和更加精彩的內容。在HTML基礎上,使用JavaScript可以開發(fā)交互式Web網頁。JavaScript由于短小精悍,且是在客戶機上執(zhí)行的,因此大大提高了網頁的交互能力和瀏覽速度。</p><p> JavaScript加入網頁的兩
51、種方法:</p><p> (1)直接加入HTML文檔</p><p> 這是最常用的方法,大部分含有JavaScript的網頁都采用這種方法,如:</p><p> <script language="Javascript"></p><p><b> <!--</b>&l
52、t;/p><p> document.writeln("這是Javascript!采用直接插入的方法!");</p><p> //-Javascript結束--></p><p><b> </script></b></p><p> <script language=&
53、quot;Javascript”>用來告訴瀏覽器這是用JavaScript編寫的程序,需要調動相應的解釋程序進行解釋。</p><p> HTML的注釋標簽<!--和-->,用來去掉瀏覽器所不能識別的JavaScript源代碼,這對于不支持Javascript語言的瀏覽器來說是很有用的。</p><p> //-Javascript結束:雙斜杠表示JavaScript
54、的注釋部分,即從//開始到行尾的字符都被忽略。</p><p> <script></script>的位置并不是固定的,可以包含在<head></head> 或<body></body>中的任何位置。</p><p><b> ?。?)引用方式</b></p><p>
55、 若項目已經有一個JavaScript源文件(以js為擴展名),則可以采用這種引用的方式,以提高程序代碼的利用率。其格式如下:</p><p> <script src=url language="Javascript"></script> </p><p> 其中url就是.js文件的地址。同樣,這樣的語句可以放在HTML文檔頭部或主體的
56、任何部分。如果要實現“直接插入方式”中的效果,可以首先創(chuàng)建一個JavaScript源代碼文件“script.js”,其內容如下:document.writeln("這是Javascript!采用直接插入的方法!")。在網頁中可以這樣調用程序:</p><p> <script src=”script.js” language=”Javascript”></script&g
57、t;</p><p> 2.2.3 MVC框架</p><p> MVC是一種架構設計模式,該模式主要應用于圖形化用戶界面(GUI)應用程序。MVC即Model-View-Controller由模型(Model)、視圖(View)、控制器(Controller)三部分組成,M代表業(yè)務邏輯,V代表視圖,C代表控制層。</p><p> 模型(Model)層:是企
58、業(yè)數據和業(yè)務規(guī)則,它具有最多的處理任務。一個軟件實現了什么功能,它該如何實現功能,以及這些功能之間的聯系都是在模型層進行處理的。模型層是一個軟件的核心,對于軟件功能的好壞、完善,業(yè)務層起到了決定性的作用。</p><p> 視圖(View)層:是用戶所能看到的并與之交互的界面。在J2EE技術中,常用的表示層技術主要由JSP、JSF。視圖向用戶顯示相關的數據,并能接受用戶的輸入數據,但是它不能進行實際的業(yè)務處理。
59、視圖還可以接受模型發(fā)出來的數據更新事件,從而對用戶界面進行同步更新。</p><p> 控制(Controller)層:接受用戶的輸入并調用模型和視圖去實現用戶的需求。控制層很少做與業(yè)務有關的事情,比如登錄驗證。所以,在軟件的分層結構設計中,控制層的代碼量幾乎是最少的,但它的作用也是非常重要的。</p><p> MVC框架具有耦合性低、重用性高、生命周期成本低、部署快、可維護性高等特
60、點。視圖層和業(yè)務層分離,就允許更改視圖層的代碼而不需要重新編譯模型和控制器的代碼,同樣,一個應用的業(yè)務流程或業(yè)務規(guī)則改變后就只需要改動MVC模型層。因為模型、視圖和控制的分離,使得很容易改變應用程序的數據層和業(yè)務規(guī)則。MVC使得開發(fā)和維護用戶接口的技術含量降低。分離視圖層和業(yè)務層也使WEB應用更易于維護和修改。模型層、視圖層、控制層三者之間的關系和各自的功能如圖2.2所示: </p><p> 圖2
61、.2 MVC模式關系和功能圖</p><p> 2.2.4 SSH框架</p><p> SSH為Struts+Spring+Hibernate的一個集成框架,是目前比較流行的一種web應用程序的開源框架。其中,Struts進行流程控制,Spring進行業(yè)務流轉,Hibernate進行數據庫操作的封裝。Struts的MVC設計模式使我們的邏輯變得很清晰,Spring的IOC和AOP使
62、我們的產品最大限度上解耦,Hibernate對實體對象持久化。</p><p> 典型的J2EE三層結構為表現層、業(yè)務邏輯層和數據服務層,三層體系將業(yè)務規(guī)則、數據訪問以及合法性校驗等工作放在業(yè)務邏輯層處理。客戶端不直接與數據庫交互,而是通過組件與業(yè)務邏輯層建立連接,再由業(yè)務邏輯層與數據庫交互。表現層采用的是傳統(tǒng)的JSP技術,業(yè)務邏輯層采用的是Spring+Hibernate,為了將控制層與業(yè)務邏輯層分離,又細分
63、為:</p><p> 1)Action層(web層),即MVC模式中的controller,負責控制業(yè)務邏輯層與表現層的交互,調用業(yè)務邏輯層,并將業(yè)務數據返回給表現層作組織表現,系統(tǒng)在這采用Struts。</p><p> 2)Service層,即業(yè)務邏輯層,負責實現業(yè)務邏輯,業(yè)務邏輯以DAO層為基礎,通過對DAO組件的模式包裝,完成系統(tǒng)要求的業(yè)務邏輯。</p><
64、;p> 3)DAO層,負責與持久化對橡交互,該層封裝了數據的增、刪、改、查的操作。</p><p> 4)Entity層,持久化對象,通過實體關系映射的工具將關系型數據庫中的數據映射成對象,方便的實現以面向對象的方式操作數據庫,系統(tǒng)在這采用Hibernate。Spring的作用貫穿整個業(yè)務邏輯層,將Action層、Service層、DAO層以及Entity層無縫整合,其數據服務層用來存放數據。</
65、p><p> SSH框架中Struts、Spring、Hibernate的介紹:</p><p> ?。?)Struts </p><p> Struts對Model、View和Controller都提供了對應的組件。ActionServlet,這個類是Struts的核心控制器,負責攔截來自用戶的需求。Action,這個類由用戶提供,負責接收來自Actio
66、nServlet的請求,并根據該請求來調用模型的業(yè)務邏輯方法來處理請求,并將結果返回給JSP頁面顯示。</p><p><b> Model部分</b></p><p> 由ActionForm和JavaBean組成,其中ActionForm用于將用戶的請求參數封裝成ActionForm對象,該對象被ActionServlet轉發(fā)給Action,Action根據A
67、ctionForm里面的請求參數處理用戶的請求。JavaBean則封裝了底層的業(yè)務邏輯,包括數據庫訪問。</p><p><b> View部分</b></p><p> 該部分采用JSP技術實現。Struts提供了豐富的標簽庫,使用標簽庫可以減少腳本的使用。</p><p> Controller組件</p><p&
68、gt; Controller組件有兩個部分組成:系統(tǒng)核心控制器、業(yè)務邏輯控制器。系統(tǒng)核心控制器,對應ActionServlet,該控制器繼承了HttpServlet類,該控制器負責攔截所有的HTTP請求,然后根據用戶請求決定是否要傳給業(yè)務邏輯控制器。業(yè)務邏輯控制器,負責處理用戶請求,其本身不具備處理能力,而是調用Model來實現處理,對應Action層。</p><p> Struts配置文件的核心代碼:
69、 </p><p><b> <struts></b></p><p> <!-- 用戶配置 --></p><p> <package name="user" namespace="/" extends="access"></p>
70、;<p> <action name="userAction_*" method="{1}" class="cn.hr.hrmps.struts2.action.UserAction"></p><p> <result name="userList">WEB-INF/user/list.j
71、sp</result></p><p> <result name="user">WEB-INF/user/view.jsp</result></p><p> <result name="toAdd">WEB-INF/user/add.jsp</result></p>&
72、lt;p> <result name="toEdit">WEB-INF/user/edit.jsp</result></p><p><b> </action></b></p><p> </package></p><p> </struts> &
73、lt;/p><p><b> (2)Spring</b></p><p> Spring是一個開源框架,是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架,它是由Rod Johnson創(chuàng)建,它的創(chuàng)建是為了解決企業(yè)應用開發(fā)的復雜性。Spring使用基本的JavaBean來完成以前只能有EJB完成的工作,并提供了更多的企業(yè)應用功能,且Spring的用途不僅僅限
74、于服務器端的開發(fā)。Spring具有簡單性、可測試性和耦合性等特點,任何Java應用都可從中受益。</p><p> 控制反轉(Inversion of Control,縮寫IoC),也叫做依賴注入(DI),是一個重要的面向對象編程的法則,通過這種技術可以削減程序的耦合性,它也是輕量級的Spring框架的核心。應用控制反轉,對象在被創(chuàng)建的時候,由一個外界實體調控系統(tǒng)內的所有對象,將其所依賴的對象的應用,傳遞給它,
75、也可說是,依賴被注入到對象中。所以,控制反轉是關于一個對象如何獲取它所依賴對象的引用,這個責任的反轉。</p><p> 面向切面是Spring提供的面向切面編程的一種技術,允許通過分離應用的業(yè)務邏輯和系統(tǒng)服務(如事務管理(Transaction))進行內聚性的開發(fā)。</p><p> Spring可以將簡單的組件配置、組合成復雜的應用。在Spring中,應用對象以聲明的方式被組合,典
76、型的是在一個XML文件中。Spring還提供了事務管理、持久化框架集成等基礎功能將應用邏輯的開發(fā)留給了程序員。Spring的這些特征使程序員可以編寫更干凈、更可管理、且易于測試的代碼。</p><p> SSH三層框架中Hibernate交由Spring管理,Spring配置文件的核心內容:</p><p> <!-- 定義事務管理器 --></p><
77、p> <bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"></p><p> <property name="dataSource" ref="dataSourc
78、e"></property></p><p><b> </bean></b></p><p> <!-- 定義事務通知 --></p><p> <tx:advice id="txAdvice" transaction-manager="transa
79、ctionManager"></p><p> <!-- 定義方法的過濾規(guī)則 --></p><p> <tx:attributes></p><p> <!-- 所有方法都使用事務 --></p><p> <tx:method name="save*"
80、propagation="REQUIRED" /></p><p> <!-- 定義所有get開頭的方法都是只讀的 --></p><p> <tx:method name="delete*" propagation="REQUIRED" /></p><p> <
81、!-- 所有方法都使用事務 --></p><p> <tx:method name="get*" propagation="REQUIRED" /></p><p> <!-- 定義所有get開頭的方法都是只讀的 --></p><p> <tx:method name="
82、set*" propagation="REQUIRED" /></p><p> </tx:attributes></p><p> </tx:advice></p><p> <bean id="UserInfoDAO" class="com.hr.dao.Use
83、rInfoDAO"></p><p> <property name="sessionFactory"></p><p> <ref bean="sessionFactory" /></p><p> </property></p><p>&l
84、t;b> </bean></b></p><p> <bean id="UserInfoAction" class="com.hr.action.UserInfoAction"></p><p> <property name="userinfodao"></p&g
85、t;<p> <ref bean="UserInfoDAO" /></p><p> </property></p><p><b> </bean></b></p><p> ?。?)Hibernate</p><p> Hibernate是
86、一個開放源代碼的對象關系映射框架,它對JDBC進行了輕量級的對象封裝,使得程序員能夠使用對象編程思維隨心所欲的來操縱數據庫。Hibernate可以應用在使用JDBC的任何場合,既可以在Java客戶端使用,也可以在Servlet/JSP的WEB應用中使用。Hibernate的核心接口共有五個,分別是Session、SessionFactory、Transaction、Query、Configuration,這五個接口在任何開發(fā)中都會用到。
87、通過使用這些接口,可以對持久化對象進行存取,還能夠進行事務控制。下面是對五個核心接口的介紹:</p><p> 1) Session接口:負責執(zhí)行被持久化對象的CRUD操作,CRUD操作是完成與數據庫的交流,包含了常見的SQL語句。Session對象是非線程安全的,且Hibernate的session不同于JSP應用中的HttpSession。</p><p> 2) SessionF
88、actory接口:負責初始化Hibernate,它充當數據存儲源的代理,并負責創(chuàng)建Session對象。這里用到了工廠模式,通常一個項目只需要一個SessionFactory,當要操作多個數據庫時,可為每個數據庫指定一個SessionFactory。</p><p> 3) Transaction接口:負責事務相關的操作,它是可選的,開發(fā)人員可以設計編寫自己的底層事務處理代碼。</p><p&
89、gt; 4) Query接口:負責執(zhí)行各種數據庫的查詢,它可以使用HQL語言和SQL語句兩種表達方式。</p><p> 5) Configuration接口:負責配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate啟動過程中,Configuration類的實例首先定位映射文檔的位置并讀取配置。然后創(chuàng)建SessionFactory對象。</p><p&g
90、t; 3. 系統(tǒng)需求分析</p><p><b> 3.1 需求描述</b></p><p> 當前大量企業(yè)的員工的管理尚處于手工作業(yè)階段,不但效率低下,且常因為管理的不慎而出現紕漏。傳統(tǒng)的依賴手工的方式記錄,效率較低,無法實現對數據的系統(tǒng)規(guī)范的管理,查詢困難、數據準確性、安全性較差。為了滿足企業(yè)的需求,現設計一人力資源管理系統(tǒng),來對人力資源數據進行管理,幫助
91、企業(yè)達到員工管理的辦公自動化,節(jié)約管理成本,大幅度提高人力資源數據管理的效率。</p><p> 在國內,各個企業(yè)原有的手工管理方式現已不適應形式的發(fā)展,為實現從靜態(tài)管理到動態(tài)管理的轉變,樹立企業(yè)的新形象,必須應用計算機來輔助管理,從而全面實行信息化管理,能夠對員工的信息進行動態(tài)監(jiān)控,提升企業(yè)管理的檔次和水平。人力資源管理系統(tǒng)的建設是企業(yè)適應市場形勢,新式管理的必由之路。</p><p>
92、; 3.1.1 系統(tǒng)界面設計及操作風格的需求 </p><p> 安博人力資源管理系統(tǒng)頁面設計應與企業(yè)的結構、文化風格保持一致,采用清新穩(wěn)重的暗灰色格局,以簡潔、明了的引導方式,相對統(tǒng)一的網站風格和布局,突出網站的重點;在網站設計實施風格上堅持美觀大方、莊重樸實的風格,界面具有親和力,充分展示安博人力資源管理系統(tǒng)的風采;切實把安博人力資源管理系統(tǒng)的門戶網站建設成為“公司形象展示的窗口、信息發(fā)布的載體、政務
93、信息公開的平臺、交流互動的橋梁、公共服務的門戶”。</p><p> “安博人力資源管理系統(tǒng)的門戶網站”在整個版面、欄目模塊布局、色彩、文字等方面的設計,使之更美觀、簡潔、實用。</p><p> 易用性:操作界面與操作風格盡可能與安博人力資源系統(tǒng)系統(tǒng)保持一致,使用風格同樣的菜單及正文區(qū)設計,菜單操作方式以及信息提示位置盡可能相同,以便于操作人員盡快熟悉本系統(tǒng)功能。</p>
94、<p> 3.1.2 系統(tǒng)功能描述</p><p> 基于SSH框架的人力資源管理系統(tǒng)主要包括:系統(tǒng)管理、檔案管理、合同管理三個子系統(tǒng)。系統(tǒng)管理子系統(tǒng)主要包括登錄、注冊、用戶的添加、刪除、修改、查詢,權限的添加、回收、查詢,角色的賦予、回收、查詢;檔案管理子系統(tǒng)主要包括檔案的建立、刪除、修改、查詢,物資報表打印,生日提醒;合同管理子系統(tǒng)主要包括合同的建立、刪除、查詢、修改,合同到期提醒。<
95、/p><p> 安博人力資源管理系統(tǒng)的系統(tǒng)角色分為4種:人力資源經理、人力資源專員、信息錄入員、系統(tǒng)管理員(admin_role)。</p><p> 如圖3.1所示為安博人力資源管理平臺的系統(tǒng)管理子系統(tǒng)的用例圖,它反映了該子系統(tǒng)的設計應該實現哪些功能。</p><p> 圖3.1 系統(tǒng)管理子系統(tǒng)的用例圖</p><p> 如圖3.2所示
96、為安博人力資源管理平臺的整個系統(tǒng)的實體類圖,它反映了系統(tǒng)的各實體之間的關聯和依賴關系。</p><p> 圖3.2 系統(tǒng)實體類圖</p><p> 3.1. 3 系統(tǒng)運行環(huán)境</p><p><b> ?。?)硬件環(huán)境:</b></p><p> CPU:Intel(R) Pentium(R) Dual T2390
97、 1.86GHz</p><p><b> 內存:2 G</b></p><p><b> 硬盤:250G</b></p><p> 顯示:ATI 獨立顯卡</p><p><b> (2) 軟件環(huán)境:</b></p><p> 操作系統(tǒng):Wi
98、ndows XP Professional SP3</p><p> 數據庫:SQL server 2005</p><p> 瀏覽器:Microsoft Internet Explorer</p><p> 相關應用軟件: Tomcat 6.0,Dreamweaver8、Power Designer15.1、Rational Rose</p>
99、<p> 開發(fā)平臺:MyEclipse 8.5</p><p> 3.2 系統(tǒng)的一般性規(guī)定</p><p> 3.2.1 對性能的規(guī)定</p><p> ?。?)安全性:系統(tǒng)應該具有較強的安全性,對數據和相關的信息有較強的保護性。</p><p> ?。?)穩(wěn)定性:系統(tǒng)應該在一定環(huán)境下穩(wěn)定運行。</p><
100、;p> ?。?)兼容性:系統(tǒng)能夠與其它軟硬件有良好的兼容性</p><p> ?。?)實用性:考慮到要盡量滿足業(yè)務功能需求的前提下,又要適應各業(yè)務角色的工作特點,該系統(tǒng)做到簡單、實用、人性化,實現了統(tǒng)一身份和人力資源管理、統(tǒng)一內容管理、個性化界面和內容定制。</p><p> ?。?) 可維護性:系統(tǒng)設計應標準化、規(guī)范化,按照分層設計,軟件構件化實現。一是使業(yè)務與實現分離,邏輯與數據
101、分離;二是以統(tǒng)一的服務接口規(guī)范為核心,使用開放標準;三是構件語意描述形式化;四是提煉封裝構件規(guī)范化。</p><p> ?。?)可擴展性:考慮到網上業(yè)務建設是一個循序漸進、不斷擴充的過程,本期項目建設將搭建底層框架基礎,以便于未來采用積木式結構,整體構架可以與原有系統(tǒng)進行無縫連接,為今后系統(tǒng)擴展和集成留有擴充余量。</p><p> ?。?)可移植性:選擇開放的應用平臺,建設一套與平臺無關
102、,以統(tǒng)一的服務接口規(guī)范和與各種數據庫相連的應用組件。</p><p> 3.2.2 對時間特性的規(guī)定 </p><p> 人力資源管理系統(tǒng)的查詢時間取決于服務器和Web瀏覽器之間的連接寬帶以及同時訪問系統(tǒng)的客戶端的數量,系統(tǒng)的實現應以快速響應管理人員的請求為優(yōu)先目標。</p><p> 3.2.3 輸入輸出要求</p><p> 輸入
103、---用戶通過WEB頁面將各種用戶信息數據輸入,導入數據或者提交查詢、修改、刪除請求,系統(tǒng)將數據的存儲格式為數據庫專用格式。</p><p> 輸出---系統(tǒng)通過調用數據庫的信息將結果數據顯示在Web瀏覽器的HTML頁面上,并能夠根據業(yè)務的需要生成指定的報表或數據的匯總統(tǒng)計結過以及進行打印工作。</p><p> 3.2.4 數據管理能力要求</p><p>
104、 (1)相應的數據訪問控制措施</p><p> ?。?) 登錄時用戶的身份鑒別與權限控制</p><p> ?。?)數據的完整性保護措施。</p><p> 3.2.5 網絡安全要求 </p><p> ?。?)通過設置安全級別權限來增強系統(tǒng)的安全性。</p><p> ?。?)通過設置用戶密碼的復雜程度,來增強系
105、統(tǒng)的安全;若密碼被盜,應快速告知管理員注銷該用戶。</p><p> (3)對來自內部的攻擊則抵御的能力不強,只能關閉服務器。</p><p> 4. 系統(tǒng)的設計與實現</p><p> 4.1 系統(tǒng)層次劃分</p><p> 在該系統(tǒng)中,系統(tǒng)共分為5層,分別為表現層、控制層、業(yè)務邏輯層、數據訪問層、數據層,如圖4.1所示。<
106、/p><p> 圖4.1 系統(tǒng)層次劃分圖</p><p> 在表現層中,系統(tǒng)主要采用了JSP技術,將Action傳遞過來的數據封裝在ActionForm對象中,該對象被ActionServlet轉發(fā)給Action,Action根據ActionForm里面的請求參數來處理用戶的請求,進行一定的處理之后,再反饋給前臺頁面。</p><p> 控制層的作用主要是控制協(xié)調
107、系統(tǒng)中各模塊的執(zhí)行流程,在控制層中,Struts中的核心控制器ActionServlet控制系統(tǒng)流程轉向。</p><p> 業(yè)務邏輯層,主要采用Javabean,來實現對具體系統(tǒng)的業(yè)務邏輯處理。</p><p> 數據訪問層,主要是采用Hibernate持久化方案,通過Hibernate來對數據層進行封裝操作,這樣了方便于在不同的數據庫系統(tǒng)間移植。Hibernate對數據的持久化操作
108、實現了以面向對象的思想來操作數據庫。</p><p> 數據層存放系統(tǒng)中的數據,本系統(tǒng)采用MySQL數據庫。</p><p> 4.2 數據庫的設計與實現</p><p> 數據庫是存放數據的倉庫,也即是數據按照一定的規(guī)律存放在計算機中,它是信息系統(tǒng)的核心和基礎,是信息系統(tǒng)開發(fā)和建設的重要組成部分,把信息系統(tǒng)中大量的數據按一定的模型組織起來,提供存儲、維護、檢
109、索數據的功能,使信息系統(tǒng)可以方便、及時、準確地從數據庫中獲得所需的信息。數據庫的設計是信息資源管理最有效的手段,數據庫設計就是根據具體的應用環(huán)境,構造合理數據庫模式,建立數據庫的邏輯結構,有效存儲數據,滿足用戶實際需求和系統(tǒng)應用處理要求。在動態(tài)網站設計中數據庫的重要性不言而喻。合理地設計數據庫結構可以提高系統(tǒng)運行的效率。如果設計不當,查詢起來就非常吃力,系統(tǒng)的性能也會受到影響。</p><p> 數據庫設計實際
110、上就是對項目設計的一個整體規(guī)劃,因為數據庫的設計要從全局的角度考慮,而且數據庫中表的結構都是與程序緊密相關的,如果數據庫設計如果沒有到位,程序的設計也會受到一定的影響。</p><p> 數據庫的設計一般主要包括兩個部分:</p><p> ?。?)對具體的網站系統(tǒng)的設計進行需求分析,確定需在數據庫中保存的信息。</p><p> ?。?)確定每個表的字段屬性。&
111、lt;/p><p> 本系統(tǒng)采用的是MySQL數據庫,系統(tǒng)數據庫名為hrmps,根據系統(tǒng)的設計和業(yè)務邏輯的分析,數據庫HRMP中包括12個數據表。</p><p> 本系統(tǒng)所用的數據庫表有:</p><p> ?。?)user用戶表</p><p> (2)role角色表</p><p> ?。?)privilege
112、權限表</p><p> (4)user_role賦予角色表</p><p> ?。?)role_privilege賦予權限表</p><p> ?。?)archive檔案表</p><p> (7)work工作經歷表</p><p> ?。?)family家庭關系表</p><p> ?。?/p>
113、9)study學習經歷表</p><p> ?。?0)contract合同表</p><p> ?。?1)application應聘信息表</p><p> ?。?2)unit單位表</p><p> 表4.1 user(用戶)表</p><p> 說明,該表用于保存使用該系統(tǒng)的用戶信息</p>&l
114、t;p> 表4.2 role(角色)表</p><p> 說明,該表用于定義該系統(tǒng)的系統(tǒng)角色</p><p> 表4.3 privilege(權限)表</p><p> 說明,該表用于定義系統(tǒng)中不同角色所具有的權限信息</p><p> 表4.4 user_role(賦予角色)表</p><p> 說
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件工程畢業(yè)設計論文
- 軟件工程畢業(yè)設計(論文)-論壇系統(tǒng)的測試
- 軟件工程專業(yè)畢業(yè)設計(論文)指導教學課件
- (軟件工程)圖書借閱管理系統(tǒng)畢業(yè)設計論文
- 軟件工程項目畢業(yè)設計
- 軟件工程畢業(yè)設計論文 軟件項目管理系統(tǒng)的設計和實現
- 軟件工程畢業(yè)設計論文 員工信息管理系統(tǒng)
- 軟件工程畢業(yè)設計論文---員工信息管理系統(tǒng)設計
- 軟件工程畢業(yè)設計論文---員工信息管理系統(tǒng)設計
- 軟件工程畢業(yè)設計論文 員工信息管理系統(tǒng)設計
- 軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文
- 軟件工程畢業(yè)設計完整版
- 軟件工程畢業(yè)設計完整版
- 軟件工程專業(yè)畢業(yè)論文
- 本科軟件工程畢業(yè)論文
- 2013畢業(yè)設計進度表軟件工程-軟件工程-2009234040210-張悅 .doc
- (畢業(yè)設計論文) 軟件工程網上輔助教學系統(tǒng)(1)
- 大學生軟件工程畢業(yè)論文設計
評論
0/150
提交評論