2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p><b>  摘 要1</b></p><p><b>  前 言2</b></p><p><b>  第一章 概述3</b></p><p>  1.1 在線請(qǐng)假系統(tǒng)的任務(wù)與目標(biāo)

2、3</p><p>  1.2 本論文所作的工作3</p><p>  第二章 在線請(qǐng)假系統(tǒng)技術(shù)背景以及支撐環(huán)境4</p><p><b>  2.1 MVC4</b></p><p>  2.2 Struts5</p><p>  2.2.1 Struts概述5</p>

3、<p>  2.2.2 利用Struts框架開發(fā)MVC系統(tǒng)6</p><p>  2.3 Hibernate6</p><p>  2.4 Ajax7</p><p><b>  2.5 JXL8</b></p><p>  2.6 在線請(qǐng)假系統(tǒng)的開發(fā)環(huán)境9</p><p>

4、;  2.7 在線請(qǐng)假系統(tǒng)的運(yùn)行環(huán)境9</p><p>  2.7.1 在線請(qǐng)假系統(tǒng)的項(xiàng)目部署9</p><p>  2.7.2 在線請(qǐng)假系統(tǒng)的環(huán)境需求10</p><p>  第三章 在線請(qǐng)假系統(tǒng)總體設(shè)計(jì)11</p><p>  3.1 在線請(qǐng)假系統(tǒng)需求分析11</p><p>  3.1.1 用戶分析

5、11</p><p>  3.1.2 業(yè)務(wù)目標(biāo)11</p><p>  3.1.3 業(yè)務(wù)處理過程12</p><p>  3.1.4 系統(tǒng)特點(diǎn)12</p><p>  3.1.5 其他需求12</p><p>  3.2 系統(tǒng)總體視圖描述13</p><p>  3.2.1 系統(tǒng)用例視

6、圖13</p><p>  3.2.2 系統(tǒng)約束14</p><p>  3.3 在線請(qǐng)假系統(tǒng)的系統(tǒng)架構(gòu)14</p><p>  3.3.1 系統(tǒng)用例總圖14</p><p>  3.3.2 業(yè)務(wù)處理視圖15</p><p>  3.3.3 系統(tǒng)實(shí)現(xiàn)視圖16</p><p>  3

7、.3.3.1 概述16</p><p>  3.3.3.2 層次17</p><p>  3.4在線請(qǐng)假系統(tǒng)功能模塊分析18</p><p>  3.4.1系統(tǒng)功能模塊分析18</p><p>  3.4.2系統(tǒng)功能模塊設(shè)計(jì)18</p><p>  第四章 在線請(qǐng)假系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)21</p>

8、<p>  4.1 數(shù)據(jù)庫設(shè)計(jì)21</p><p>  4.1.1 數(shù)據(jù)庫信息21</p><p>  4.4.2 查詢與訪問技術(shù)21</p><p>  4.4.3 數(shù)據(jù)字典以及對(duì)應(yīng)的持久化類21</p><p>  4.2 數(shù)據(jù)庫約束關(guān)系圖26</p><p>  4.3 持久層26<

9、/p><p>  4.4 非數(shù)據(jù)庫文件27</p><p>  第五章 員工請(qǐng)假申請(qǐng)模塊的設(shè)計(jì)與實(shí)現(xiàn)28</p><p>  5.1 模塊功能分析28</p><p>  5.2 員工請(qǐng)假申請(qǐng)用例視圖28</p><p>  5.3 模塊的包類結(jié)構(gòu)圖29</p><p>  5.4 用

10、例關(guān)系圖31</p><p>  5.4.1 順序圖31</p><p>  5.4.2 協(xié)作圖31</p><p>  5.5關(guān)鍵技術(shù)32</p><p>  5.5.1 權(quán)限控制32</p><p>  5.5.2 Ajax日期校驗(yàn)34</p><p>  5.5.3 定義組織框

11、架中“環(huán)”的問題36</p><p>  5.5.4 利用同步令牌來防止刷新導(dǎo)致的重復(fù)提交36</p><p>  第六章 總結(jié)與展望38</p><p>  6.1 課題總結(jié)38</p><p>  6.2 課題存在的問題以及解決方案38</p><p><b>  參考文獻(xiàn)40</b&

12、gt;</p><p><b>  致謝41</b></p><p><b>  摘 要</b></p><p>  隨著信息技術(shù)的高速發(fā)展,信息技術(shù)在企業(yè)以及機(jī)關(guān)部門的使用越來越廣泛,各種基于B/S架構(gòu)的管理軟件的研究與開發(fā)也越來越受到人們的重視。本文基于Struts框架、Hibernate,MVC,詳盡闡述了在線請(qǐng)

13、假系統(tǒng)(Leave Application System,LAS)的設(shè)計(jì)與實(shí)現(xiàn)。本系統(tǒng)分為五大模塊——用戶登錄、員工請(qǐng)假申請(qǐng)、請(qǐng)假批準(zhǔn)模塊、請(qǐng)假流程定義與休假計(jì)劃維護(hù)。文中描述了這些模塊的主要設(shè)計(jì)思想和實(shí)現(xiàn)方法,并著重研究和討論了員工請(qǐng)假申請(qǐng)模塊的設(shè)計(jì)以及系統(tǒng)中的一些關(guān)鍵技術(shù)。論文在最后還探討了系統(tǒng)目前存在的問題與不足,并對(duì)如何進(jìn)一步改善系統(tǒng)進(jìn)行了討論。</p><p>  關(guān)鍵詞:在線請(qǐng)假系統(tǒng),MVC,Stru

14、ts,Hibernate,Ajax</p><p>  作 者: XXX</p><p><b>  指導(dǎo)老師: YYY</b></p><p><b>  前 言</b></p><p>  隨著科學(xué)技術(shù)的進(jìn)步,尤其是計(jì)算機(jī)網(wǎng)絡(luò)的迅猛發(fā)展,人類步入信息時(shí)代,人們的生活方式、思維方式、工作方

15、式,以及教育方式也隨之改變。同時(shí)網(wǎng)絡(luò)技術(shù)的高速發(fā)展,計(jì)算機(jī)的廣泛運(yùn)用,使得實(shí)際生活中的問題通過計(jì)算機(jī)加網(wǎng)絡(luò)得到了有效的解決。如,管理部門通過計(jì)算機(jī)可以對(duì)大量復(fù)雜的工序通過計(jì)算機(jī)控制,使其極大的降低了錯(cuò)誤出現(xiàn)的概率,大幅度提高了工作的效率,從而獲得經(jīng)濟(jì)效益。又如,每個(gè)公司都會(huì)遇到員工請(qǐng)假情況,需要經(jīng)過,填寫申請(qǐng)請(qǐng)假的表格,遞交給上級(jí)批復(fù),有時(shí)找不到上級(jí)本人遞交申請(qǐng),出現(xiàn)不能及時(shí)批復(fù)的情況。這樣既給員工帶來了不便,管理人員需要對(duì)請(qǐng)假記錄進(jìn)行

16、歸檔,方便日后查閱,日積月累,查閱檔案也不方便。綜上所述,對(duì)于員工請(qǐng)假問題很有必要利用計(jì)算機(jī)來管理工作流程、存儲(chǔ)請(qǐng)假文檔,從而獲得有效的管理。</p><p>  本論文講述了一個(gè)基于公司組織框架的在線請(qǐng)假系統(tǒng)(Leave Application System,LAS)的設(shè)計(jì)與實(shí)現(xiàn)過程,包括系統(tǒng)功能設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)以及請(qǐng)假申請(qǐng)模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)。</p><p>  全文共分為六章。第一

