版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設計(論文)</b></p><p> 設計論文題目:企業(yè)內(nèi)部感應卡考勤</p><p> 管理系統(tǒng)設計與實現(xiàn)</p><p> 企業(yè)內(nèi)部感應卡考勤管理系統(tǒng)設計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 作
2、為一種有效的系統(tǒng)實現(xiàn)框架,Struts + Spring + Hibernate (SSH)已成為Java開發(fā)的主流體系。每個框架分別負責一個層次的實現(xiàn),每層在應用程序中都有明確的責任。每一應用層彼此獨立且保持一致。該框架以一種松散耦合的方式彼此作用,而無需負責低層的技術(shù)細節(jié),使得開發(fā)的系統(tǒng)層次清晰,對編程的持續(xù)、代碼的擴展和系統(tǒng)的維護更加方便。</p><p> ExtJS是一個用JavaScript寫的,與
3、后臺技術(shù)無關(guān)的Ajax框架,用于在客戶端創(chuàng)建豐富多彩的Web應用程序界面,給用戶交互一個很好的體驗;ExtJS也可以廣泛用在基于.Net、Java、Php等開發(fā)的系統(tǒng)應用中。</p><p> 本文闡述了基于感應卡采集數(shù)據(jù)而實現(xiàn)的一個考勤管理系統(tǒng),采用了ExtJS和SSH技術(shù)進行了具體實現(xiàn)。本文首先介紹了系統(tǒng)的相關(guān)背景,所用技術(shù)的相關(guān)現(xiàn)狀和發(fā)展趨勢,并詳述了所需的技術(shù)背景;然后詳細分析了各系統(tǒng)功能模塊;接著從表
4、示層、業(yè)務層、數(shù)據(jù)訪問層分別對系統(tǒng)的設計進行了闡述;最后敘述了系統(tǒng)的具體功能實現(xiàn)。該考勤系統(tǒng)在前端界面上用ExtJS來實現(xiàn),表示層使用了Struts技術(shù),業(yè)務層使用Spring來完成,持久層則采用現(xiàn)在很流行的輕量級組件Hibernate。該系統(tǒng)的整體結(jié)構(gòu)清晰明了,頁面美觀,呈現(xiàn)了一個很好的總體效果。</p><p> 關(guān)鍵詞:考勤管理系統(tǒng);SSH框架;ExtJS技術(shù)</p><p>
5、Design and Realization of Enterprise Attendance Management System Using Card</p><p><b> Abstract</b></p><p> As an effective system frame, Spring + Struts + Hibernate (SSH) has bec
6、ome the mainstream of system development based on Java. Each frame is responsible for one level. Each level in the application has clear responsibility. Each application layer is independent and consistent with each othe
7、r. This framework works with each other in a loosely coupled way, and every level does not care about low-level technical details, which makes developed system clearly, and bring more convenient for programs’ </p>
8、<p> ExtJS is an Ajax framework, written by JavaScript, which is nothing to do with background code. It is used for the client to create rich Web application interface, and gives user a very good experience for in
9、teraction; it also can be used in the system based on multiple development language, such as .Net, Java, Php and so on.</p><p> This dissertation introduces design and realization of attendance management s
10、ystem which using ExtJS and SSH technology, based on cards which is responsible for collecting data. At first, this dissertation presents the related technologies system used,these technologies’ development and trend; Th
11、en, it gives the detailed requirment analyse for system’s function modules; And then the system design from presentation layer, logic layer and persistence layer side is given in detail. Finally, it sho</p><p&
12、gt; Key Words:attendance management system; SSH frame; ExtJS technology</p><p><b> 目 錄</b></p><p><b> 1緒論1</b></p><p> 1.1項目背景1</p><p
13、> 1.2相關(guān)技術(shù)現(xiàn)狀與發(fā)展趨勢2</p><p> 1.3論文組織結(jié)構(gòu)3</p><p><b> 2技術(shù)背景5</b></p><p> 2.1SSH架構(gòu)5</p><p> 2.1.1SSH概述5</p><p> 2.1.2SSH架構(gòu)6</p
14、><p> 2.2ExtJS技術(shù)9</p><p> 2.2.1ExtJS概述9</p><p> 2.2.2ExtJS優(yōu)勢9</p><p> 3系統(tǒng)分析與設計11</p><p> 3.1系統(tǒng)概述11</p><p> 3.1.1 角色定義12</p&
15、gt;<p> 3.1.2 考勤管理12</p><p> 3.1.3 請假管理14</p><p> 3.2系統(tǒng)設計15</p><p> 3.2.1前臺設計16</p><p> 3.2.2表示層設計17</p><p> 3.2.3邏輯層設計18</p&
16、gt;<p> 3.2.4數(shù)據(jù)訪問層設計18</p><p> 3.2.5數(shù)據(jù)字典19</p><p> 4系統(tǒng)的實現(xiàn)27</p><p> 4.1ExtJS的相關(guān)實現(xiàn)27</p><p> 4.1.1ExtJS日期查詢請求實現(xiàn)27</p><p> 4.1.2ExtJS
17、多選擇按鈕實現(xiàn)29</p><p> 4.1.3ExtJS分頁實現(xiàn)30</p><p> 4.1.4ExtJS分組實現(xiàn)31</p><p> 4.2SSH的配置實現(xiàn)32</p><p> 4.2.1web.xml 配置32</p><p> 4.2.2Struts配置33</p&g
18、t;<p> 4.2.3Spring配置33</p><p> 4.2.4Hibernate配置34</p><p> 4.3數(shù)據(jù)相關(guān)操作35</p><p><b> 5結(jié)論37</b></p><p> 致 謝39</p><p> 參 考
19、文 獻41</p><p><b> 緒論</b></p><p><b> 項目背景</b></p><p> 隨著經(jīng)濟的高速發(fā)展,以及高科技對經(jīng)濟的影響,用計算機來進行考勤的管理也成為現(xiàn)代化企業(yè)運作不可或缺的一部分??记诠芾硐到y(tǒng)是公司對員工進行考勤記錄的管理機制,主要用于對公司員工上、下班進行一般考勤以及包括員
20、工病假、事假、出差等特殊考勤。該系統(tǒng)還包括了管理員工信息如:姓名、員工號、所在部門、職務、聯(lián)系方式等基本信息?,F(xiàn)在利用計算機管理考勤工作,不僅大大降低了考勤人員的工作量,提高了工作效率,使原本復雜的工作變得簡單而輕松;使企業(yè)減少了對考勤工作的人力和物力的投入,也保證了考勤的準確性和透明度[1]。</p><p> 多少年來,考勤方式也隨著科學技術(shù)的進步不斷發(fā)展和完善。最傳統(tǒng)的人工登記考勤方式,由于存在代簽、不如
21、實簽、人工管理數(shù)據(jù)等缺點早已被淘汰。打卡是目前考勤的主要方式,但代打卡的問題仍然存在。指紋考勤是目前研究和開發(fā)的熱點,市場上也出現(xiàn)了不少產(chǎn)品。它擁有指紋的唯一性、方便性和不丟失的特點,并能從根本上解決代考勤問題。但它存在一個嚴重問題,即不衛(wèi)生。單位每位職工每天幾次地觸摸指紋閱讀器,使指紋閱讀器成為疾病傳播的高風險地,且職工人人不能回避。由于SARS等強致命性疾病的爆發(fā),人們的衛(wèi)生健康意識增強,因此尋找一種非接觸性考勤方式非常必要。各單位
22、為加強安全保衛(wèi),都制作了感應卡,上有員工照片,姓名、部門、職務、編號(編號和職工一一對應)等,并有嚴格的佩戴制度,所以在這里提出以感應卡作為識別身份的實體,通過攝像頭實時監(jiān)視識別。借助網(wǎng)絡能滿足分布式單位的需要,與人事管理系統(tǒng)聯(lián)合,給企業(yè)帶來現(xiàn)代化的人事管理[2]。</p><p> 事實上,現(xiàn)在考勤系統(tǒng)已經(jīng)有很多,但是采用基于SSH的框架模式和結(jié)合EXTJS頁面工具來實現(xiàn)的考勤系統(tǒng),有著它獨特的持久穩(wěn)定優(yōu)勢和
23、清晰美觀的界面。因此,本課題的研究目的是使得考勤系統(tǒng)更加完善和美觀。這種走在尖端的想法與構(gòu)思相結(jié)合,定能擦出絢爛的火花,讓考勤管理不僅在技術(shù)上得到可靠的保障,更能呈現(xiàn)出美的享受。</p><p> 相關(guān)技術(shù)現(xiàn)狀與發(fā)展趨勢</p><p> 隨著科學技術(shù)的發(fā)展,考勤系統(tǒng)一步步的在走向完善。</p><p> 系統(tǒng)一般將IC卡作為系統(tǒng)使用卡,IC卡分為接觸式和非接
24、觸式(Contactless Card)。接觸式卡片存在著操作慢、環(huán)境適應性差、可靠性欠佳等問題,這些先天不足限制了它們在一些重要領(lǐng)域應用。九十年代中期出現(xiàn)的非接觸式IC卡, 以其獨有的非接觸讀卡方式、獨有的惡劣環(huán)境適應能力、優(yōu)良的電氣和機械特性、極高的安全性,受各界用戶的青睞,而且將逐漸取代現(xiàn)有的接觸式IC卡,成為應用最為廣泛的主流卡[3]。并且在目前的考勤系統(tǒng)行業(yè),有著這樣的現(xiàn)狀: -wXeue},>
25、:hZM$1) 硬件廠家眾多,考勤機性能質(zhì)量不一,作為直接使用者的工廠,難以選擇; < Q~N9W 2) 隨機附送的考勤軟件,因為功能簡單,客戶往往很難實施成功; O`@Nl 3) 硬件廠家提供的軟件,不會給客戶進行定制軟件開發(fā); |fgUW . 4) 很少有以考勤軟件開發(fā)為主要業(yè)務的軟件供應商,多數(shù)是經(jīng)銷,服務等方面難以保障。 </p>
26、;<p> 考勤管理系統(tǒng)是一個相對復雜的系統(tǒng),每個公司都有各自的特點,很多客戶因為對軟件的了解不夠深入,一旦實施后,才發(fā)現(xiàn)系統(tǒng)并不適合相對的需求,實施非常困難。因此實施不成功的因素,決大多數(shù)都是因為軟件的品質(zhì)和服務支持,很少是因為考勤機的原因而失敗。GOc </p><p> 而在技術(shù)方面,經(jīng)過數(shù)年的競爭和淘汰,Java界的各種框架找到了自己應有的位置[4]。Spring+Hibern
27、ate+Struts已成為Java開發(fā)的主流體系[5]。Struts只是一個MVC框架, 用于快速開發(fā)Java Web應用。Struts[6]實現(xiàn)的重點在于C (Controller),包括ActionServlet/RequestProcessor和開發(fā)者定制的Action,也為V(View)提供了一系列定制標簽。但Struts幾乎沒有涉及M(Model),所以Struts可以采用JAVA實現(xiàn)的任何形式的商業(yè)邏輯;Spring[7]是
28、一個輕型容器,其核心是BeanFactory,用以構(gòu)造開發(fā)者所需要的M(Model)。在此基礎(chǔ)之上,Spring提供了AOP(Aspect-Oriented Programming, 面向?qū)用娴木幊蹋┑膶崿F(xiàn),用它來提供非管理環(huán)境下申明方式的事務、安全等服務;對BeanFactory的擴展ApplicationContext更加方便開發(fā)者實現(xiàn)J2EE的應用;DAO/ORM的實現(xiàn)方便開發(fā)者進行數(shù)據(jù)庫的開發(fā);Web MVC和Spring We
29、b提供了J</p><p> 在這個體系中,Spring+Hibernate的地位應該說短期內(nèi)是難以撼動了[5]。除了新興的Jboss Seam作為挑戰(zhàn)者之外,幾乎難有勁敵。SSH把數(shù)據(jù)庫,實體bean,業(yè)務邏輯bean, 都以配置文件的形式整合在一起,封裝成MVC模式. 對于編程的持續(xù)化,擴展化,維護化都很方便。而且框架的融合,代碼的耦合都很不錯, 而以上SSH的這些優(yōu)點[9]都是jsp+servlet+ja
30、vaBean這種傳統(tǒng)模式不容易實現(xiàn)的。</p><p> 在界面的美化方面,ExtJS使得頁面相當美觀,讓人賞心悅目。ExtJS在2.0之后的界面真的是沒得說,不僅華麗,而且相對很成熟。加上ExtJS是一個Ajax框架,是一個用JavaScript寫的,用于在客戶端創(chuàng)建豐富多彩的Web應用程序界面。ExtJS可以用來開發(fā)RIA也即富客戶端的AJAX應用,主要用于創(chuàng)建前端用戶界面,是一個與后臺技術(shù)無關(guān)的前端Aja
31、x框架。因此,可以把ExtJS用在.Net、Java、Php等各種開發(fā)語言開發(fā)的應用中。</p><p> 在網(wǎng)絡上,考勤系統(tǒng)已經(jīng)出現(xiàn)了各種各樣的版本,可以說,在技術(shù)上都比較的成熟,但是這只好像是人類物質(zhì)生活的滿足;人類除了在物質(zhì)上追求高品質(zhì)外,還需要精神上的高享受。因此本課題將結(jié)合這三種構(gòu)想來進一步完善考勤管理系統(tǒng)。</p><p><b> 論文組織結(jié)構(gòu)</b>
32、;</p><p> 本論文總共分為五章:</p><p><b> 緒論 </b></p><p> 緒論部分首先主要闡述了項目背景,然后對相關(guān)技術(shù)ExtJS和SSH框架的現(xiàn)狀和發(fā)展趨勢進行了一定的說明描述。</p><p><b> 技術(shù)背景 </b></p><p&
33、gt; 技術(shù)背景這一部分又可以叫做技術(shù)分析與探討,其主要是來詳細的介紹系統(tǒng)中使用的ExtJS框架和SSH相關(guān)技術(shù),其中包括詳述了SSH架構(gòu)的基本原理和特點,ExtJS技術(shù)的發(fā)展由來和優(yōu)勢。</p><p><b> 系統(tǒng)分析與設計 </b></p><p> 這一部分著重闡述考勤管理系統(tǒng)設計的思想以及采用的一些方法。首先對系統(tǒng)進行概述,明確系統(tǒng)的需求,確定模塊的
34、劃分;接著描述系統(tǒng)的設計思想,所運用到的方法和框架模式,還有數(shù)據(jù)庫的詳細設計。</p><p><b> 系統(tǒng)的實現(xiàn) </b></p><p> 這里主要闡述系統(tǒng)實現(xiàn)過程中的一些重要的操作。首先利用界面的截圖和相應的代碼說明基于ExtJS控制的表示層的實現(xiàn),這里只選取了較重要的功能來進行說明;然后具體闡述SSH框架的配置內(nèi)容;最后對數(shù)據(jù)的相關(guān)操作進行說明。<
35、/p><p><b> 結(jié)論 </b></p><p> 最后一章對系統(tǒng)開發(fā)的相關(guān)成果進行總結(jié),并提出一些待以后解決的問題。</p><p><b> 技術(shù)背景</b></p><p> 本系統(tǒng)的實現(xiàn)主要使用了SSH架構(gòu)和ExtJS技術(shù),使用SSH架構(gòu)使得系統(tǒng)的層次更清晰,結(jié)構(gòu)更穩(wěn)定,維護更簡便
36、;使用ExtJS來實現(xiàn)頁面使得系統(tǒng)的界面賞心悅目,讓用戶有個很好的交互體驗。因此,本課題的研究目的是使得考勤系統(tǒng)更加完善和美觀。這種走在尖端的想法與構(gòu)思相結(jié)合,定能擦出絢爛的火花,讓考勤管理不僅在技術(shù)上得到可靠的保障,更能呈現(xiàn)出美的享受。接下來就著重闡述一下SSH架構(gòu)和ExtJS技術(shù),從而能更清楚的了解它們,使用它們。</p><p><b> SSH架構(gòu)</b></p>&
37、lt;p><b> SSH概述</b></p><p> SSH,是Struts、Spring和Hibernate相結(jié)合的簡稱??蚣苷f白了就是Java工作者多年以來總結(jié)出的一些開發(fā)標準[10]。讓開發(fā)者可以以成功的經(jīng)驗模式來開發(fā)自已的系統(tǒng),一般使用框架的好處是:</p><p> ◆ 在好的框架下,開發(fā)者只需要寫一些必須的代碼;他們不需要直接接觸底層的AP
38、I;</p><p> ◆ 經(jīng)過良好設計的框架可以為程序提供清晰的結(jié)構(gòu)并且提高程序的內(nèi)聚性,同時清晰的結(jié)構(gòu)使得其他人可以更容易加入項目;</p><p> ◆ 一個容易使用的框架可以通過一些例子和文檔為用戶提供最佳實踐; </p><p> ◆ 采用成功的框架的代碼比自己的代碼容易測試。 </p><p> J2EE本身提供了一些框架
39、。比如說,Enterprise Java-Beans (EJB) container或者 Servlet engine。但是這些框架一般在中小工程中都不會使用,會讓開發(fā)者把大量的時間浪費在開發(fā)框架上[11]。而現(xiàn)在比較流行開源框架,主要是Struts,Hibernate,Spring等。其中表示層用Struts[6],業(yè)務邏輯層用Spring[7],數(shù)據(jù)訪問層用Hibernate[8]。Struts是在原有MVC模式基礎(chǔ)上實現(xiàn)在代碼分離
40、等功能 [12];而hibernate可以把關(guān)系型數(shù)據(jù)庫轉(zhuǎn)換成在JAVA中的面向?qū)ο髞硎褂?。從而讓開發(fā)者在開發(fā)時不需要直接寫SQL語句,比如“database.getName()”就可以直接把數(shù)據(jù)庫中的用戶名取出來[13];J2EE框架被大規(guī)模地運用到項目中,而項目總要負責這些框架以及自己業(yè)務代碼的連接,使之真正融合到一起。Spring就是專注于這個問題的,它和Hibernate融合的很好。 </p><p>
41、 這三種框架在一起并不沖突,所以現(xiàn)在最常用的框架就是Struts+Spring+Hibernate。就像蓋房子一樣,先把框架搭好,進而基于其編寫的代碼就很規(guī)范。</p><p><b> SSH架構(gòu)</b></p><p> 圖2.1 Struts、Spring和Hibernate框架組裝</p><p> 大多數(shù)不復雜的Web應用都能被
42、分成至少四個各負其責的層次[14]。這些層次是:表示層(presentation)、持久層(persistence)、業(yè)務層(business)、領(lǐng)域模型層(domain model)。每層在應用程序中都有明確的責任,不應該和其它層混淆功能。每一應用層應該彼此獨立但要給他們之間放一個通訊接口。讓開發(fā)者從審視各個層開始,討論這些層應該提供什么和不應該提供什么[15]。</p><p><b> 1) 表
43、現(xiàn)層</b></p><p> 在一個典型的Web應用的一端是表現(xiàn)層。很多Java開發(fā)者也理解Struts所提供的。但大多數(shù)時候,他們把像業(yè)務邏輯之類的耦合的代碼放進了org.apache.struts.Action[16]。所以,讓開發(fā)者在像Struts這樣一個框架應該提供什么上取得一致意見。這兒是Struts負責的: ◆ 為用戶管理請求和響應; ◆ 提供一個控制器代理調(diào)用業(yè)務邏輯和其
44、它上層處理; ◆ 處理從其它層擲出給一個Struts Action的異常; ◆ 為顯示提供一個模型; ◆ 執(zhí)行用戶接口驗證。</p><p> 2) 業(yè)務層 在一個典型的Web應用程序的中間的組件是業(yè)務層或服務層。從編碼的視角來看,這個服務層是最容易被忽視的一層。不難在用戶接口層或者持久層里找到散布在其中的這種類型的代碼,但是這不是正確的地方,因為這導致了應用程序的緊耦合,這樣一來,隨著時
45、間推移代碼將很難維護[17]。幸好,針對這一問題有好幾種Frameworks存在。在這個領(lǐng)域兩個最流行的框架是Spring和PicoContainer,它們叫作微容器,你可以不費力不費神的把你的對象連在一起。所有這些框架都工作在一個簡單的叫作“依賴注入”(也通稱“控制反轉(zhuǎn)”)的概念上。該論文將著眼于Spring的為指定的配置參數(shù)通過bean屬性的setter注入的使用。Spring也提供了一個構(gòu)建器注入的復雜形式作為setter注入的一
46、個替代。對象們被一個簡單的XML文件連在一起,這個XML文件含有到像事務管理器、對象工廠、包含業(yè)務邏輯的服務對象和數(shù)據(jù)存取對象這些對象的引用。業(yè)務層應該負責下面這些事情[18]: ◆ 管理應用程序的業(yè)務邏輯和業(yè)務驗證; ◆ 管理事務; ◆ 預留和其它層交互的接口; ◆ 管理業(yè)務層對象之</p><p><b> 3) 持久層</b></p><p&
47、gt; 在典型web應用的另一端是持久層。這通常是使事情迅速失控的地方。開發(fā)者低估了構(gòu)建他們自己的持久層框架的挑戰(zhàn)性。一般來說,機構(gòu)內(nèi)部自己寫的持久層不僅需要大量的開發(fā)時間,而且還經(jīng)常缺少功能和變得難以控制。有幾個開源的“對象-關(guān)系映射”框架非常成功的解決了這些問題。尤其是,Hibernate框架為java提供了“對象-關(guān)系持久化”機制和查詢服務。Hibernate對那些已經(jīng)熟悉了SQL和JDBC API的Java開發(fā)者有一個適中的學
48、習曲線。Hibernate持久對象是基于簡單舊式的Java對象和Java集合。此外,使用Hibernate并不妨礙你正在使用的IDE[19]。</p><p> Hibernate本質(zhì)上還是包裝了JDBC來進行數(shù)據(jù)庫操作。由于Hibernate對JDBC的調(diào)用進行了優(yōu)化,并且盡可能的使用最優(yōu)化的、最高效的JDBC調(diào)用,所以性能相當令人滿意。Hibernate是輕量級的封裝,避免了過多復雜的功能,減輕了程序員的負
49、擔。同時,它也是一個開源的代碼,提供開放的API,用戶可以自行擴充其功能。Hibernate在大多數(shù)主流J2EE應用服務器的受管理環(huán)境中都可以良好運作,Hibernate也可以作為獨立應用程序運行[20]。</p><p> Hibernate的精髓是持久層實現(xiàn)模式。它完全是針對對象的持久化,即把一個普通的Java對象映射到關(guān)系數(shù)據(jù)庫中。面向?qū)ο笤O計中的繼承與多態(tài)機制在Hibernate里也得到了支持,在數(shù)據(jù)查
50、詢中,它支持動態(tài)Query,并提供對十六種數(shù)據(jù)庫語言的支持,它沿用傳統(tǒng)數(shù)據(jù)庫的事務模型[21],使程序員不必為新的事務模型大傷腦筋[22]。持久層應該負責下面這些事情: ◆ 查詢相關(guān)的信息成為對象。Hibernate通過一種叫作HQL的面向?qū)ο蟮牟樵冋Z言或者使用條件表達式API來做這個事情。 HQL非常類似于SQL,只是把SQL里的table和columns用Object和它的fields代替。還有一些新的專用的HQL語言成分要學,
51、不過,它們?nèi)菀桌斫舛椅臋n做得好。HQL是一種使用來查詢對象的自然語言,花很小的代價就能學習它。 ◆ 保存、更新、刪除儲存在數(shù)據(jù)庫中的信息。 ◆ 像Hibernate這樣的高級“對象-關(guān)系”映射框架提供對大多數(shù)主流SQL數(shù)據(jù)庫的支持,它們支持“父/子”關(guān)系、事務處理、繼承和多態(tài)[23]。</p><p><b> 4) 領(lǐng)域模型層</b></p><p>
52、 領(lǐng)域?qū)ο髮佑赡切┐憩F(xiàn)實世界中的業(yè)務對象的對象們組成,比如:一份訂單、訂單項、產(chǎn)品等等。這個層讓開發(fā)者停止建立和維護不必要的數(shù)據(jù)傳輸對象(或者叫作DTOs),來匹配他們的領(lǐng)域?qū)ο?。例如,Hibernate允許你把數(shù)據(jù)庫信息讀進領(lǐng)域?qū)ο蟮囊粋€對象圖,這樣你可以在連接斷開的情況下把這些數(shù)據(jù)顯示到UI層。那些對象也能被更新和送回到持久層并在數(shù)據(jù)庫里更新。而且,你不必把對象轉(zhuǎn)化成DTOs,因為DTOs在不同的應用層間移動,可能在轉(zhuǎn)換中丟失[
53、24]。這個模型使得Java開發(fā)者自然地以一種面向?qū)ο蟮娘L格和對象打交道,沒有附加的編碼。</p><p><b> ExtJS技術(shù)</b></p><p><b> ExtJS概述</b></p><p> ExtJS最開始基于YUI技術(shù),YUI是Yahoo! UI Library的簡稱,是一個開源的JavaScr
54、ipt庫,與Ajax、DHTML和DOM等技術(shù)一起使用可以用于創(chuàng)建富有交互性的Web應用,它還包含豐富的CSS資源。 ExtJS由開發(fā)人員Jack Slocum開發(fā),通過參考Java Swing等機制來組織可視化組件,無論從UI界面上CSS樣式的應用,還是數(shù)據(jù)解析上的異常處理,都可算是一款不可多得的JavaScript客戶端技術(shù)的精品。</p><p> Ext最初是YUI的一個擴展,然而,它現(xiàn)在也可以
55、擴展自JQuery和Prototype。自1.1版開始,Ext已經(jīng)可以獨立運行,不需要依賴于那些外部庫,雖然它仍然是可被集成的一個選項?,F(xiàn)在Ext 2.0版可以使用許多不同的基礎(chǔ)庫,例如YUI、JQuery和Prototype,或者是可以獨立的運行。</p><p> ExtJS是JavaScript面組件(component)的開發(fā)框架,其內(nèi)置許多優(yōu)秀的可復用的組件框架,其友好的界面風格,使得開發(fā)人員不要美工
56、的支持也能開發(fā)出,豐富的頁面。另外ExtJS加強了對Ajax的支持,許多優(yōu)秀的組件,比如Reader,Proxy使開發(fā)人員可以擺脫Ajax異步的支持,從而專注在功能設計。 ExtJS是一個很好的Ajax框架,可以用來開發(fā)富有華麗外觀的富客戶端應用,主要是企業(yè)信息化軟件,網(wǎng)站后臺等,能使B/S應用更加具有活力。ExtJS是一個用JavaScript編寫,與后臺技術(shù)無關(guān)的前端Ajax框架[25]。因此,可以把ExtJS用在.Net、
57、Java、Php等各種開發(fā)語言開發(fā)的應用程序中。</p><p><b> ExtJS優(yōu)勢</b></p><p> ExtJS是一種用于開發(fā)富客戶端Web應用程序的JavaScript技術(shù),它不需要為客戶端安裝任何插件就可以實現(xiàn)豐富多彩的界面效果,是進行富客戶端開發(fā)的理想選擇之一。</p><p> ExtJS的主要功能包括:</
58、p><p> ◆ 對標準信息提示框的擴展;</p><p> ◆ 對標準表單組件的擴展;</p><p> ◆ 支持面板及各種布局方式;</p><p> ◆ 提供了大量的工具類和工具方法;</p><p> ◆ 提供了增強的事件機制;</p><p> ◆ 提供了對Ajax功能的支持;
59、</p><p> ◆ 具有結(jié)構(gòu)完整的數(shù)據(jù)模型;</p><p> ◆ 提供了靈活易用的模板功能;</p><p> ◆ 提供了美觀實用的各種組件(其中的代表是表格組件Grid和樹型組件Tree)。</p><p> ExtJS是一個純前臺的JavaScript框架,他沒有提供后臺部分的實現(xiàn),但這并不是說ExtJS與后臺技術(shù)的結(jié)合非常
60、困難,恰恰相反,ExtJS可以與各種后臺技術(shù)進行結(jié)合,前后臺之間通過XML或者JSON實現(xiàn)數(shù)據(jù)傳遞,目前后臺生成XML或者JSON的技術(shù)已經(jīng)非常成熟,因此只要對后臺進行很小的修改就可以將ExtJS應用于現(xiàn)有項目。</p><p> ExtJS最大的優(yōu)勢在于它將Web應用程序的操作方式向傳統(tǒng)桌面應用程序的操作方式進行轉(zhuǎn)化甚至消除了這種差異,從根本上改善了用戶的使用體驗,這是ExtJS應用前景廣闊的主要原因;其次使
61、用ExtJS對瀏覽器沒有任何要求可以說是一種綠色的富客戶端實現(xiàn)方式,這是它應用前景廣闊的第二個原因;另外ExtJS提供的各種組件可以用更加標準的方式展示數(shù)據(jù),進而降低了開發(fā)難度,這可以說是它應用前景廣闊的第三點原因。</p><p><b> 系統(tǒng)分析與設計</b></p><p><b> 系統(tǒng)概述</b></p><p
62、> 該系統(tǒng)是一個員工考勤管理系統(tǒng),該系統(tǒng)通過記錄員工每天的出勤記錄以及請假記錄,達到管理員工出勤以及為財務部門核算工資提供統(tǒng)計數(shù)據(jù)。因此該系統(tǒng)的目的是管理以及反映員工的出勤,為財務部門生成員工在計薪周期內(nèi)的出勤統(tǒng)計。系統(tǒng)的輸入有員工刷卡數(shù)據(jù),員工請假數(shù)據(jù)。該系統(tǒng)暫不支持對員工加班信息的統(tǒng)計,早班/夜班的異動,所有員工只有白班。也不支持對倒班的記錄。</p><p> 系統(tǒng)baseinfo表是基本表,AM
63、S通過同步公司LDAP服務器獲得,該表儲存了公司所有員工的基本信息,所以AMS不能編輯。前臺“Personal Message” 頁面顯示員工的基本信息,該信息通過查詢數(shù)據(jù)庫baseinfo表獲得。</p><p><b> AMS事件:</b></p><p> 1) 刷卡事件:刷卡記錄分別記錄上午和下午兩個刷卡記錄,上午最早的一次刷卡,下午最晚的一次刷卡。上午
64、和下午以中午1點為界限。</p><p> 2) 請假事件:員工在每天只能擁有一個請假單,AMS在保存請假單時會進行判斷。</p><p> AMS數(shù)據(jù)統(tǒng)計背景:</p><p> 財務部門把每月的第一日到最后一日作為一個計薪周期,在計薪周期結(jié)束之后的10天,財務部門根據(jù)AMS的統(tǒng)計數(shù)據(jù)核算員工上個計薪周期的工資所得。因此員工和管理員必須在計薪周期結(jié)束后的10
65、天完成請假單審核工作。在AMS的“Attand details”, “Request for leaving” 和“Manager” 頁面都是以計薪周期為功能單位。比如,“Attand details” 頁面中,員工在1號到10號查詢到的是當前計薪周期的數(shù)據(jù),也就是上月第一天到最后一天的異常出勤數(shù)據(jù)。</p><p> 系統(tǒng)從功能上劃分了兩大模塊:考勤/請假管理,員工計薪周期出勤/請假統(tǒng)計;為此系統(tǒng)定義了Emp
66、loyee,Manager兩種角色。</p><p> 該系統(tǒng)主要有兩大功能:</p><p> 1) 生成出勤統(tǒng)計信息,以供會計核算工資;</p><p> 2) 員工可以查詢自己的刷卡記錄,提交/查詢請假單。</p><p> 3.1.1 角色定義</p><p> 系統(tǒng)簡單定義了三個大角色:Employ
67、ee,Manager和HR。</p><p> 1) 普通員工(Employee):</p><p> 登錄時選擇員工。普通員工擁有的功能。</p><p> ◆ 查閱本人考勤以及統(tǒng)計信息;</p><p> ◆ 對本人考勤持有異議,可以進行申訴。申訴后由經(jīng)理予以審核(確認或者拒絕); </p><p> ◆
68、 添加/修改年假、事假以及病假請假單。</p><p> 2) 員工管理員(Manager):</p><p> 登錄時選擇管理員的。他們登錄后會多出一個審核員工請假數(shù)據(jù)的頁面。</p><p><b> ◆ 查閱本人考勤;</b></p><p> ◆ 對本人考勤持有異議,可以進行申訴。系統(tǒng)暫時沒有設置更高的管
69、理員,在AMS中管理員可以審核自己的申訴;</p><p> ◆ 添加/修改年假,事假或者病假請假單; </p><p> ◆ 審核員工的請假記錄。</p><p><b> 3) 財務部門:</b></p><p> 系統(tǒng)中沒有設置該角色,AMS的“Attendance Statistic” 頁面統(tǒng)計生成員
70、工在計薪周期內(nèi)的出勤以及請假詳細記錄,以及計薪天數(shù)。</p><p> 3.1.2 考勤管理</p><p> 考勤管理模塊主要是對考勤記錄的管理,主要包括:</p><p> 1) 考勤記錄的導入:從門禁卡系統(tǒng)的數(shù)據(jù)庫中讀入數(shù)據(jù),進行處理后保存到系統(tǒng)數(shù)據(jù)庫,該部分在AMS沒有實現(xiàn),AMS通過直接往數(shù)據(jù)庫插入數(shù)據(jù)模擬。</p><p>
71、 2) 考勤記錄的查詢:系統(tǒng)設計“Time Sheet” 頁面, 員工在該頁中輸入查詢開始日期和結(jié)束日期,可以查詢到員工在每一個正常工作日的刷卡記錄。</p><p> 3) 考勤記錄的申訴:系統(tǒng)設計了“Attandance Details” 頁面,該頁面會列出員工在該計薪周期內(nèi)的所有異常出勤記錄,在該頁面員工可以對異常出勤進行申訴,添加申訴報告。</p><p> 4) 考勤記錄的
72、確認:系統(tǒng)設計了“Manager” 頁面和“Holiday” 頁面?!癕anager”頁面,只有管理員登錄時才顯示。為了方便管理員確認考勤記錄,在右邊添加一個導航樹,在該導航樹上列出所有部門員工,管理員雙擊員工自動打開“Manager”頁面并載入該員工在該計薪周期內(nèi)的所有請假和申訴記錄。管理員可以根據(jù)員工提供的請假和申訴請求,予以通過審核和不通過審核。對于請假單和申訴,在管理員為處理之前是“未審核”狀態(tài),管理員可將其審核通過和不通過。如
73、圖3.1所示。在“Holiday” 頁面將統(tǒng)計出員工在全年的病假,事假和年假的統(tǒng)計。</p><p> 5) 考勤記錄匯總:系統(tǒng)設計了“Attandence Statistic”頁面和“Holiday” 頁面?!癆ttandance Statistic” 頁面顯示員工在過去12個月內(nèi)的出勤統(tǒng)計信息,財務部門可以在該頁中獲得計薪周期的出勤統(tǒng)計輸出,以供核算工資。在“Holiday” 頁面中統(tǒng)計出員工在該月的詳細出
74、勤統(tǒng)計。如圖3.2所示。</p><p> 圖3.1 考勤管理模塊流程圖</p><p> 圖3.2 考勤記錄匯總流程圖</p><p> 3.1.3 請假管理</p><p> 系統(tǒng)只支持如下請假類型:申訴、病假、事假和年假。一天只能有一個請假單。月底必須要提交該月的所有請假單,否則視為無效??梢灾С挚缭碌恼埣?。默認沒有跨年的請假單
75、,如果請假單確實跨年則在生成statistics時,系統(tǒng)自動重新生成新請假單。所有請假數(shù)據(jù)在跨年以后自動重置(如事假,病假,年假)。</p><p> 請假管理模塊設計了兩個頁面:“Leave Requst” 頁面和“Manager” 頁面,主要是對請假的管理,如圖3.3所示,它包括:</p><p> 在“Leave Request” 頁面中員工可以查看,添加和編輯請假單,新添加的請
76、假單是“未審核”狀態(tài),但管理員(Manager)處理之后會被置成通過或不通過狀態(tài)。請假單在管理員(Manager)處理之后員工只能查看,不能編輯或者刪除。</p><p> 在“Manager” 頁面中管理員(Manager)可以對員工的請假單進行審核。為此AMS在右側(cè)添加了一個導航樹,該樹將列出所有員工,管理員(Manager)雙擊員工可在“Manager” 頁面中列出員工在該計薪周期的所有請假信息。<
77、/p><p> 圖3.3 請假管理模塊流程圖</p><p><b> 系統(tǒng)設計</b></p><p> 系統(tǒng)采用SSH框架。表示層用Struts,業(yè)務邏輯層用Spring,數(shù)據(jù)訪問層用Hibernate。</p><p> 系統(tǒng)在表示層(展示層)得到用戶的操作數(shù)據(jù)并將這些數(shù)據(jù)提交到邏輯層,邏輯層得到數(shù)據(jù)后則會進行
78、分析和處理,如有必要則調(diào)用數(shù)據(jù)訪問層的相關(guān)方法取得數(shù)據(jù),數(shù)據(jù)訪問層得到相關(guān)的數(shù)據(jù)集后返回給邏輯層,邏輯層對數(shù)據(jù)集進行處理將有用的信息返回給展示層,展示層解析邏輯層響應的數(shù)據(jù),在適當?shù)牡胤匠尸F(xiàn)給用戶。如圖3.4所示。</p><p> 圖3.4 展示層、邏輯層和數(shù)據(jù)訪問層相互關(guān)系</p><p><b> 前臺設計</b></p><p>
79、 系統(tǒng)前臺分為登錄頁面和功能頁面,用戶(employee,manager)可在登錄頁面驗證自己信息,功能頁面根據(jù)登錄頁面的驗證信息載入功能模塊。</p><p> 登錄頁面:用戶提供用戶名,密碼以及身份(employee或者manager)。在登錄頁面驗證之后的用戶,AMS的驗證通過httpsession進行自動登錄,httpsession過期時間設置為10分鐘,如果10鐘內(nèi)沒有與服務器的交互,AMS將提示用戶
80、重新登錄。</p><p> 功能頁面包括七個子頁面和一個導航樹,7個子頁面分別是:Personal Message,Time Sheet,Attandance Details,Statistics,Leave Request,Holiday和Manager。</p><p> 1) Personal Message:該頁面顯示當前登錄用用戶的基本信息,該表的信息通過查詢baseinf
81、o數(shù)據(jù)庫表直接獲得。</p><p> 2) Time Sheet:員工在該頁輸入查詢的起始和結(jié)束時間,該頁將展示所有查詢區(qū)間的出勤記錄。該頁支持分頁,每頁30條記錄。該頁設置3個列:“date”、“morning”、“afternoon”。“date”顯示出勤日期,“morning”顯示改日上午刷卡記錄, “afternoon”顯示改日的下午刷卡記錄</p><p> 3) Atta
82、nd Details:該頁顯示員工在該計薪周期所有異常出勤記錄,由于員工在一天只能擁有一張請假單,該頁也只支持單一選擇。員工點擊異常記錄,點擊“申訴”按鈕,系統(tǒng)彈出添加請假單Panel。在添加請假單Panel中,員工輸入申訴信息。該頁包含6個列:姓名、日期、異常類型、刷卡數(shù)據(jù)、請假類型、狀態(tài)。其中“請假類型”指該異常日的請假單類型,因員工每日只能擁有一張請假單,因此只有該項為空時,“申訴”按鈕才能激活。對于狀態(tài),新添加的請假單為“未確認
83、”,管理員(Manager)處理之后的請假單可以是“通過”或者“不通過”。</p><p> 4) Statistic:該頁列出員工在過去12個計薪周期的統(tǒng)計數(shù)據(jù)。該頁包括11個列:月份、應上班天數(shù)、正常天數(shù)、遲到天數(shù)、早退天數(shù)、曠工天數(shù)、申訴天數(shù)、事假天數(shù)、病假天數(shù)、年假天數(shù)和計薪天數(shù)。</p><p> 5) Request for leave:該頁面列出員工在計薪周期內(nèi)的所有請假
84、單。員工不能編輯或者刪除經(jīng)理處理之后的請假單。員工點擊單一請假單,點擊“編輯”按鈕可以編輯該請假單。員工可以一次刪除多個請假單。員工單擊“添加”按鈕可以添加請假單。該頁包括8個列:請假類型、開始日期、結(jié)束日期、開始時間、結(jié)束時間、請假人、審核人和狀態(tài)。</p><p> 6) Holiday:該頁有兩個表格,一個是員工本月的出勤統(tǒng)計,一個是員工在全年的請假統(tǒng)計(不包括申訴)。</p><p&
85、gt; 統(tǒng)計:根據(jù)員工在該月(非計薪周期)的每天刷卡和請假記錄生成當月到改日的統(tǒng)計信息。</p><p> 請假:該panel統(tǒng)計出員工在全年的請假信息(不包括申訴),該panel包括6個列:員工姓名、本年年假標準、事假天數(shù)、病假天數(shù)、年假天數(shù)、剩余年假、</p><p> 7) Inspect leaving:管理員(Manager)在該頁中審核員工的請假單。雙擊導航樹中的員工,將
86、載入員工在計薪周期的所有請假記錄,該頁支持分頁,每頁30個記錄,管理員可以多選點擊“通過”或者“不通過”按鈕審核請假單。該頁包含7個列:請假類型、開始日期、結(jié)束日期、開始時間、結(jié)束時間和狀態(tài)。</p><p><b> 表示層設計</b></p><p> 表示層主要使用ExtJS進行控制,包括數(shù)據(jù)的讀取以及界面的美工和CSS定義。展示層主要是JSP頁面,并且使用
87、模板來對頁面的風格進行統(tǒng)一。</p><p> Struts是MVC的一種實現(xiàn),它將Servlet和JSP標記(屬于J2EE規(guī)范)用作實現(xiàn)的一部分。Struts繼承了MVC的各項特性,并根據(jù)J2EE的特點,做了相應的變化與擴展。Struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點,同時簡化了基于MVC的Web應用程序的開發(fā)。在本系統(tǒng)里,Struts只要負責與用戶交互,包括:接受用戶的請求,把處理結(jié)果返回給用戶
88、;而頁面交給了ExtJS來完成,使得他們之間的分工更明確。如圖3.5所示。</p><p> 現(xiàn)在MyEclipse 6.0已經(jīng)嵌入了Struts,Spring和Hibernate插件了,所以目前的工作就比較輕松了,主要是將相應的包引入進來就可以了:右鍵點擊相應的Project,選擇MyEclipse下的“Add Struts Capabilities…”,完成接下來的步驟就順利引入了Struts相應的包,并且
89、可以進行相應的一些頁面跳轉(zhuǎn)的控制。當服務器啟動后,根據(jù)web.xml加載ActionServlet讀取struts-config.xml文件內(nèi)容到內(nèi)存。</p><p> 圖3.5 表示層的設計</p><p><b> 邏輯層設計</b></p><p> 邏輯層用Spring來實現(xiàn)對頁面請求的數(shù)據(jù)進行操作和處理,返回給頁面相關(guān)的響應的
90、數(shù)據(jù)。如圖3.6所示。</p><p> 使用Spring中的依賴注入/控制反轉(zhuǎn),可以定義任何接口,然后實現(xiàn)接口里面的方法,通過Spring的配置文件把接口注入到任何地方,前提是引用的必須是接口,在引用的地方必須有接口定義以及getter方法,不過可以把這個接口當作類似JavaBean的一個屬性一樣來使用,JavaBean都有g(shù)etter和setter方法的;另外也可以使用Spring的事物代理來完成一些工作。
91、</p><p> 通過定義好的接口,開發(fā)者可以直接通過接口來接收頁面請求的數(shù)據(jù),并對其進行處理,如果有必要,那么再交給數(shù)據(jù)訪問層;而從數(shù)據(jù)訪問層返回來的數(shù)據(jù)集,在這里也要進行相應的處理再返回給表示層。</p><p> 圖3.6 邏輯層的設計</p><p><b> 數(shù)據(jù)訪問層設計</b></p><p>
92、數(shù)據(jù)訪問層用Hibernate來實現(xiàn),系統(tǒng)中的數(shù)據(jù)訪問層主要用戶與數(shù)據(jù)庫相關(guān)的操作,包括添加、修改、刪除、查詢等操作。如圖3.7所示。</p><p> 數(shù)據(jù)訪問層采用Hibernate把數(shù)據(jù)庫中的表與系統(tǒng)中定義的持久類進行映射,在數(shù)據(jù)使用的時候就可以直接使用持久類中的數(shù)據(jù)。</p><p> 如果系統(tǒng)需要對數(shù)據(jù)庫進行操作時,邏輯層調(diào)用數(shù)據(jù)訪問層相對應的DAO類,根據(jù)邏輯層的相關(guān)參數(shù)對
93、數(shù)據(jù)庫進行相應的操作,操作成功后則返回操作信息或是相關(guān)數(shù)據(jù)集。</p><p> 圖3.7 數(shù)據(jù)訪問層的設計</p><p><b> 數(shù)據(jù)字典</b></p><p> 系統(tǒng)的數(shù)據(jù)字典如圖3.8所示,它是以User為中心,與Role,Department,Middle,Record,Holiday,Leave等模塊關(guān)聯(lián)形成的。</
94、p><p> 圖3.8 數(shù)字字典</p><p> 其中對應的User表的視圖如表3.1所示:</p><p> 表3.1 User表</p><p> 相應的SQL創(chuàng)建語句如下:</p><p> 其中對應的Role表的視圖如表3.2所示:</p><p> 表3.2 Role表&l
95、t;/p><p> 相應的SQL創(chuàng)建語句如下:</p><p> 其中對應的Department表的視圖如表3.3所示:</p><p> 表3.3 Department表</p><p> 相應的SQL創(chuàng)建語句如下:</p><p> 其中對應的Middle表的視圖如表3.4所示:</p><
96、;p> 表3.4 Middle表</p><p> 相應的SQL創(chuàng)建語句如下:</p><p> 其中對應的Record表的視圖如表3.5所示:</p><p> 表3.5 Record表</p><p> 相應的SQL創(chuàng)建語句如下:</p><p> 其中對應的Leave表的視圖如表3.6所示:&l
97、t;/p><p> 表3.6 Leave表</p><p> 相應的SQL創(chuàng)建語句如下:</p><p> 其中對應的Holiday表的視圖如表3.7所示:</p><p> 表3.7 Holiday表</p><p> 相應的SQL創(chuàng)建語句如下:</p><p><b> 系
98、統(tǒng)的實現(xiàn)</b></p><p> 這里將介紹本系統(tǒng)的技術(shù)重點、難點的設計與實現(xiàn)。</p><p> ExtJS的相關(guān)實現(xiàn)</p><p> ExtJS中是HTML和CSS的完美結(jié)合,包括很過UI庫,也有著很多很炫的模塊定義,從而系統(tǒng)中使用ExtJS來實現(xiàn)表示層,既能很好的實現(xiàn)頁面的每個模塊,給用戶非常好的用戶體驗,更能給開發(fā)帶來快捷方便。<
99、/p><p> ExtJS日期查詢請求實現(xiàn)</p><p> 用ExtJS來實現(xiàn)按日期查詢的功能,十分清楚美觀,給用戶超好的體驗。</p><p> ExtJS提供了動態(tài)的日歷圖表,對當天的日期進行明顯的標注,并智能的限制了日期查詢的范圍,以下的代碼實現(xiàn)了此功能。比如:開始日期選擇了2009-5-10后,結(jié)束日期就不能選擇2009-5-10之前的日期。如圖4.1所
100、示。</p><p> 圖4.1 ExtJS日期查詢</p><p> ExtJS多選擇按鈕實現(xiàn)</p><p> 請假單列表里,顯示了很多條請假單的信息,用戶在提交請假單之后可以根據(jù)實際情況進行修改或者刪除,當然是在請假未被確認之前。這樣的話就需要可以一次選擇多條信息的功能,方便用戶進行刪除的操作(修改只能選擇一個)。</p><p>
101、; ExtJS提供了一個十分簡單的function就實現(xiàn)了這個功能,而對于開發(fā)來說不再需要更多的編碼,十分輕松。</p><p> 圖4.2 ExtJS多選擇按鈕</p><p><b> ExtJS分頁實現(xiàn)</b></p><p> 這里的分頁的實現(xiàn)按照頁碼從數(shù)據(jù)庫中取得的數(shù)據(jù)列表的位置返回到客戶端,這樣可以減少數(shù)據(jù)量的傳輸,但是會造
102、成對數(shù)據(jù)庫的訪問次數(shù)過多。</p><p> ExtJS使用Ext.PagingToolbar()來實現(xiàn)分頁,ExtJS后臺定義好的function來自動調(diào)用數(shù)據(jù)庫內(nèi)的數(shù)據(jù),這樣開發(fā)者就不需要進行繁瑣的方法參數(shù)的調(diào)用。</p><p> 圖4.3 ExtJS分頁</p><p><b> ExtJS分組實現(xiàn)</b></p>
103、<p> ExtJS有著強大的頁面實現(xiàn)效果,比如在用戶的基本信息表上,可是實現(xiàn)信息的分組。</p><p> 圖4.4 ExtJS分組</p><p><b> SSH的配置實現(xiàn)</b></p><p> web.xml 配置 </p><p> 在這里主要是Struts的濾鏡配置和Spring的Ap
104、plicationContext文件路徑配置。</p><p><b> Struts配置</b></p><p> 這里主要是對struts.xml文件的配置:主要是Struts的濾鏡配置和Spring的ApplicationContext文件路徑配置。</p><p><b> Spring配置</b></
105、p><p> Spring基本配置:配置文件應該在WEB-INF/spring/下面:</p><p> Hibernate配置</p><p> 下面是對Hibernate的基本配置:</p><p><b> 數(shù)據(jù)相關(guān)操作</b></p><p> 從前臺發(fā)出的數(shù)據(jù)請求,經(jīng)過Struts
106、,Spring,Hibernate到數(shù)據(jù)庫,然后對數(shù)據(jù)進行相應的操作后返回正確的數(shù)據(jù)。</p><p> 1) 生成Session信息的代碼如下:</p><p> 2) JSP接收http請求:</p><p> 在登錄頁面的com.work.ams.struts.form.LoginForm這個類,用來描述的http請求;com.work.ams.stru
107、ts.action.LoginAction這個類是對http請求的處理。其他的功能頁面的請求都是在com.test.ams.AmsPortal這個類中進行處理的。</p><p> 其中LoginAction類中,這段代碼是獲取http請求中的用戶名,密碼和角色:</p><p> 3) 在WebRoot/WEB-INF/struts-config.xml,往Struts里引入Spri
108、ng:</p><p> 4) Spring中定義一個Session Factory,用來創(chuàng)建一個和Hibernate連接的接口:</p><p> 5) 通過spring和hibernate查詢數(shù)據(jù)庫,代碼如下:</p><p><b> 結(jié)論</b></p><p> 本文研究了當前比較流行的ExtJS和SS
109、H框架,通過對這兩項技術(shù)的介紹和研究提出了該考勤管理系統(tǒng)的設計方案。并詳細的闡述了考勤系統(tǒng)的設計與實現(xiàn)。本文首先介紹了相關(guān)的ExtJS和SSH等技術(shù)的背景知識,闡述了它們的基本原理和各自的優(yōu)點,然后對系統(tǒng)進行了具體的分析,對功能進行了詳細的介紹,并提出了相關(guān)功能的實現(xiàn)方案。最后根據(jù)所設計的方案對系統(tǒng)的主要實現(xiàn)方法進行了介紹。</p><p> 實現(xiàn)的考勤管理系統(tǒng)使用SSH架構(gòu),表示層用Struts技術(shù),業(yè)務層用
110、Spring技術(shù),持久層用Hibernate技術(shù);而頁面則采用ExtJS框架來實現(xiàn),使得客戶端對界面的的操作取得極大的便利。這樣整個系統(tǒng)給用戶帶來更好的使用體驗,也使得開發(fā)的系統(tǒng)層次十分清晰,對后期的擴展和維護也變得方便許多。</p><p> 然而在實際的實現(xiàn)當中也存在著一些問題,比如使用過多的ExtJS模塊控件,使得加載頁面緩慢,加上它基本上都是用JavaScript實現(xiàn)的,雖然JavaScript技術(shù)現(xiàn)在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計----企業(yè)內(nèi)部辦公管理系統(tǒng)
- jsp企業(yè)內(nèi)部信息管理系統(tǒng)(畢業(yè)設計)
- 畢業(yè)設計---企業(yè)內(nèi)部云計算系統(tǒng)的組建
- 企業(yè)內(nèi)部控制設計
- 畢業(yè)設計--企業(yè)內(nèi)部控制的診斷及對策研究
- 企業(yè)內(nèi)部網(wǎng)接入設計與網(wǎng)絡規(guī)劃畢業(yè)設計
- 企業(yè)內(nèi)部網(wǎng)接入設計與網(wǎng)絡規(guī)劃畢業(yè)設計
- 小型企業(yè)內(nèi)部網(wǎng)絡規(guī)劃與設計畢業(yè)設計
- 企業(yè)內(nèi)部網(wǎng)接入設計與網(wǎng)絡規(guī)劃畢業(yè)設計
- 感應卡消費系統(tǒng)方案
- 企業(yè)內(nèi)部控制畢業(yè)論文
- 會計畢業(yè)設計--企業(yè)內(nèi)部會計制度建設
- 畢業(yè)設計(論文)--中小企業(yè)內(nèi)部控制問題探討
- 如何設計企業(yè)內(nèi)部制度
- 企業(yè)內(nèi)部控制設計doc
- 企業(yè)內(nèi)部銀行
- 企業(yè)內(nèi)部招聘
- 企業(yè)內(nèi)部控制制度論文企業(yè)內(nèi)部控制基本規(guī)
- 18項《企業(yè)內(nèi)部控制應用指引》《企業(yè)內(nèi)部控制評價指引》和《企業(yè)內(nèi)部控制審計指引》
- 畢業(yè)設計--企業(yè)內(nèi)部錄像監(jiān)控系統(tǒng)(攝像機運動控制)
評論
0/150
提交評論