17、章簡(jiǎn)單闡述了LAS的開發(fā)背景,任務(wù)目標(biāo),以及本文的所做的工作,第二章闡述了LAS相關(guān)的技術(shù)背景以及的支撐環(huán)境,第三章詳細(xì)描述了LAS的總體設(shè)計(jì),包括需求分析等,第四章闡述了LAS的數(shù)據(jù)庫設(shè)計(jì)以及其持久層設(shè)計(jì),第五章重點(diǎn)闡述了LAS中請(qǐng)假申請(qǐng)模塊的設(shè)計(jì)與實(shí)現(xiàn)以及LAS中所運(yùn)用到的關(guān)鍵技術(shù),第六章對(duì)課題進(jìn)行了總結(jié),并且對(duì)LAS存在的不足進(jìn)行說明以及提出有效的解決方案。</p><p><b>  第一章

18、概述</b></p><p>  1.1 在線請(qǐng)假系統(tǒng)的任務(wù)與目標(biāo)</p><p>  LAS采用Java語言編寫,結(jié)合Javascript、XML,基于Struts框架與Hibernate,實(shí)現(xiàn)了在線提交請(qǐng)假申請(qǐng)以及在線批復(fù)申請(qǐng),并及時(shí)通知雙方請(qǐng)假申請(qǐng)的審批情況,管理者也能夠根據(jù)具體情況來制定不同的請(qǐng)假批復(fù)流程,通過該系統(tǒng)的假期維護(hù)功能能夠準(zhǔn)確的掌握公司員工的一定時(shí)期的請(qǐng)假情

19、況。要求完成以下主要工作:</p><p>  1)在線請(qǐng)假系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),包括系統(tǒng)的基本架構(gòu),系統(tǒng)需求分析,用戶分析以及功能模塊分析,系統(tǒng)的各種約束條件,以及系統(tǒng)的UML建模過程。</p><p>  2)在線請(qǐng)假系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì),包括系統(tǒng)數(shù)據(jù)庫中的表的設(shè)計(jì),數(shù)據(jù)字典和對(duì)應(yīng)的</p><p>  Hibernate持久化類,以及在日期維護(hù)模塊中的非數(shù)據(jù)庫文件,E

20、xcel文件。</p><p>  3)在線提交請(qǐng)假申請(qǐng)模塊的設(shè)計(jì)與實(shí)現(xiàn),包括該模塊的功能分析與用例設(shè)計(jì),該模塊中的邏輯處理過程,該請(qǐng)模塊還使用Ajax技術(shù),讓用戶有更好的用戶體驗(yàn)和更傻瓜式的操作。</p><p>  1.2 本論文所作的工作</p><p>  本文闡述了在線請(qǐng)假系統(tǒng)的開發(fā)背景,圍繞MVC架構(gòu)、Struts、Hibernate以及其它技術(shù)背景進(jìn)行

21、了詳細(xì)的闡述;同時(shí)詳細(xì)闡述了整個(gè)系統(tǒng)的需求分析、功能分析、系統(tǒng)設(shè)計(jì)以及數(shù)據(jù)庫設(shè)計(jì),重點(diǎn)突出在線請(qǐng)假系統(tǒng)中的請(qǐng)假申請(qǐng)模塊,詳細(xì)地闡述了該模塊從需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)用例分析以及數(shù)據(jù)庫設(shè)計(jì)的整個(gè)過程,借以達(dá)到展示整個(gè)系統(tǒng)開發(fā)過程的目的;另外,本文還對(duì)在線請(qǐng)假系統(tǒng)中所運(yùn)用的幾個(gè)關(guān)鍵技術(shù)進(jìn)行了說明,并對(duì)整個(gè)系統(tǒng)目前存在的問題與不足進(jìn)行了探討,為進(jìn)一步完善該系統(tǒng)提出可行的解決方案。</p><p>  第二章 在線請(qǐng)假

22、系統(tǒng)技術(shù)背景以及支撐環(huán)境</p><p>  在線請(qǐng)假系統(tǒng)基于Struts、Hibernate,軟件開發(fā)平臺(tái)采用了MyEclipse 6.0,并使用了Ajax,在本章中簡(jiǎn)單介紹相關(guān)的技術(shù)背景。</p><p><b>  2.1 MVC</b></p><p>  MVC(Model-View-Controller,模型—視圖—控制器模式) 用

23、于表示一種軟件架構(gòu)模式。它把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model),視圖(View)和控制器(Controller)。</p><p>  MVC最初是在Smalltalk-80中被用來構(gòu)建用戶界面的。MVC的目的是增加代碼的重用率,減少數(shù)據(jù)表達(dá),數(shù)據(jù)描述和應(yīng)用操作的耦合度。 同時(shí)也使得軟件可維護(hù)性,可修復(fù)性,可擴(kuò)展性,靈活性以及封裝性大大提高。通過把數(shù)據(jù)模式從各種可以被存取和控制的數(shù)據(jù)中分離出來可以改善分

24、布式系統(tǒng)的設(shè)計(jì)。MVC設(shè)計(jì)模式由三部分組成。模型是應(yīng)用對(duì)象,沒有用戶界面。視圖表示它在屏幕上的顯示,代表流向用戶的數(shù)據(jù)??刂破鞫x用戶界面對(duì)用戶輸入的響應(yīng)方式,負(fù)責(zé)把用戶的動(dòng)作轉(zhuǎn)成針對(duì)模型的操作。模型通過更新視圖的數(shù)據(jù)來反映數(shù)據(jù)的變化。三者關(guān)系如圖2-1:</p><p>  圖2-1 MVC的分工與協(xié)作</p><p>  2.2 Struts</p><p> 

25、 本節(jié)簡(jiǎn)要闡述了Struts基本原理以及利用Struts框架來構(gòu)建一個(gè)MVC架構(gòu)的系統(tǒng)。</p><p>  2.2.1 Struts概述</p><p>  Struts是Apache組織的一個(gè)項(xiàng)目,像其他的Apache組織的項(xiàng)目一樣,它也是開放源碼項(xiàng)目。Struts是一個(gè)比較好的MVC框架并提供了對(duì)開發(fā)MVC系統(tǒng)的底層支持,它采用的主要技術(shù)是Servlet,JSP和Custom Tag

26、 Library。 </p><p>  Struts框架的基本構(gòu)成由圖2-2所示:</p><p>  圖2-2 Struts框架的基本構(gòu)成</p><p>  Struts框架的處理流程清楚的體現(xiàn)了MVC系統(tǒng)的特點(diǎn),簡(jiǎn)單的Struts組件結(jié)構(gòu)如圖2-3所示。Struts Controller ActionServlet處理客戶請(qǐng)求,利用配置的ActionMapp

27、ing對(duì)象把請(qǐng)求映射到Action處理器對(duì)象進(jìn)行處理。Action處理對(duì)象訪問ActionForm中的數(shù)據(jù),處理和響應(yīng)客戶請(qǐng)求,它還調(diào)用后臺(tái)的Bean組件,這些組件封裝了具體的業(yè)務(wù)邏輯。Action處理器對(duì)象根據(jù)處理結(jié)果通知Controller,Controller進(jìn)行下一步的處理。</p><p>  圖2-3 Struts框架的組件結(jié)構(gòu)圖</p><p>  2.2.2 利用Strut

28、s框架開發(fā)MVC系統(tǒng)</p><p>  由于Struts已經(jīng)為我們提供了一個(gè)非常好的MVC框架,我們利用Struts開發(fā)MVC系統(tǒng)時(shí)可以大大加快開發(fā)的速度。 </p><p>  具體在使用Struts框架時(shí),對(duì)應(yīng)各個(gè)部分的開發(fā)工作主要包括:</p><p>  Model部分:采用JavaBean和EJB組件,設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯。根據(jù)不同的請(qǐng)求從Actio

29、n派生具體Action處理對(duì)象。完成"做什么"的任務(wù)來調(diào)用由Bean構(gòu)成的業(yè)務(wù)組件。創(chuàng)建由ActionForm 的派生類實(shí)現(xiàn)對(duì)客戶端表單數(shù)據(jù)的封裝。 </p><p>  Controller部分:Struts為我們提供了核心控制部分的實(shí)現(xiàn)。我們只需要配置ActionMapping對(duì)象 </p><p>  View部分:為了使用Model中的ActionForm 對(duì)象

30、,我們必須用Struts提供的自定義標(biāo)記創(chuàng)建HTML 表單。利用Struts提供的自定義標(biāo)記庫編寫用戶界面把應(yīng)用邏輯和顯示邏輯分離。Struts框架通過這些自定義標(biāo)記建立了View和Model之間的聯(lián)系。Struts的自定義標(biāo)記還提供了很多定制頁面的功能。 </p><p>  同時(shí)需要編輯兩個(gè)配置文件:web.xml和struts-config.xml。通過它們配置Struts系統(tǒng)中的各個(gè)模塊之間的交互,把St

31、ruts框架中MVC的各個(gè)部分聯(lián)系起來,實(shí)現(xiàn)一個(gè)真正的MVC系統(tǒng)。</p><p>  2.3 Hibernate</p><p>  Hibernate 是一個(gè)純 Java 的對(duì)象關(guān)系映射和持久性框架,是連接Java應(yīng)用程序和關(guān)系數(shù)據(jù)庫的中間件。它對(duì)JDBC API進(jìn)行了封裝,負(fù)責(zé)Java對(duì)象的持久化。在分層軟件架構(gòu)中它位于持久化層,封裝了所有數(shù)據(jù)訪問細(xì)節(jié),使業(yè)務(wù)邏輯層可以專注于實(shí)現(xiàn)業(yè)務(wù)

32、邏輯。它是一種ORM映射工具,能夠建立面向?qū)ο蟮挠蚰P秃完P(guān)系數(shù)據(jù)模型之間的映射。</p><p>  使用 Hibernate 能夠節(jié)約大量項(xiàng)目開發(fā)時(shí)間,因?yàn)檎麄€(gè) JDBC 層都由這個(gè)框架管理。這意味著應(yīng)用程序的數(shù)據(jù)訪問層位于 Hibernate 之上,完全是從底層數(shù)據(jù)模型中抽象出來的。如圖2-4所示: </p><p>  圖2-4 Hibernate層次圖</p><

33、;p><b>  2.4 Ajax</b></p><p>  Ajax(Asynchronous JavaScript and XML)是使用客戶端腳本與Web服務(wù)器交換數(shù)據(jù)的Web應(yīng)用開發(fā)方法。這樣,Web頁面不用打斷交互流程進(jìn)行重新加裁,就可以動(dòng)態(tài)地更新。使用Ajax,用戶可以創(chuàng)建接近本地桌面應(yīng)用的直接、高可用、更豐富、更動(dòng)態(tài)的Web用戶界面。</p><p&

34、gt;  而傳統(tǒng)的Web應(yīng)用模型工作起來就像這樣:大部分界面上的用戶動(dòng)作觸發(fā)一個(gè)連接到Web服務(wù)器的HTTP請(qǐng)求。服務(wù)器完成一些處理---接收數(shù)據(jù),處理計(jì)算,再訪問其它的數(shù)據(jù)庫系統(tǒng),最后返回一個(gè)HTML頁面到客戶端。這是一個(gè)老套的模式,自采用超文本作為Web使用以來,一直都這樣用, 這樣確限制了Web界面沒有桌面軟件那么好用。傳統(tǒng)Web應(yīng)用模型與Ajax模型的比較如圖2-5所示:</p><p>  圖2-5 傳

35、統(tǒng)Web應(yīng)用模型(左)與Ajax模型的比較(右)</p><p>  通過在用戶和服務(wù)器之間引入一個(gè)Ajax引擎,可以消除Web的開始-停止-開始-停止這樣的交互過程。不像加載一個(gè)頁面一樣,在會(huì)話的開始,瀏覽器加載了一個(gè)Ajax引擎---采用JavaScript編寫并且通常在一個(gè)隱藏frame中。這個(gè)引擎負(fù)責(zé)繪制用戶界面以及與服務(wù)器端通訊。Ajax引擎允許用異步的方式實(shí)現(xiàn)用戶與程序的交互--不用等待服務(wù)器的通訊。

36、所以用戶再不不用打開一個(gè)空白窗口,看到等待光標(biāo)不斷的轉(zhuǎn),等待服務(wù)器完成后再響應(yīng),不用再擔(dān)誤用戶界面的交互。</p><p><b>  2.5 JXL</b></p><p>  JXL(Java Excel API)是一個(gè)用來動(dòng)態(tài)讀寫Excel文件的開源框架目,通過它Java開發(fā)人員可以讀取Excel文件的內(nèi)容、創(chuàng)建新的Excel文件、更新已經(jīng)存在的Excel文件。

37、使用該API非Windows操作系統(tǒng)也可以通過純Java應(yīng)用來處理Excel數(shù)據(jù)表。因?yàn)槭鞘褂肑ava編寫的,所以能在Web應(yīng)用中可以通過JSP、Servlet來調(diào)用API實(shí)現(xiàn)對(duì)Excel數(shù)據(jù)表的訪問。相對(duì)POI,JXL簡(jiǎn)單方便,對(duì)中文支持非常好,功能也比較強(qiáng)大。</p><p>  現(xiàn)在發(fā)布的穩(wěn)定版本是V2.0,提供以下功能:</p><p>  從Excel 95、97、2000等格式

38、的文件中讀取數(shù)據(jù); </p><p>  讀取Excel公式(可以讀取Excel 97以后的公式); </p><p>  生成Excel數(shù)據(jù)表(格式為Excel 97); </p><p>  支持字體、數(shù)字、日期的格式化; </p><p>  支持單元格的陰影操作,以及顏色操作; </p><p>  修改已經(jīng)存

39、在的數(shù)據(jù)表; </p><p>  2.6 在線請(qǐng)假系統(tǒng)的開發(fā)環(huán)境</p><p>  本系統(tǒng)采用Struts1.1框架構(gòu)建。開發(fā)工具采用Tomcat5.5與MyEclipse6.0結(jié)合使用。持久層采用Hibernate3.0框架,開發(fā)包為JDK1.5,數(shù)據(jù)庫使用SQL Server的桌面版——MSDE。</p><p>  2.7 在線請(qǐng)假系統(tǒng)的運(yùn)行環(huán)境</

40、p><p>  2.7.1 在線請(qǐng)假系統(tǒng)的項(xiàng)目部署</p><p>  圖2-6 LAS系統(tǒng)部署圖</p><p>  在線請(qǐng)假系統(tǒng)的部署如圖2-6所示,具體描述如下:</p><p>  Applicant PC, Manager PC and Agency PC</p><p>  這些計(jì)算機(jī)需要安裝瀏覽器。</

41、p><p>  Web Server </p><p>  Web服務(wù)器是在線請(qǐng)假系統(tǒng)的入口。所有的申請(qǐng)人員,審批人員和維護(hù)人員使用瀏覽器訪問Web服務(wù)器,以便登錄系統(tǒng)進(jìn)行申請(qǐng)、審批、維護(hù)等操作。</p><p>  Application Server</p><p>  應(yīng)用程序服務(wù)器用于處理商務(wù)邏輯以及初始化系統(tǒng)數(shù)據(jù)和檢索數(shù)據(jù)。</p

42、><p>  Database Server</p><p>  數(shù)據(jù)庫服務(wù)器主要用來對(duì)系統(tǒng)中涉及的數(shù)據(jù)進(jìn)行存取操作。</p><p>  2.7.2 在線請(qǐng)假系統(tǒng)的環(huán)境需求</p><p>  本系統(tǒng)采用MVC三層架構(gòu),應(yīng)用程序直接裝在服務(wù)器上,由于在局域網(wǎng)內(nèi)使用本系統(tǒng),安全性較高,運(yùn)行與處理速度快。</p><p>&

43、lt;b>  通信要求</b></p><p>  本系統(tǒng)被布署在公司內(nèi)部的服務(wù)器中,供給公司內(nèi)部人員使用,用戶通過局域網(wǎng)連接到LAS。</p><p><b>  硬件需求/配置</b></p><p>  每個(gè)員工一臺(tái)計(jì)算機(jī),需要將這些計(jì)算機(jī)連接到同一個(gè)局域網(wǎng)中的交換機(jī)。</p><p><b

44、>  系統(tǒng)軟件</b></p><p>  計(jì)算機(jī)的操作系統(tǒng)為Windows操作系統(tǒng),其中需要安裝IE 6.0以上版本的瀏覽器,用戶通過瀏覽器登錄系統(tǒng)。</p><p>  第三章 在線請(qǐng)假系統(tǒng)總體設(shè)計(jì)</p><p>  3.1 在線請(qǐng)假系統(tǒng)需求分析</p><p>  3.1.1 用戶分析</p><

45、;p>  本系統(tǒng)的用戶可以分為以下五類:</p><p><b>  1)系統(tǒng)維護(hù)人員</b></p><p>  負(fù)責(zé)系統(tǒng)維護(hù),包括負(fù)責(zé)批量的導(dǎo)入用戶,假期維護(hù),可以對(duì)自己的個(gè)人資料進(jìn)行編輯和查詢本人過往申請(qǐng)記錄的批復(fù)情況,同時(shí)作為員工,系統(tǒng)維護(hù)人員也具有提交請(qǐng)假申請(qǐng)的需要。</p><p><b>  2)經(jīng)理</b&

46、gt;</p><p>  作為公司的高層,負(fù)責(zé)批閱請(qǐng)假申請(qǐng),可以對(duì)用戶進(jìn)行鎖定的操作,可以查閱公司所有員工的請(qǐng)假歷史,并且將公司某段時(shí)期中的請(qǐng)假情況生成Excel報(bào)表;負(fù)責(zé)定義和管理公司組織框架和請(qǐng)假批復(fù)流程。</p><p><b>  3)項(xiàng)目經(jīng)理</b></p><p>  具有批閱請(qǐng)假申請(qǐng)的權(quán)限,并且作為經(jīng)理的下屬,還有提交請(qǐng)假申請(qǐng)的

47、需要,并可以對(duì)自己的個(gè)人資料進(jìn)行編輯和查詢本人過往申請(qǐng)記錄的批復(fù)情況。</p><p><b>  4)組長</b></p><p>  具有批閱請(qǐng)假申請(qǐng)的權(quán)限,并且作為經(jīng)理以及項(xiàng)目經(jīng)理的下屬,還有提交請(qǐng)假申請(qǐng)的需要,并可以對(duì)自己的個(gè)人資料進(jìn)行編輯和查詢本人過往申請(qǐng)記錄的批復(fù)情況。</p><p><b>  5)員工</b&g

48、t;</p><p>  員工可以提交未來某段時(shí)間的請(qǐng)假申請(qǐng),并可以對(duì)自己的個(gè)人資料進(jìn)行編輯和查詢本人過往申請(qǐng)記錄的批復(fù)情況。</p><p>  3.1.2 業(yè)務(wù)目標(biāo)</p><p>  在線請(qǐng)假系統(tǒng),該系統(tǒng)為員工提供方便的請(qǐng)假渠道,有利于提高公司的管理效率。目標(biāo)是提供給項(xiàng)目經(jīng)理和組員提供一個(gè)方便快捷的在線請(qǐng)假系統(tǒng), 用于管理和優(yōu)化員工的請(qǐng)假申請(qǐng)和批復(fù)過程,能夠簡(jiǎn)

49、化方便組員休假申請(qǐng)以及項(xiàng)目管理人員各組員的休假計(jì)劃,并備份休假計(jì)劃報(bào)告以備查閱。關(guān)鍵目標(biāo)如表3-1關(guān)鍵目標(biāo)所示,</p><p><b>  表3-1 關(guān)鍵目標(biāo)</b></p><p>  3.1.3 業(yè)務(wù)處理過程</p><p>  1)用戶登錄:完成對(duì)用戶登錄的合法性檢查,并對(duì)用戶權(quán)限進(jìn)行控制;</p><p>  

50、2)員工請(qǐng)假申請(qǐng):?jiǎn)T工向上級(jí)提交申請(qǐng),并發(fā)送Email通知相應(yīng)的上級(jí);</p><p>  3)上級(jí)請(qǐng)假批準(zhǔn):由上級(jí)進(jìn)行批復(fù)后Email通知員工批復(fù)結(jié)果;</p><p>  4)請(qǐng)假流程定義:定義好請(qǐng)假流程中要批復(fù)的層次關(guān)系;</p><p>  5)休假計(jì)劃報(bào)告:導(dǎo)出Excel報(bào)表,對(duì)系統(tǒng)參數(shù)進(jìn)行維護(hù)。</p><p>  3.1.4 系

51、統(tǒng)特點(diǎn)</p><p>  LAS具有如下特點(diǎn):</p><p>  管理人員可以自定義請(qǐng)假的流程,可對(duì)審批流程各環(huán)節(jié)適當(dāng)增減,,不會(huì)影響整個(gè)系統(tǒng)的運(yùn)行;</p><p>  系統(tǒng)及時(shí)以Email方式發(fā)送批復(fù)結(jié)果于請(qǐng)假申請(qǐng)的員工,以便員工可以及時(shí)獲得批復(fù)信息;</p><p>  若休假時(shí)間未到,管理人員可以更改批復(fù);</p>

52、<p>  若請(qǐng)假申請(qǐng)的起始日期為過期,申請(qǐng)人員可以對(duì)申請(qǐng)進(jìn)行更改刪除(僅限于假設(shè)性申請(qǐng))。</p><p>  3.1.5 其他需求</p><p>  LAS的其他需求,分別是:</p><p>  處理量需求:系統(tǒng)日處理請(qǐng)假申請(qǐng)50人左右,最高不超過300人。</p><p>  安全需求:如表3-2所示。</p>

53、;<p><b>  表3-2 安全需求</b></p><p><b>  存檔需求:</b></p><p>  每個(gè)組員的假期申請(qǐng)從提交申請(qǐng)開始一直會(huì)保留到其被批閱的時(shí)候,申請(qǐng)將分已經(jīng)通過和未通過批準(zhǔn)的分開保存,未批準(zhǔn)的申請(qǐng)將返回給組員,通過批準(zhǔn)的申請(qǐng)將生成休假計(jì)劃并添加到組員休假計(jì)劃中。</p><p&g

54、t;  未通過批準(zhǔn)的申請(qǐng)將在某階段的整理中歸檔到備份文件中。</p><p>  通過批準(zhǔn)的申請(qǐng)會(huì)生成Excel報(bào)表,Excel報(bào)表主要提供給項(xiàng)目經(jīng)理和客戶對(duì)項(xiàng)目組成員的休假情況以及計(jì)劃有個(gè)詳細(xì)的了解。</p><p><b>  意外處理需求:</b></p><p>  LAS可以忍受的由于維護(hù)的停工期不能超過一天。</p>

55、<p>  LAS記錄使用文本和Excel報(bào)表存儲(chǔ),備份的持續(xù)時(shí)間一般為一天。</p><p>  在停機(jī)維護(hù)或者意外事件.允許組員人工向項(xiàng)目經(jīng)理提交請(qǐng)假申請(qǐng),并在系統(tǒng)恢復(fù)使用期間重新補(bǔ)錄。</p><p>  3.2 系統(tǒng)總體視圖描述</p><p>  3.2.1 系統(tǒng)用例視圖</p><p>  在線請(qǐng)假系統(tǒng)的用例視圖如圖3-

56、1所示。</p><p>  圖3-1 系統(tǒng)用例視圖</p><p>  3.2.2 系統(tǒng)約束</p><p>  如果申請(qǐng)人填寫請(qǐng)假起始和結(jié)束日期相同時(shí),系統(tǒng)會(huì)自動(dòng)判斷出為一天,會(huì)提供上下午的選擇,如果不選擇,系統(tǒng)默認(rèn)為一天假期;</p><p>  可以假設(shè)性請(qǐng)假,如:從某天到某天,我將要請(qǐng)假。中途可以取消或者編輯請(qǐng)假;</p>

57、;<p>  所有未到期的申請(qǐng)可以做增刪改操作(僅限于假設(shè)性申請(qǐng));</p><p>  流程可分為:越級(jí)審批(高級(jí)越過低級(jí)或者低級(jí)越過高級(jí))和逐級(jí)審批(低級(jí)審批后高級(jí)才可審批)。</p><p>  3.3 在線請(qǐng)假系統(tǒng)的系統(tǒng)架構(gòu)</p><p>  3.3.1 系統(tǒng)用例總圖</p><p>  整個(gè)在線請(qǐng)假系統(tǒng)的用例總圖如

58、圖3-2所示。</p><p>  圖3-2 系統(tǒng)用例圖</p><p>  3.3.2 業(yè)務(wù)處理視圖</p><p>  在線請(qǐng)假系統(tǒng)的業(yè)務(wù)處理視圖如圖3-3所示。</p><p>  圖3-3 業(yè)務(wù)處理圖</p><p>  ActionServlet Controller:</p><p>

59、;  它是整個(gè)流程的控制器,用于處理用戶與服務(wù)器間的會(huì)話過程。用戶發(fā)送請(qǐng)求到控制器,控制器通過ActionFormBean對(duì)請(qǐng)求的數(shù)據(jù)進(jìn)行驗(yàn)證,然后通過Actions接口送到服務(wù)器去處理,控制器將從服務(wù)器返回的Bussiness Data填充到FormBean類中,生成JSP頁面,顯示給用戶處理后的結(jié)果。</p><p>  ActionFormBean Processor:</p><p&g

60、t;  用于將用戶輸入的表單數(shù)據(jù)保存在ActionFormBean中,并對(duì)其進(jìn)行驗(yàn)證,驗(yàn)證通過后,由控制器轉(zhuǎn)發(fā)到后臺(tái)處理,得到的結(jié)果再存放到ActionFormBean中,JSP文件使用Struts標(biāo)簽讀取修改后的ActionFormBean信息,重新設(shè)置Html表單. 將頁面返回給用戶。</p><p>  JavaBean Container:</p><p>  管理JavaBean

61、組件,包括事務(wù)處理(查詢、更新、增加操作)、安全組件、連接池等。</p><p>  3.3.3 系統(tǒng)實(shí)現(xiàn)視圖</p><p>  3.3.3.1 概述</p><p>  在線請(qǐng)假系統(tǒng)的包結(jié)構(gòu)圖如圖3-4所示,每個(gè)包的功能在表3-3中做了說明。</p><p>  圖3-4 系統(tǒng)包結(jié)構(gòu)圖</p><p>  表3-3

62、 包的功能說明</p><p>  3.3.3.2 層次</p><p>  圖3-5 系統(tǒng)包層次圖</p><p>  圖3-5是系統(tǒng)包的層次圖。其中,com.las.struts.service 包為com.las.struts.dispatchAction包提供系統(tǒng)一些公共服務(wù),而com.las.struts.dispatchAction又通過com.las.

63、struts.dao包與持久層進(jìn)行交互。</p><p>  3.4在線請(qǐng)假系統(tǒng)功能模塊分析</p><p>  3.4.1系統(tǒng)功能模塊分析</p><p>  LAS主要提供給項(xiàng)目組管理其項(xiàng)目組組員的請(qǐng)假和假期規(guī)劃管理,并能提供給客戶一個(gè)清晰的項(xiàng)目組組員的請(qǐng)假計(jì)劃,以及組員提交其請(qǐng)假計(jì)劃。</p><p><b>  它共有如下模

64、塊:</b></p><p>  模塊一:用戶登陸模塊——用戶登錄系統(tǒng),用戶管理;</p><p>  模塊二:?jiǎn)T工請(qǐng)假申請(qǐng)——員工填寫并提交請(qǐng)假申請(qǐng);</p><p>  模塊三:請(qǐng)假批準(zhǔn)模塊——項(xiàng)目經(jīng)理批準(zhǔn)或駁回員工的請(qǐng)假;</p><p>  模塊四:請(qǐng)假流程定義——定義請(qǐng)假流程和設(shè)計(jì)工作流;</p><

65、p>  模塊五:休假計(jì)劃報(bào)告——查閱審批情況、導(dǎo)出Excel報(bào)表以及系統(tǒng)參數(shù)維護(hù)。</p><p>  3.4.2系統(tǒng)功能模塊設(shè)計(jì)</p><p>  表3-4到表3-8是系統(tǒng)各子模塊的功能描述。</p><p><b>  用戶登陸模塊</b></p><p>  表3-4用戶登陸模塊功能說明</p>

66、<p><b>  員工請(qǐng)假申請(qǐng)模塊</b></p><p>  表3-5員工請(qǐng)假申請(qǐng)模塊功能說明</p><p><b>  請(qǐng)假批準(zhǔn)模塊</b></p><p>  表3-6請(qǐng)假批準(zhǔn)模塊功能說明</p><p><b>  自定義審批流程模塊</b></

67、p><p>  表3-7自定義審批流程模塊功能說明</p><p><b>  休假計(jì)劃維護(hù)模塊</b></p><p>  表3-8休假計(jì)劃維護(hù)模塊功能說明</p><p>  第四章 在線請(qǐng)假系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)</p><p><b>  4.1 數(shù)據(jù)庫設(shè)計(jì)</b></

68、p><p>  4.1.1 數(shù)據(jù)庫信息</p><p>  有關(guān)數(shù)據(jù)庫的描述如表4-1所示,系統(tǒng)用到的數(shù)據(jù)庫查詢技術(shù)如表4-2所述。</p><p><b>  表4-1數(shù)據(jù)庫信息</b></p><p>  4.4.2 查詢與訪問技術(shù)</p><p>  表4-2數(shù)據(jù)庫查詢與訪問技術(shù)</p&g

69、t;<p>  4.4.3 數(shù)據(jù)字典以及對(duì)應(yīng)的持久化類</p><p>  用戶信息表(TB_UserInfo)</p><p><b>  表4-3用戶信息表</b></p><p>  表4-4用戶信息表約束關(guān)系</p><p>  用戶角色表(TB_UserRole)</p><p

70、><b>  表4-5用戶角色表</b></p><p>  表4-6用戶角色表約束關(guān)系</p><p>  用戶所屬部門表(TB_DepartmentInfo)</p><p>  表4-7用戶所屬部門表</p><p>  表4-8用戶所屬部門表約束關(guān)系</p><p>  分公司信息表

71、(TB_CompanyInfo)</p><p>  表4-9分公司信息表</p><p>  表4-10分公司信息表約束關(guān)系</p><p>  用戶申請(qǐng)表(TB_ApplicationFilled)</p><p>  表4-11用戶申請(qǐng)表</p><p>  表4-12用戶申請(qǐng)表約束關(guān)系</p>&

72、lt;p>  審批記錄表(TB_ApproveRecords)</p><p>  表4-13審批記錄表</p><p>  表4-14審批記錄表約束關(guān)系</p><p>  組織架構(gòu)表(TB_OrganizationFrame)</p><p>  表4-15組織架構(gòu)表</p><p>  表4-16組織架構(gòu)表

73、約束關(guān)系</p><p>  自定義審批流程規(guī)則表(TB_FlowRule)</p><p>  表4-17自定義審批流程規(guī)則表約束關(guān)系</p><p>  表4-18自定義審批流程規(guī)則表約束關(guān)系</p><p>  公共假日表(TB_PublicHolidays)</p><p>  表4-19公共假日表</p

74、><p>  表4-20公共假日表約束關(guān)系</p><p>  參數(shù)維護(hù)表(TB_ParameterMaintain)</p><p>  表4-21 參數(shù)維護(hù)表</p><p>  固定假日表(TB_FixedPublicHolidays)</p><p>  表4-22 固定假日表</p><p&g

75、t;  表4-23 固定假日表約束關(guān)系</p><p>  4.2 數(shù)據(jù)庫約束關(guān)系圖</p><p>  數(shù)據(jù)庫中各個(gè)表的約束關(guān)系如圖4-1所示。</p><p>  圖4-1數(shù)據(jù)庫約束關(guān)系圖</p><p><b>  4.3 持久層</b></p><p>  表4-24 Hibernate

76、持久層</p><p>  4.4 非數(shù)據(jù)庫文件</p><p>  表4-25非數(shù)據(jù)庫文件</p><p>  第五章 員工請(qǐng)假申請(qǐng)模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  5.1 模塊功能分析</p><p>  員工登錄系統(tǒng)后,按照給出的格式填寫好申請(qǐng)。然后系統(tǒng)根據(jù)審批流程的定義產(chǎn)生該申請(qǐng)的審批層次關(guān)系,將申請(qǐng)遞交

77、給審批人員,申請(qǐng)將被存入數(shù)據(jù)庫,同時(shí)會(huì)發(fā)出一封郵件通知審批人員進(jìn)行審批。</p><p>  在填寫請(qǐng)假表格的同時(shí),該模塊需要對(duì)請(qǐng)假的日期區(qū)間進(jìn)行檢測(cè),即請(qǐng)假日期區(qū)間不得與該員工歷史請(qǐng)假記錄重疊,提交申請(qǐng)的起始日期不得小于當(dāng)前日期;如起始日期與結(jié)束日期一致,將有上下午選項(xiàng),允許員工請(qǐng)半天假期,不選則默認(rèn)為請(qǐng)全天假。</p><p>  對(duì)未過期的(即請(qǐng)假起始時(shí)間晚于當(dāng)前時(shí)間的)未批復(fù)的假設(shè)

78、性請(qǐng)假申請(qǐng),申請(qǐng)人可以對(duì)其進(jìn)行修改,或者刪除,中途取消申請(qǐng)。</p><p>  5.2 員工請(qǐng)假申請(qǐng)用例視圖</p><p>  圖5-1員工請(qǐng)假申請(qǐng)用例視圖</p><p>  5.3 模塊的包類結(jié)構(gòu)圖</p><p>  圖5-2請(qǐng)假申請(qǐng)模塊包類結(jié)構(gòu)圖</p><p>  Com.las.struts.dispa

79、tchaction</p><p>  該包主要包含了系統(tǒng)中的Action類,其主要包含以下的幾個(gè)類:</p><p>  Com.las.struts.service</p><p>  該包主要包含了系統(tǒng)中的公用類,為上一層提供一些通用的服務(wù),其中主要幾個(gè)類的作用如下:</p><p>  Com.las.struts.dao</p

80、><p>  該包主要包含了系統(tǒng)中與數(shù)據(jù)庫交互的類,其中主要幾個(gè)類的作用如下:</p><p>  ApplicationDeliverAction</p><p>  表5-1 ApplicationDeliverAction 方法描述</p><p>  checkApplicationDelivered</p><p&g

81、t;  表5-2 checkApplicationDelivered方法描述</p><p><b>  SendEmail</b></p><p>  使用Jmail中的API,設(shè)置對(duì)應(yīng)的mail服務(wù)器,發(fā)送mail的相關(guān)參數(shù),并且設(shè)置mail的標(biāo)題以及編碼等。</p><p><b>  CheckDate</b>&l

82、t;/p><p>  用于Ajax調(diào)用的Servlet,用于判斷用戶輸入的請(qǐng)假申請(qǐng)區(qū)間是否符合要求,如果不符合系統(tǒng)要求則返回對(duì)應(yīng)的錯(cuò)誤提示反饋給用戶,如果符合要求則返回該請(qǐng)假申請(qǐng)的實(shí)際總天數(shù)(即除去公共假期的天數(shù))。</p><p><b>  CountDays</b></p><p>  提供給CheckDate計(jì)算請(qǐng)假總天數(shù)的方法,該方法將用

83、戶輸入的日期區(qū)間與數(shù)據(jù)庫假期維護(hù)表中的固定假期(周日,周六)與非固定假期(節(jié)慶日)對(duì)比,計(jì)算出實(shí)際天數(shù),并作為方法的返回值。</p><p>  DeliverEventDAO</p><p>  表5-3 DeliverEventDAO方法描述</p><p>  5.4 用例關(guān)系圖</p><p><b>  5.4.1 順序

84、圖</b></p><p>  圖5-3 員工請(qǐng)假申請(qǐng)順利圖</p><p><b>  5.4.2 協(xié)作圖</b></p><p>  圖5-4 員工請(qǐng)假申請(qǐng)協(xié)作圖</p><p><b>  5.5關(guān)鍵技術(shù)</b></p><p>  5.5.1 權(quán)限控制&l

85、t;/p><p>  LAS系統(tǒng)的權(quán)限控制是通過控制菜單的顯示以及對(duì)操作設(shè)置權(quán)限來控制的。</p><p>  不同的用戶角色,有不同的功能菜單</p><p>  圖5-5權(quán)限控制-菜單顯示截圖</p><p>  權(quán)限的控制是在用戶登錄的同時(shí),根據(jù)不同的用戶角色I(xiàn)D給用戶分配一個(gè)顯示屬性,在JSP頁面的菜單頁中,根據(jù)這些顯示屬性來動(dòng)態(tài)的控制菜

86、單的顯示。</p><p>  if(tbUserInfo.getTbUserRole().getRoleId().equals(new Integer(1))){</p><p>  //Developer級(jí)別的成員,顯示列表1,2</p><p>  System.out.println("Developer, ok, executed!&qu

87、ot;);</p><p>  showMenu.setShowManageLocalUserInfoMenu(showValueForLogicPresent);</p><p>  showMenu.setShowDeliverApplicationMenu(showValueForLogicPresent);</p><p><b>  }</

88、b></p><p>  else if(tbUserInfo.getTbUserRole().getRoleId().equals(new Integer(2))){</p><p>  //TL級(jí)別的成員,顯示列表1,2,3</p><p>  System.out.println("TL, ok, executed!");&l

89、t;/p><p>  showMenu.setShowManageLocalUserInfoMenu(showValueForLogicPresent);</p><p>  showMenu.setShowDeliverApplicationMenu(showValueForLogicPresent);</p><p>  showMenu.setShowApprov

90、eApplicationMenu(showValueForLogicPresent);</p><p><b>  }</b></p><p>  其中,showMenu類提供了動(dòng)態(tài)控制菜單顯示的方法。</p><p>  <logic:present name="showMenu" property="sh

91、owManageLocalUserInfoMenu"></p><p>  在菜單頁中,使用logic標(biāo)簽來判斷該菜單項(xiàng)是否需要顯示。</p><p><b>  對(duì)操作的權(quán)限控制</b></p><p>  <app:validateSession name="userInfo" property=&

92、quot;Rrole" value="4"/></p><p>  validateSession是一個(gè)共用的Tag,其功能主要是提供給各個(gè)模塊,進(jìn)行Session的判別,以及判斷Session的角色I(xiàn)D。通過這樣的一個(gè)方法去控制該用戶是否有權(quán)限執(zhí)行某種操作。</p><p><b>  權(quán)限的轉(zhuǎn)移</b></p>&

93、lt;p>  另外,在一個(gè)項(xiàng)目組以及公司里,人事的變遷以及上級(jí)以及員工出差的情況是不可避免的,為了防止由于以上的情況而帶來對(duì)請(qǐng)假流程框架的影響,在員工離職或者出差的情況的,允許經(jīng)理或者系統(tǒng)管理員將該用戶鎖定(Lock),這樣可以確保該員工在此期間,將不能使用LAS;如果管理層有人離職或者出差,同樣需要經(jīng)理或者系統(tǒng)管理員鎖定該用戶,并且將其權(quán)限轉(zhuǎn)移到另一個(gè)人,確保公司或者項(xiàng)目組員工能夠及時(shí)獲得上級(jí)的批復(fù),而不會(huì)因此而耽擱請(qǐng)假的時(shí)間。

94、</p><p>  5.5.2 Ajax日期校驗(yàn)</p><p>  為了使用戶有更好的用戶體驗(yàn),同時(shí)也減少人工輸入的錯(cuò)誤和繁瑣,在頁面上的數(shù)據(jù)驗(yàn)證使用了Ajax技術(shù)。</p><p>  圖5-6 Ajax日期校驗(yàn)</p><p>  腳本日歷的使用,不僅可以使用戶有更好的用戶體驗(yàn),同時(shí)也可以確保日期格式的正確性,避免手工輸入日期的出錯(cuò)

95、情況( 輸入日期的文本框設(shè)置為只讀)。</p><p>  圖5-7 Ajax日期校驗(yàn)之錯(cuò)誤信息</p><p>  用戶點(diǎn)擊 檢查 按鈕,JSP頁面將先使用Javascript對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),如果日期不為空,且起始日期不晚于截止日期,則將調(diào)用Ajax引擎與后臺(tái)交互,分別對(duì)以下幾種情況進(jìn)行校驗(yàn):</p><p>  請(qǐng)假日期區(qū)間是否與歷史請(qǐng)假記錄重疊;</p

96、><p>  請(qǐng)假的起始日期是否早于當(dāng)前日期;</p><p>  如果不符合系統(tǒng)要求,將返回錯(cuò)誤提示,返回到前臺(tái),由于使用了Ajax,不需要刷新頁面,而讓用戶及時(shí)的獲得系統(tǒng)返回的信息。</p><p>  圖5-8 Ajax日期校驗(yàn)之?dāng)?shù)據(jù)交互</p><p>  如果符合系統(tǒng)要求,則允許用戶繼續(xù)操作,并調(diào)用CheckDate()計(jì)算請(qǐng)假的實(shí)際

97、總天數(shù)(去除公共假期),然后將請(qǐng)假區(qū)間的實(shí)際天數(shù),自動(dòng)填充到請(qǐng)假總天數(shù)的文本框中。</p><p>  5.5.3 定義組織框架中“環(huán)”的問題</p><p>  由于LAS的組織框架是由人工手動(dòng)定義的,因此由于人為的疏忽,在定義批復(fù)流程的時(shí)候,有可能出現(xiàn)帶有循環(huán)的批復(fù)鏈路,如下圖所示:</p><p>  圖5-9 組織框架的“環(huán)”</p><

98、p>  表5-4 組織框架表</p><p>  由于批復(fù)鏈路出現(xiàn)循環(huán)的鏈路,因此,在系統(tǒng)調(diào)用com.las.struts.service包中的方法getApproverList(int user_id)獲得提交申請(qǐng)的用戶的所有上級(jí)的一個(gè)列表填充到審批記錄表中時(shí)將會(huì)發(fā)現(xiàn)系統(tǒng)內(nèi)部出現(xiàn)死循環(huán)了,導(dǎo)致系統(tǒng)不能正常運(yùn)行。</p><p>  因此有必要在在系統(tǒng)定義組織框架中的邏輯處理中時(shí),對(duì)

99、定義組織框架進(jìn)行控制,項(xiàng)目總經(jīng)理定義的組織關(guān)系中要指定上級(jí)的成員的userId號(hào)作為com.las.struts.service包中ControlCircle類的方法isExistCircle(Integer userId,Integer superiorId)的參數(shù),調(diào)用它判斷,當(dāng)此定義被指定成員的組織關(guān)系加入到系統(tǒng)中時(shí)是否會(huì)出現(xiàn)環(huán)的問題,如果出現(xiàn)了循環(huán)的鏈路,則讓系統(tǒng)報(bào)錯(cuò),提示用戶重新定義該組織框架。</p><

100、p>  5.5.4 利用同步令牌來防止刷新導(dǎo)致的重復(fù)提交</p><p>  為了防止用戶刷新頁面,而引起請(qǐng)假申請(qǐng)重復(fù)提交的現(xiàn)象。其實(shí)現(xiàn)過程如下所述:</p><p>  在用戶進(jìn)入申請(qǐng)?zhí)顚戫撁嬷校赏搅钆撇懭氲絪ession中,即saveToken(request),在提交申請(qǐng)的同時(shí),對(duì)令牌進(jìn)行判斷,即:</p><p>  if(isTokenVal

101、id(request,true)){</p><p>  //令牌不相同,不存在重復(fù)刷新,允許提交</p><p><b>  }</b></p><p><b>  else{</b></p><p>  //令牌相同,拋出出錯(cuò)信息</p><p>  saveToken(

102、request);</p><p><b>  }</b></p><p>  同步令牌的基本原理是:為每一個(gè)頁面編號(hào),并在客戶端和服務(wù)器端各產(chǎn)生一個(gè)副本,每次通過比較兩端的編號(hào)是否一致,達(dá)到同步的目的。首先,由服務(wù)器產(chǎn)生這個(gè)編號(hào),發(fā)送到客戶端。這樣這個(gè)編號(hào)在服務(wù)器和客戶端各有一個(gè)副本。當(dāng)客戶提交頁面時(shí),服務(wù)器首先比較兩個(gè)編號(hào)是否一致。如果一致,則處理提交,并產(chǎn)生一個(gè)

103、新的編號(hào),返回給客戶端。此時(shí)如果客戶回退并再次提交,客戶端是舊編號(hào),服務(wù)器端是新編號(hào),顯然不一致,因此服務(wù)器將判定這是一次重復(fù)提交,不予受理。</p><p>  第六章 總結(jié)與展望</p><p><b>  6.1 課題總結(jié)</b></p><p>  本文的論述是基于實(shí)際開發(fā)中所做的工作進(jìn)行的總結(jié),本課題基于Struts和Hiberna

104、te開展了LAS的研究、設(shè)計(jì)與開發(fā)。詳盡闡述了作者設(shè)計(jì)的LAS的系統(tǒng)設(shè)計(jì),以及它的五大模塊——用戶登陸模塊、員工請(qǐng)假申請(qǐng)、請(qǐng)假批準(zhǔn)模塊、請(qǐng)假流程定義以及休假計(jì)劃報(bào)告的主要設(shè)計(jì)思想和實(shí)現(xiàn)方法,論文中著重研究和討論了整個(gè)系統(tǒng)的總體分析與設(shè)計(jì)以及系統(tǒng)使用的關(guān)鍵技術(shù)。</p><p>  本設(shè)計(jì)能很好地將MVC系統(tǒng)架構(gòu)運(yùn)用于開發(fā)過程之中,系統(tǒng)結(jié)構(gòu)較合理;模塊功能較全,這些模塊分別是用戶登陸模塊、員工請(qǐng)假申請(qǐng)、請(qǐng)假批準(zhǔn)模塊

105、、請(qǐng)假流程定義以及休假計(jì)劃報(bào)告。所開發(fā)的各模塊間的協(xié)調(diào)性好,系統(tǒng)總體比較穩(wěn)定。</p><p>  課題開發(fā)的軟件用戶操作界面簡(jiǎn)潔、美觀、清晰,具有較好的用戶體驗(yàn),經(jīng)過實(shí)際使用,證明其通用性、實(shí)用性和健壯性都達(dá)到了設(shè)計(jì)初期提出的要求。</p><p>  本課題開發(fā)的在線請(qǐng)假系統(tǒng)具有如下特色:</p><p><b>  便攜性</b><

106、/p><p>  本系統(tǒng)使用了Struts,Hibernate為開發(fā)框架,數(shù)據(jù)庫使用了SQL Server桌面級(jí)數(shù)據(jù)庫MSDE,MSDE是一個(gè)小型數(shù)據(jù)庫,用戶只需要在服務(wù)器安全本系統(tǒng)的安裝包,就可以使用該系統(tǒng)了,安裝簡(jiǎn)單,部署方便,具有很高的便攜性。</p><p><b>  操作簡(jiǎn)單,易于維護(hù)</b></p><p>  本系統(tǒng)人機(jī)對(duì)話界面友好

107、,同時(shí)在數(shù)據(jù)校驗(yàn)方面使用了Ajax,有較好的用戶體驗(yàn),并且有效的減少了手工輸入可能出現(xiàn)的錯(cuò)誤,完全傻瓜化的操作;對(duì)于系統(tǒng)管理員而言,本系統(tǒng)對(duì)數(shù)據(jù)的過濾以及數(shù)據(jù)的批量處理,都使得管理員對(duì)系統(tǒng)的日常維護(hù)更加輕松簡(jiǎn)單。</p><p><b>  易于擴(kuò)展</b></p><p>  本系統(tǒng)使用了MVC三層架構(gòu),層次清晰,所有的與數(shù)據(jù)庫交互都放在DAO的包里面,Servic

108、e為業(yè)務(wù)邏輯層提供了一些公共服務(wù)的“接口”,使開發(fā)人員便于對(duì)系統(tǒng)進(jìn)行擴(kuò)展再次開發(fā)。</p><p>  6.2 課題存在的問題以及解決方案</p><p>  由于缺少實(shí)際開發(fā)的經(jīng)驗(yàn),在做系統(tǒng)設(shè)計(jì)的時(shí)候,仍然未考慮周到,因此本系統(tǒng)仍存在許多問題有待解決:</p><p>  在初步使用系統(tǒng)的時(shí)候,需要管理員手工導(dǎo)入該公司或者項(xiàng)目組所有成員的資料,在此之后,需要經(jīng)理對(duì)

109、該公司的組織框架以及請(qǐng)假批復(fù)流程進(jìn)行手工制定。如果未能及時(shí)的進(jìn)行制定,則該公司的員工在這期間是沒辦法進(jìn)行在線請(qǐng)假業(yè)務(wù)的。</p><p>  解決方案:在系統(tǒng)管理員導(dǎo)入用戶資料的同時(shí),根據(jù)用戶的公司,部門,以及不同的級(jí)別,由系統(tǒng)自動(dòng)生成默認(rèn)的組織框架以及請(qǐng)假批復(fù)流程;</p><p>  在我們的后期測(cè)試中,由于人數(shù)的問題,沒有進(jìn)行大量數(shù)據(jù)的測(cè)試,因此在實(shí)際的使用過程中,系統(tǒng)的執(zhí)行效率有所

110、下降。</p><p>  解決方案:對(duì)數(shù)據(jù)處理層進(jìn)行算法優(yōu)化,減少不必要的系統(tǒng)開銷;</p><p>  由于本系統(tǒng)是在公司內(nèi)部使用,因此系統(tǒng)的安全性進(jìn)行很嚴(yán)密的設(shè)計(jì),如果需要跨地區(qū)使用本系統(tǒng),需要對(duì)本系統(tǒng)的安全性進(jìn)行設(shè)計(jì)與改善。</p><p>  解決方案:對(duì)系統(tǒng)進(jìn)行升級(jí),對(duì)系統(tǒng)的安全機(jī)制重新設(shè)計(jì),改善系統(tǒng)的安全穩(wěn)定性。</p><p>

111、;  本系統(tǒng)的Email通知功能的Email正文不能由用戶在前臺(tái)自行定制,如果需要改動(dòng)Email的正文內(nèi)容,則需要改動(dòng)程序源碼。</p><p>  解決方案:在數(shù)據(jù)庫中增加相應(yīng)的字段,并且在后臺(tái)管理中增加對(duì)應(yīng)的Email正文管理功能,可對(duì)對(duì)應(yīng)的Email設(shè)置適當(dāng)?shù)恼膬?nèi)容。</p><p><b>  參考文獻(xiàn)</b></p><p>  [

112、美] Jim Keogh著. 寧建平 梁超 英宇 等譯. J2EE參考大全. 電子工業(yè)出版社,2003</p><p>  [美] Arnoold, Gosling, Holmes著. 虞萬榮 王玉峰 趙亮 等譯. Java編程語言. 中國電力出版社,2003</p><p>  夏芹 曹曉鋼 唐勇 著. 深入淺出Hibernate. 電子工業(yè)出版社,2005</p><

113、;p>  孫未琴 編著. 精通Hibernate:Java對(duì)象持久化技術(shù)詳解. 電子工業(yè)出版社,2005</p><p>  [美] Patrick Peak, Nick Heudecker 著. 孫中華 譯. Hibernate Quickly中文版. 人民郵電出版社,2006</p><p>  柯自聰 編著. Ajax開發(fā)精要. 電子工業(yè)出版社,2006</p>

114、<p>  鄔繼成 編著. Struts與Hibernate實(shí)用教程. 電子工業(yè)出版社,2006</p><p>  倪曉秋 季民 王光偉 編著. J2EE案例開發(fā). 中國水利出版社,2005</p><p>  [美] James Turnker,Kevin Beddell 著. 孫勇 譯. Struts kick start. 電子工業(yè)出版社,2005</p>

115、<p><b>  致謝</b></p><p>  首先要感謝我的導(dǎo)師xxx老師,他認(rèn)真負(fù)責(zé)的態(tài)度以及細(xì)心的指導(dǎo),使我獲益匪淺。感謝xx為我提供了這樣的實(shí)習(xí)機(jī)會(huì),使我得到了一次真正的煅煉,并對(duì)軟件開發(fā)有更深層次的理解。感謝實(shí)習(xí)單位的項(xiàng)目經(jīng)理xx、項(xiàng)目組長xx對(duì)我的耐心指導(dǎo)。感謝xx,在平時(shí)給予我的幫助,使我的技術(shù)進(jìn)步飛快。</p><p>  最后,感謝大

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論