畢業(yè)設(shè)計(jì)-基于web的實(shí)驗(yàn)室預(yù)約系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  畢 業(yè) 設(shè) 計(jì)(論 文)</p><p>  日期: 2015 年 1 月 16日至 2015年6 月 12 日</p><p><b>  摘 要</b></p><p>  隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及,利用網(wǎng)絡(luò)平臺(tái)建立高校實(shí)驗(yàn)室預(yù)約系統(tǒng)成為一個(gè)方向,可以使高校的辦學(xué)更加高效快捷,使實(shí)驗(yàn)室設(shè)備能夠最大化利用,同時(shí)也

2、方便了師生的學(xué)習(xí)生活。</p><p>  本論文基于B/S實(shí)現(xiàn)了一個(gè)在線實(shí)驗(yàn)室預(yù)約系統(tǒng)。該系統(tǒng)提供了實(shí)驗(yàn)室的預(yù)約、審核和管理等功能。普通用戶可以管理自己的個(gè)人信息、修改密碼、查看和下載實(shí)驗(yàn)室課表、預(yù)約指定實(shí)驗(yàn)室、查看預(yù)約狀態(tài)等;管理員可以管理本網(wǎng)站下的所有普通用戶,對(duì)普通用戶進(jìn)行添加、修改和刪除,可以管理所有的實(shí)驗(yàn)室信息,對(duì)實(shí)驗(yàn)室進(jìn)行添加、修改和刪除,可以審核普通用戶的預(yù)約對(duì)預(yù)約審核通過(guò)或者否決;普通用戶也可以

3、自行進(jìn)行注冊(cè)。</p><p>  本系統(tǒng)采用JSP技術(shù)開(kāi)發(fā)網(wǎng)頁(yè),搭配Struts2和Ibatis框架,后臺(tái)數(shù)據(jù)用MySQL數(shù)據(jù)庫(kù)管理。基于B/S的結(jié)構(gòu)清晰,操作方便,界面美觀,具有一定的實(shí)用價(jià)值。</p><p>  關(guān)鍵詞:JSP;MySQL;實(shí)驗(yàn)室預(yù)約系統(tǒng)</p><p><b>  ABSTRACT</b></p><

4、;p>  With the popularization of Internet, using the Internet platform as a university lab reservation system has become a direction, which can make higher education more effective and efficient, and mak

5、e maximum use of the lab equipment, and make teachers' and students' learning life more effective too.</p><p>  This thesis realizes an online laboratory reservation system b

6、ased on B/S. The system provides the laboratory appointment, audit and management functions. Normal users can manage their personal information, change password, view and download laboratory schedule, make an appointment

7、 to designated laboratory, view his reservation status and so on. The administrator can manage all normal users under this website, add, modify and delete for normal users, and can manage all the laboratory information&l

8、t;/p><p>  The system was developed by JSP technology, with Ibatis and Struts2 framework, background data was supported by MySQL database. The structure based on B/S is clear, and it is convenient to

9、operate and the interface is elegant. In conclusion, the web has some practical value.</p><p>  Keywords:JSP; MySQL; lab reservation system</p><p><b>  目 錄</

10、b></p><p><b>  第一章 緒論1</b></p><p>  1.1基于Web的實(shí)驗(yàn)室預(yù)約系統(tǒng)1</p><p>  1.2基于web的實(shí)驗(yàn)室預(yù)約系統(tǒng)的意義1</p><p>  1.3論文的組織1</p><p>  第二章 開(kāi)發(fā)平臺(tái)的介紹3</p>

11、;<p>  2.1 網(wǎng)站后臺(tái)技術(shù)3</p><p>  2.1.1 Java3</p><p>  2.1.2 JSP3</p><p>  2.1.3 JDBC4</p><p>  2.1.4 Struts25</p><p>  2.1.5 Ibatis6</p><

12、;p>  2.1.6 JXL7</p><p>  2.2 網(wǎng)站前端技術(shù)7</p><p>  2.2.1 JQuery7</p><p>  2.2.2 AJAX7</p><p>  2.2.3 BootStrap7</p><p>  2.2.4 Cufon8</p><p&

13、gt;  2.3其它相關(guān)技術(shù)8</p><p>  2.3.1 MySQL8</p><p>  2.3.2 Tomcat8</p><p>  2.3.3 Eclipse9</p><p>  2.3.4 Navicat10</p><p>  第三章 系統(tǒng)整體規(guī)劃11</p><p

14、>  3.1系統(tǒng)總體功能設(shè)計(jì)11</p><p>  3.2系統(tǒng)的功能模塊12</p><p>  3.2.1登錄注冊(cè)模塊12</p><p>  3.2.2管理員管理模塊13</p><p>  3.2.3用戶管理模塊13</p><p>  3.2.4用戶預(yù)約模塊15</p><

15、;p>  第四章 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)16</p><p>  4.1數(shù)據(jù)庫(kù)的設(shè)計(jì)16</p><p>  4.2系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)16</p><p>  4.2.1用戶表17</p><p>  4.2.2實(shí)驗(yàn)室表17</p><p>  4.2.3實(shí)驗(yàn)室預(yù)約表18</p><p&g

16、t;  4.3數(shù)據(jù)庫(kù)的連接18</p><p>  第五章 各個(gè)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)21</p><p>  5.1登錄注冊(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn)21</p><p>  5.1.1用戶注冊(cè)模塊21</p><p>  5.1.2用戶登錄模塊22</p><p>  5.2管理員管理模塊的設(shè)計(jì)與實(shí)現(xiàn)23</

17、p><p>  5.2.1普通用戶管理模塊的設(shè)計(jì)與實(shí)現(xiàn)23</p><p>  5.2.2實(shí)驗(yàn)室管理模塊的設(shè)計(jì)與實(shí)現(xiàn)23</p><p>  5.2.3實(shí)驗(yàn)室預(yù)約管理模塊的設(shè)計(jì)與實(shí)現(xiàn)24</p><p>  5.3用戶管理模塊的設(shè)計(jì)與實(shí)現(xiàn)25</p><p>  5.3.1密碼修改模塊的設(shè)計(jì)與實(shí)現(xiàn)25</p

18、><p>  5.3.2基本資料修改模塊的設(shè)計(jì)與實(shí)現(xiàn)26</p><p>  5.4用戶預(yù)約模塊的設(shè)計(jì)與實(shí)現(xiàn)27</p><p>  5.4.1課表查詢下載模塊的設(shè)計(jì)與實(shí)現(xiàn)27</p><p>  5.4.2實(shí)驗(yàn)室預(yù)約模塊的設(shè)計(jì)與實(shí)現(xiàn)28</p><p>  5.4.3預(yù)約狀態(tài)查詢模塊的設(shè)計(jì)與實(shí)現(xiàn)29</p

19、><p>  5.5系統(tǒng)性能分析和總結(jié)30</p><p>  5.5.1系統(tǒng)的優(yōu)點(diǎn)30</p><p>  5.5.2系統(tǒng)的改進(jìn)方向30</p><p><b>  結(jié)束語(yǔ)32</b></p><p><b>  致 謝33</b></p><p

20、><b>  參考文獻(xiàn)34</b></p><p><b>  緒論</b></p><p>  實(shí)驗(yàn)課是各個(gè)高等學(xué)校教學(xué)環(huán)節(jié)不可缺少的一部分,實(shí)驗(yàn)教學(xué)具有理論與實(shí)踐緊密結(jié)合,交互性強(qiáng),人機(jī)一體,教學(xué)內(nèi)容更新快的特點(diǎn),已成為推動(dòng)素質(zhì)教育,培養(yǎng)學(xué)生創(chuàng)新能力、實(shí)踐能力和科學(xué)素養(yǎng)的重要陣地。隨著實(shí)驗(yàn)室開(kāi)放規(guī)模和開(kāi)放范圍的不斷擴(kuò)大,實(shí)驗(yàn)室的開(kāi)放工

21、作日顯繁瑣,工作量日益增加,這一狀況甚至成為了阻礙實(shí)驗(yàn)室開(kāi)放工作發(fā)展的絆腳石,急需出臺(tái)解決方案。在計(jì)算機(jī)技術(shù)尤其是網(wǎng)絡(luò)技術(shù)飛速發(fā)展的今天,實(shí)行網(wǎng)絡(luò)化管理可提高工作效率,降低人、財(cái)、物資源成本。如何充分利用學(xué)校現(xiàn)有的實(shí)驗(yàn)室資源是一個(gè)排課難題,也是本課題研究的主題。本畢業(yè)設(shè)計(jì)擬對(duì)開(kāi)放性實(shí)驗(yàn)預(yù)約管理系統(tǒng)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),以方便管理,提高效率。</p><p>  1.1基于Web的實(shí)驗(yàn)室預(yù)約系統(tǒng)</p>&

22、lt;p>  現(xiàn)在B/S模式的設(shè)計(jì)與研發(fā)在網(wǎng)上十分流行,大學(xué)學(xué)校的資源也都通過(guò)這種形式展現(xiàn)出來(lái),實(shí)驗(yàn)室預(yù)約系統(tǒng)就是各種B/S模式之中最明顯的一個(gè)例子。實(shí)驗(yàn)室預(yù)約系統(tǒng)是通過(guò)服務(wù)器和客戶端瀏覽器來(lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸,它通過(guò)客戶端實(shí)現(xiàn)管理、申請(qǐng)、提交用戶信息,來(lái)完成實(shí)驗(yàn)項(xiàng)目的預(yù)約、查詢、管理等各種功能。隨著計(jì)算機(jī)應(yīng)用水平和Internet網(wǎng)的迅速發(fā)展,各種資源實(shí)現(xiàn)網(wǎng)絡(luò)化,已經(jīng)成為必然趨勢(shì)。實(shí)驗(yàn)室預(yù)約系統(tǒng)利用這個(gè)優(yōu)勢(shì),來(lái)替代繁瑣的人工操作,從

23、而既改變了過(guò)去實(shí)驗(yàn)室傳統(tǒng)的管理模式又提高了辦事的效率.</p><p>  1.2基于web的實(shí)驗(yàn)室預(yù)約系統(tǒng)的意義</p><p>  實(shí)驗(yàn)室預(yù)約系統(tǒng)具有很高的實(shí)用性,使用JSP技術(shù),結(jié)合JQuery、BootStrap、Struts2、Ibatis框架等進(jìn)行系統(tǒng)開(kāi)發(fā),頁(yè)面之間的交互靈活,頁(yè)面本身簡(jiǎn)潔實(shí)用。該系統(tǒng)便于用戶根據(jù)自身空閑時(shí)間和實(shí)驗(yàn)室空閑情況實(shí)時(shí)預(yù)約,管理員可以根據(jù)用戶身份和實(shí)驗(yàn)

24、室現(xiàn)狀審核用戶的預(yù)約,從而及時(shí)避免了用戶不必要的花費(fèi)以及工作人員大量的時(shí)間浪費(fèi)。</p><p>  通過(guò)MySQL數(shù)據(jù)庫(kù),記錄用戶信息、實(shí)驗(yàn)室信息、實(shí)驗(yàn)室預(yù)約信息等,對(duì)這些信息進(jìn)行管理,普通用戶可查看自己的個(gè)人信息,以及自己的預(yù)約審核狀態(tài),克服了以往不能及時(shí)得到預(yù)約是否成功的信息的弊端。</p><p>  本系統(tǒng)采用HTML+CSS+JQuery+BootStrap+Cufon進(jìn)行前端

25、頁(yè)面布局,后臺(tái)邏輯使用Struts2+Ibatis+JXL框架開(kāi)發(fā)實(shí)現(xiàn)。系統(tǒng)界面簡(jiǎn)潔、友好,易于操作,設(shè)計(jì)的時(shí)候考慮到用戶的使用習(xí)慣,提升了系統(tǒng)的實(shí)用性。</p><p><b>  1.3論文的組織</b></p><p>  本論文主要講述用Web開(kāi)發(fā)實(shí)驗(yàn)室管理系統(tǒng)的方法,另外比較詳細(xì)地說(shuō)明了系統(tǒng)的框架設(shè)計(jì)。</p><p><b&g

26、t;  本論文共分六章:</b></p><p>  第一章:本章講述了實(shí)驗(yàn)室管理系統(tǒng)的課題背景,目前實(shí)驗(yàn)室管理系統(tǒng)的現(xiàn)狀。通過(guò)分析可以知道,實(shí)驗(yàn)室管理系統(tǒng)應(yīng)用性強(qiáng),對(duì)提高實(shí)驗(yàn)室使用效率,提高教學(xué)質(zhì)量都有很大的幫助。</p><p>  第二章:本章講述了開(kāi)發(fā)該系統(tǒng)所需要的工具,并對(duì)這些工具的功能和用法進(jìn)行了簡(jiǎn)單介紹。</p><p>  第三章:本章介

27、紹了開(kāi)發(fā)該系統(tǒng)必須做的工作:需求分析和總體設(shè)計(jì)。需求分析是開(kāi)發(fā)本系統(tǒng)前的工作,總體設(shè)計(jì)是對(duì)軟件開(kāi)發(fā)的過(guò)程上的概括。</p><p>  第四章:本章介紹了數(shù)據(jù)庫(kù)開(kāi)發(fā)設(shè)計(jì)與實(shí)現(xiàn)。</p><p>  第五章:本章介紹了各個(gè)功能模塊的具體設(shè)計(jì)過(guò)程和實(shí)現(xiàn),并分析了系統(tǒng)的整體性能。</p><p>  第二章 開(kāi)發(fā)平臺(tái)的介紹 </p><p>  

28、本系統(tǒng)基于Windows 7+Eclipse+MySQL+Chrome環(huán)境,以Windows 7為操作系統(tǒng),以Eclipse為開(kāi)發(fā)軟件、以MySQL為后臺(tái)的數(shù)據(jù)庫(kù)服務(wù)器,以Chrome作為瀏覽器,編程語(yǔ)言為Java。</p><p>  2.1 網(wǎng)站后臺(tái)技術(shù)</p><p>  2.1.1 Java[1]-[5]</p><p>  Java編程語(yǔ)言的風(fēng)格十分接近C

29、、C++語(yǔ)言。Java是一個(gè)純的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它繼承了C++語(yǔ)言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C++語(yǔ)言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。在Java SE 1.5版本中,Java又引入了泛型編程(Generic Programming)、類型

30、安全的枚舉、不定長(zhǎng)參數(shù)和自動(dòng)裝/拆箱等語(yǔ)言特性。</p><p>  Java不同于一般的編譯執(zhí)行計(jì)算機(jī)語(yǔ)言和解釋執(zhí)行計(jì)算機(jī)語(yǔ)言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺(tái)上的虛擬機(jī)來(lái)解釋執(zhí)行字節(jié)碼,從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性。不過(guò),每次的編譯執(zhí)行需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了Java程序的運(yùn)行效率。但在J2SE 1.4.2發(fā)布后,Java的執(zhí)行速

31、度有了大幅提升。</p><p>  與傳統(tǒng)程序不同,Sun公司在推出Java之際就將其作為一種開(kāi)放的技術(shù)。全球數(shù)以萬(wàn)計(jì)的Java開(kāi)發(fā)公司被要求所設(shè)計(jì)的Java軟件必須相互兼容?!癑ava語(yǔ)言靠群體的力量而非公司的力量”是Sun公司的口號(hào)之一,并獲得了廣大軟件開(kāi)發(fā)商的認(rèn)同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式完全不同。</p><p>  Sun公司對(duì)Java編程語(yǔ)言的解釋是:Jav

32、a編程語(yǔ)言是個(gè)簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無(wú)關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語(yǔ)言。</p><p>  2.1.2 JSP[6]-[9]</p><p>  JSP(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.ht

33、ml)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。</p><p>  用JSP開(kāi)發(fā)的Web應(yīng)用是跨平臺(tái)的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。</p><p>  JSP技術(shù)使用Java編程語(yǔ)言編寫(xiě)類XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪問(wèn)存在

34、于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。</p><p>  Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。</p><p>  JS

35、P與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。</p><p>  JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開(kāi)發(fā)需要Java Servlet和JSP

36、配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。</p><p>  2.1.3 JDBC[10]</p><p>  JDBC(Java Data Base Connectivity,Java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫(xiě)的類和接口組

37、成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序。</p><p>  有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問(wèn)Sybase數(shù)據(jù)庫(kù)專門寫(xiě)一個(gè)程序,為訪問(wèn)Oracle數(shù)據(jù)庫(kù)又專門寫(xiě)一個(gè)程序,或?yàn)樵L問(wèn)Informix數(shù)據(jù)庫(kù)又編寫(xiě)另一個(gè)程序等等,程序員只需用JDBC API寫(xiě)一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)

38、發(fā)送SQL調(diào)用,將Java語(yǔ)言和JDBC結(jié)合起來(lái)使程序員只須寫(xiě)一遍程序就可以讓它在任何平臺(tái)上運(yùn)行。</p><p>  Java數(shù)據(jù)庫(kù)連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法。JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開(kāi)發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫(kù)廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并

39、支持與其它數(shù)據(jù)庫(kù)連接標(biāo)準(zhǔn),如ODBC之間的橋接。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡(jiǎn)單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口。</p><p>  JDBCTM是一種用于執(zhí)行SQL語(yǔ)句的JavaTM API,它由一組用Java編程語(yǔ)言編寫(xiě)的類和接口組成。JDBC為工具/數(shù)據(jù)庫(kù)開(kāi)發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,使他們能夠用純Java API來(lái)編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序。</p><p>  有了J

40、DBC,向各種關(guān)系數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問(wèn)Sybase數(shù)據(jù)庫(kù)專門寫(xiě)一個(gè)程序,為訪問(wèn)Oracle數(shù)據(jù)庫(kù)又專門寫(xiě)一個(gè)程序,為訪問(wèn)Informix 數(shù)據(jù)庫(kù)又寫(xiě)另一個(gè)程序,等等。您只需用JDBC API寫(xiě)一個(gè)程序就夠了它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句。而且,使用 Java 編程語(yǔ)言編寫(xiě)的應(yīng)用程序,就無(wú)須去憂慮要為不同的平臺(tái)編寫(xiě)不同的應(yīng)用程序。將Java和JDBC結(jié)合起來(lái)將使程序員只須寫(xiě)一遍

41、程序就可讓它在任何平臺(tái)上運(yùn)行。</p><p>  Java具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。而JDBC正是作為此種用途的機(jī)制。</p><p>  JDBC擴(kuò)展了Java的功能。例如,用Java和JDBC API可以發(fā)布含有applet的網(wǎng)頁(yè),而該applet使用的

42、信息可能來(lái)自遠(yuǎn)程數(shù)據(jù)庫(kù)企業(yè)也可以用 JDBC 通過(guò) Intranet將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中(即使這些職員所用的計(jì)算機(jī)有 Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來(lái)越多的程序員開(kāi)始使用Java編程語(yǔ)言,對(duì)從Java中便捷地訪問(wèn)數(shù)據(jù)庫(kù)的要求也在日益增加。</p><p>  MIS管理員們都喜歡Java和JDBC的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們

43、安裝好的數(shù)據(jù)庫(kù),并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫(kù)管理系統(tǒng)上。新程序的開(kāi)發(fā)期很短。安裝和版本控制將大為簡(jiǎn)化。程序員可只編寫(xiě)一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對(duì)于商務(wù)上的銷售信息服務(wù), Java和JDBC可為外部客戶提供獲取信息更新的更好方法。</p><p>  2.1.4 Struts 2[11]-[12]</p><p&

44、gt;  Struts 2是Struts的下一代產(chǎn)品,是在Struts 1和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Struts 2框架。其全新的Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)差別巨大。Struts 2以WebWork為核心,采用攔截器的機(jī)制來(lái)處理用戶的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開(kāi),所以Struts 2可以理解為WebWork的更新產(chǎn)品。雖然從Struts 1到St

45、ruts 2有著太大的變化,但是相對(duì)于WebWork,Struts 2的變化很小。</p><p>  2.1.4.1 Struts2處理流程</p><p>  客戶端提交一個(gè)(HttpServletRequest)請(qǐng)求。請(qǐng)求被提交到一系列(主要是3層)的過(guò)濾器(Filter),如(ActionContextCleanUp、其他過(guò)濾器(SiteMesh等)、 FilterDis

46、patcher)。注意:這里是有順序的,先ActionContext CleanUp,再其他過(guò)濾器(Othter Filters、SiteMesh等),最后到FilterDispatcher。FilterDispatcher是控制器的核心,就是MVC的Struts 2實(shí)現(xiàn)中控制層(Controller)的核心。FilterDispatcher詢問(wèn)ActionMapper是否需要調(diào)用某個(gè)Action來(lái)處理這個(gè)(HttpServlet Re

47、quest)請(qǐng)求,如果ActionMapper決定需要調(diào)用某個(gè)Action,F(xiàn)ilterDispatcher則把請(qǐng)求的處理交給ActionProxy。ActionProxy通過(guò)Configuration Manager(struts.xml)詢問(wèn)框架的配置文件,找到需要調(diào)用的Action類。例如,用戶注冊(cè)示例將找到UserReg類。Acti</p><p>  2.1.4.2 OGNL</p>&l

48、t;p>  OGNL是Object-Graph Navigation Language的縮寫(xiě),它是一種功能強(qiáng)大的表達(dá)式語(yǔ)言(Expression Language,簡(jiǎn)稱為EL),通過(guò)它簡(jiǎn)單一致的表達(dá)式語(yǔ)法,可以存取對(duì)象的任意屬性,調(diào)用對(duì)象的方法,遍歷整個(gè)對(duì)象的結(jié)構(gòu)圖,實(shí)現(xiàn)字段類型轉(zhuǎn)化等功能。它使用相同的表達(dá)式去存取對(duì)象的屬性。 </p><p>  OGNL可以讓用戶用非常簡(jiǎn)單的表達(dá)式訪問(wèn)對(duì)象層,例如,當(dāng)前

49、環(huán)境的根對(duì)象為user1,則表達(dá)式person.address[0].province可以訪問(wèn)到user1的person屬性的第一個(gè)address的province屬性。 </p><p>  這種功能是模板語(yǔ)言的一個(gè)重要補(bǔ)充,像 JSP2.0、velocity、jelly等等,都有類似的功能,但是OGNL比它們完善得多,而且以一個(gè)獨(dú)立的lib出現(xiàn),方便用戶構(gòu)建自己的框架。 </p><p&g

50、t;  WebWork2和現(xiàn)在的 Struts2.x中使用OGNL取代原來(lái)的EL來(lái)做界面數(shù)據(jù)綁定,所謂界面數(shù)據(jù)綁定,也就是把界面元素(例如一個(gè)textfield,hidden)和對(duì)象層某個(gè)類的某個(gè)屬性綁定在一起,修改和顯示自動(dòng)同步。</p><p>  和Struts1.x的formbean相比,這樣做的好處非常明顯:在WebWork中不需要為每個(gè)頁(yè)面專門寫(xiě)formbean,可以直接利用對(duì)象層的對(duì)象。例如在對(duì)象設(shè)

51、計(jì)中,用戶的User和Person是分開(kāi)的,而一個(gè)注冊(cè)用戶界面需要填寫(xiě)兩者的內(nèi)容,在WebWork中,就可以保持后臺(tái)的對(duì)象結(jié)構(gòu),把屬于用戶屬性的界面元素用user.person.xxx綁定,把屬于賬號(hào)屬性的界面元素用user.xxx綁定。</p><p>  2.1.4.3 JSON</p><p>  JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交

52、換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個(gè)子集。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成。</p><p> 

53、 2.1.5 Ibatis[13]</p><p>  Ibatis是數(shù)據(jù)映射器(數(shù)據(jù)映射器層:用于在對(duì)象和數(shù)據(jù)庫(kù)之間搬運(yùn)數(shù)據(jù),同時(shí)保證對(duì)象、數(shù)據(jù)庫(kù)和數(shù)據(jù)映射器層本身相對(duì)獨(dú)立)。</p><p>  Ibatis不是直接把類映射為數(shù)據(jù)庫(kù)表,而是把sql語(yǔ)句的參數(shù)與結(jié)果(即輸入與輸出)映射為類。為如何在類和數(shù)據(jù)庫(kù)間建立映射帶來(lái)了更大的靈活性。同時(shí)也更好的隔離了數(shù)據(jù)庫(kù)設(shè)計(jì)和應(yīng)用程序中使用的對(duì)象

54、模型。</p><p>  Ibatis是三層架構(gòu)中數(shù)據(jù)持久層的框架。Ibatis對(duì)sql進(jìn)行了封裝和外部化,使sql從應(yīng)用程序代碼中分離出來(lái)。(業(yè)務(wù)邏輯從數(shù)據(jù)庫(kù)中分離出來(lái),應(yīng)用程序更容易部署與測(cè)試,有更好的可移植性)。</p><p><b>  2.1.6 JXL</b></p><p>  Java Excel是一開(kāi)放源碼項(xiàng)目,通過(guò)它Ja

55、va開(kāi)發(fā)人員可以讀取Excel文件的內(nèi)容、創(chuàng)建新的Excel文件、更新已經(jīng)存在的Excel文件。使用該API非Windows操作系統(tǒng)也可以通過(guò)純Java應(yīng)用來(lái)處理Excel數(shù)據(jù)表。因?yàn)槭鞘褂肑ava編寫(xiě)的,所以用戶在Web應(yīng)用中可以通過(guò)JSP、Servlet來(lái)調(diào)用API實(shí)現(xiàn)對(duì)Excel數(shù)據(jù)表的訪問(wèn)。</p><p>  2.2 網(wǎng)站前端技術(shù)</p><p>  2.2.1 JQuery[1

56、4]</p><p>  JQuery是一個(gè)快速的,簡(jiǎn)潔的javaScript庫(kù),由美國(guó)人John Resig創(chuàng)建。JQuery是繼prototype之后又一個(gè)優(yōu)秀的Javascript框架。它是輕量級(jí)的js庫(kù),它兼容CSS3,還兼容各種瀏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),JQuery 2.0及后續(xù)版本將不再支持IE6/7/8瀏覽器。jQuery使用戶能更

57、方便地處理HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)、events、實(shí)現(xiàn)動(dòng)畫(huà)效果,并且方便地為網(wǎng)站提供AJAX交互。JQuery還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說(shuō)明很全,而且各種應(yīng)用也說(shuō)得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。JQuery能夠使用戶的html頁(yè)面保持代碼和html內(nèi)容分離,也就是說(shuō),不用再在html里面插入一堆js來(lái)調(diào)用命令了,只需定義id即可。</p><p>  2.2.2 AJAX[15]&

58、lt;/p><p>  AJAX即“Asynchronous Javascript + XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。AJAX = 異步 JavaScript和XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)。AJAX 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)。通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部

59、分進(jìn)行更新。傳統(tǒng)的網(wǎng)頁(yè)(不使用 AJAX)如果需要更新內(nèi)容,必須重載整個(gè)網(wǎng)頁(yè)面。</p><p>  2.2.3 BootStrap[16]</p><p>  BootStrap是一個(gè)用于快速開(kāi)發(fā) Web 應(yīng)用程序和網(wǎng)站的前端框架。在現(xiàn)代 Web 開(kāi)發(fā)中,有幾個(gè)幾乎所有的 Web 項(xiàng)目中都需要的組件。</p><p>  BootStrap擁有所有這些基本的模塊

60、- Grid、Typography、Tables、Forms、Buttons 和 Responsiveness。</p><p>  此外,還有大量其他有用的前端組件,比如 Dropdowns、Navigation、Modals、Typehead、Pagination、Carousal、Breadcrumb、Tab、Thumbnails、Headers 等等。</p><p>  Boot

61、Strap可以快速搭建一個(gè) Web 項(xiàng)目,并讓它運(yùn)行地更快速更輕松。</p><p>  此外,由于整個(gè)框架是基于模塊的,通過(guò)修改BootStrap指定目錄下的CSS內(nèi)容,甚至是項(xiàng)目開(kāi)始后的一個(gè)大整改,來(lái)進(jìn)行自定義。</p><p>  2.2.4 Cufon</p><p>  Cufon 是一個(gè)用來(lái)替代 sIFR 框架,實(shí)現(xiàn)在網(wǎng)頁(yè)中對(duì)文字字體進(jìn)行渲染功能的純 J

62、avaScript 開(kāi)源類庫(kù)(cufon-yui.js)。</p><p>  在web開(kāi)發(fā)中,經(jīng)常面對(duì)的一種“沖突”,即“字體(Font Family)沖突”。通常的這一沖突總是爆發(fā)于 Web 頁(yè)面的設(shè)計(jì)者(Designer)和開(kāi)發(fā)者(Coder)之間。在很多場(chǎng)合下,Web 頁(yè)面的設(shè)計(jì)者都會(huì)傾向于在他們的頁(yè)面設(shè)計(jì)稿中,為文字附加使用一些“特殊”的字體和特效,以此來(lái)展示他們卓越的設(shè)計(jì)能力。Cufon 技術(shù)的實(shí)現(xiàn)策

63、略其實(shí)就是以一定標(biāo)準(zhǔn),在網(wǎng)頁(yè)相關(guān)位置上“畫(huà)”出了所需要顯示的文字字符,并同時(shí)替換原先區(qū)域所需要顯示的文字。借助于瀏覽器所推出的專有頁(yè)面繪畫(huà)方案,如 VML、Canvas 和 SVG 等,來(lái)進(jìn)行頁(yè)面的繪畫(huà)。</p><p><b>  2.3其它相關(guān)技術(shù)</b></p><p>  2.3.1 MySQL[17]-[19]</p><p>  M

64、ySQL 是一個(gè)非關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典 MySQL AB 公司開(kāi)發(fā),目前屬于 Microsoft 公司。MySQL 最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最差的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件之一。MySQL 是一種非關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增

65、加了速度并提高了靈活性。MySQL 所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL 軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積大、速度慢、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。由于其社區(qū)版的性能卓越,搭配 PHP 和 Apache 可組成良好的開(kāi)發(fā)環(huán)境。</p><p>  與其他的大型數(shù)據(jù)庫(kù)例如Or

66、acle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。 目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用

67、Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是自由或開(kāi)放源碼軟件(FLOSS),因此使用這種方式不用花一分錢就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。</p><p>  2.3.2 Tomcat[20]</p><p>  Tomcat很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件

68、服務(wù)等開(kāi)發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。</p><p>  Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat部分是Apache服務(wù)

69、器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以運(yùn)行Tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。</p><p>  這里的訣竅是,當(dāng)配置正確時(shí),Apache為HTML頁(yè)面服務(wù),而Tomcat實(shí)際上運(yùn)行JSP頁(yè)面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式

70、。不過(guò),Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。</p><p>  2.3.3 Eclipse[21]</p><p>  Eclipse是一種可擴(kuò)展的開(kāi)放源代碼IDE。2001年11月,IBM公司捐出價(jià)值4,000萬(wàn)美元的源代碼組建了Eclipse聯(lián)盟,并由該聯(lián)盟負(fù)責(zé)這種工具的后續(xù)開(kāi)發(fā)。集成開(kāi)發(fā)環(huán)境(IDE)經(jīng)常將其應(yīng)用范圍限定在“開(kāi)發(fā)、構(gòu)建和調(diào)試”的周期之中。為了幫

71、助集成開(kāi)發(fā)環(huán)境(IDE)克服目前的局限性,業(yè)界廠商合作創(chuàng)建了Eclipse平臺(tái)。Eclipse允許在同一IDE中集成來(lái)自不同供應(yīng)商的工具,并實(shí)現(xiàn)了工具之間的互操作性,從而顯著改變了項(xiàng)目工作流程,使開(kāi)發(fā)者可以專注在實(shí)際的嵌入式目標(biāo)上。</p><p>  Eclipse框架的這種靈活性來(lái)源于其擴(kuò)展點(diǎn)。它們是在XML中定義的已知接口,并充當(dāng)插件的耦合點(diǎn)。擴(kuò)展點(diǎn)的范圍包括從用在常規(guī)表述過(guò)濾器中的簡(jiǎn)單字符串,到一個(gè)Jav

72、a類的描述。任何Eclipse插件定義的擴(kuò)展點(diǎn)都能夠被其它插件使用,反之,任何Eclipse插件也可以遵從其它插件定義的擴(kuò)展點(diǎn)。除了解由擴(kuò)展點(diǎn)定義的接口外,插件不知道它們通過(guò)擴(kuò)展點(diǎn)提供的服務(wù)將如何被使用。</p><p>  利用Eclipse,可以將高級(jí)設(shè)計(jì)(也許是采用UML)與低級(jí)開(kāi)發(fā)工具(如應(yīng)用調(diào)試器等)結(jié)合在一起。如果這些互相補(bǔ)充的獨(dú)立工具采用Eclipse擴(kuò)展點(diǎn)彼此連接,那么當(dāng)用調(diào)試器逐一檢查應(yīng)用時(shí),U

73、ML對(duì)話框可以突出顯示正在關(guān)注的器件。事實(shí)上,由于Eclipse并不了解開(kāi)發(fā)語(yǔ)言,所以無(wú)論Java語(yǔ)言調(diào)試器、C/C++調(diào)試器還是匯編調(diào)試器都是有效的,并可以在相同的框架內(nèi)同時(shí)瞄準(zhǔn)不同的進(jìn)程或節(jié)點(diǎn)。</p><p>  Eclipse的最大特點(diǎn)是它能接受由Java開(kāi)發(fā)者自己編寫(xiě)的開(kāi)放源代碼插件,這類似于微軟公司的Visual Studio和Sun 微系統(tǒng)公司的NetBeans平臺(tái)。Eclipse為工具開(kāi)發(fā)商提供了

74、更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。Eclipse 聯(lián)盟已經(jīng)宣布將在2004年中期發(fā)布其3.0版軟件。這是一款非常受歡迎的java開(kāi)發(fā)工具,這國(guó)內(nèi)的用戶越來(lái)越多,實(shí)際上實(shí)用它java開(kāi)發(fā)人員是最多的。缺點(diǎn)就是較復(fù)雜,對(duì)初學(xué)者來(lái)說(shuō),理解起來(lái)比較困難。</p><p>  2.3.4 Navicat</p><p>  Navicat Premium(http://www.navi

75、cat.com/cn) 是一個(gè)可多重連接的數(shù)據(jù)庫(kù)管理工具,它可讓用戶以單一程序同時(shí)連接到 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 數(shù)據(jù)庫(kù),讓管理不同類型的數(shù)據(jù)庫(kù)更加方便。 </p><p>  Navicat Premium 結(jié)合了其他 Navicat 成員的功能。有了不同數(shù)據(jù)庫(kù)類型的連接能力,Navicat Premium 支持在 MySQL、SQL Server

76、、SQLite、Oracle 及 PostgreSQL 之間傳輸數(shù)據(jù)。它支持大部份 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 的功能,包括存儲(chǔ)過(guò)程,事件,觸發(fā)器,函數(shù),視圖等。 </p><p>  Navicat Premium 使用戶能簡(jiǎn)單並快速地在各種數(shù)據(jù)庫(kù)系統(tǒng)間傳輸數(shù)據(jù),或傳輸一份指定SQL 格式及編碼的純文本文件。 </p><p>

77、  不同數(shù)據(jù)庫(kù)的批處理作業(yè)可以計(jì)劃并在指定的時(shí)間運(yùn)行。其他功能包括導(dǎo)入向?qū)?、?dǎo)出向?qū)А⒉樵儎?chuàng)建工具、報(bào)表創(chuàng)建工具、資料同步、備份、工作計(jì)劃及更多。 </p><p>  第三章 系統(tǒng)整體規(guī)劃</p><p>  需求分析就是通過(guò)與用戶的廣泛交流,得到未來(lái)系統(tǒng)必須具備的功能,即了解未來(lái)系統(tǒng)必須做什么,定義系統(tǒng)功能和用戶界面,使客戶了解系統(tǒng),開(kāi)發(fā)人員了解系統(tǒng)需求,同時(shí)作為制定項(xiàng)目計(jì)劃的基礎(chǔ)。通

78、常一般用戶對(duì)計(jì)算機(jī)技術(shù)了解不多,計(jì)算機(jī)工程人員對(duì)用戶的專業(yè)也不了解,這就阻礙了用戶與計(jì)算機(jī)工程人員的交流,傳統(tǒng)的數(shù)據(jù)流法和功能分析法等不能有效地解決這個(gè)問(wèn)題。面向?qū)ο蠼7椒榇颂峁┝艘粋€(gè)較好的解決方案,引入用例的概念來(lái)描述用戶需求。需求階段產(chǎn)生用例模型,用例模型是計(jì)算機(jī)工程人員從用戶角度運(yùn)用簡(jiǎn)單的圖示描述的系統(tǒng)模型,同時(shí)它也是獲取需求、規(guī)劃和控制項(xiàng)目迭代過(guò)程的基本工具。</p><p>  實(shí)驗(yàn)室預(yù)約系統(tǒng)設(shè)計(jì)必

79、須達(dá)到以下技術(shù)指標(biāo): </p><p>  1、信息的完整性:采用值約束、缺省等多種方法確保信息的完整性。一旦使用人員錄入或修改導(dǎo)致數(shù)據(jù)錯(cuò)誤,系統(tǒng)必須明確地給出警告信息,提示使用者。</p><p>  2、系統(tǒng)實(shí)用性:實(shí)驗(yàn)室預(yù)約系統(tǒng)是一個(gè)面向?qū)嶋H應(yīng)用的軟件系統(tǒng)。它的建成將取代手工的低效率工作,因此在進(jìn)行系統(tǒng)建設(shè)的同時(shí)必須考慮到人員的使用習(xí)慣。</p><p>  

80、3、系統(tǒng)可擴(kuò)展性:在開(kāi)發(fā)完成后,系統(tǒng)必須保證在用戶有新的需求時(shí)能方便地增加一些功能或模塊,及時(shí)解決用戶實(shí)際問(wèn)題,同時(shí)還要與系統(tǒng)的其他部分能夠保持風(fēng)格一致,使得軟件具有較好的可擴(kuò)展性。</p><p>  4、系統(tǒng)安全性:用戶進(jìn)入系統(tǒng)時(shí),應(yīng)先經(jīng)過(guò)嚴(yán)格的身份驗(yàn)證,根據(jù)其權(quán)限級(jí)別,使用系統(tǒng)的某些功能和數(shù)據(jù)。</p><p>  3.1系統(tǒng)總體功能設(shè)計(jì)</p><p>  

81、本系統(tǒng)是基于JSP的實(shí)驗(yàn)室預(yù)約系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),根據(jù)以上設(shè)計(jì)內(nèi)容和技術(shù)要求,本課題主要有以下幾個(gè)模塊構(gòu)成:</p><p>  1.登錄注冊(cè)模塊:用戶登錄后根據(jù)用戶所屬的不同權(quán)限顯示不同的操作頁(yè)面,本系統(tǒng)的用戶包括:①管理員②教師③學(xué)生(②③為普通用戶);普通用戶可以進(jìn)行注冊(cè)。</p><p>  2.管理員管理模塊:管理員管理普通用戶,可以添加、修改、刪除普通用戶;管理員管理實(shí)驗(yàn)室,可以

82、添加、修改、刪除實(shí)驗(yàn)室;管理員管理用戶預(yù)約,可以審核用戶預(yù)約。</p><p>  3.用戶管理模塊:普通用戶可以修改個(gè)人密碼,修改個(gè)人信息。</p><p>  4.用戶預(yù)約模塊:普通用戶可以查看和下載實(shí)驗(yàn)室課表,預(yù)約指定日期的實(shí)驗(yàn)室,查詢自己的預(yù)約審核狀態(tài),用戶模塊和權(quán)限如圖3-1所示。</p><p>  圖3-1 用戶模塊示意圖</p><

83、;p>  3.2系統(tǒng)的功能模塊</p><p>  利用JSP可以實(shí)現(xiàn)很多有用的功能,這里對(duì)本實(shí)驗(yàn)室預(yù)約系統(tǒng)的幾個(gè)主要模塊進(jìn)行詳細(xì)敘述,包括登錄注冊(cè)模塊、管理員管理模塊、用戶管理模塊、用戶預(yù)約模塊。</p><p>  3.2.1登錄注冊(cè)模塊</p><p>  用戶登錄是應(yīng)用程序的主入口,用戶只有通過(guò)該入口才能登錄進(jìn)系統(tǒng),流程設(shè)計(jì)如圖3-2所示。</p

84、><p>  圖3-2 用戶登錄流程圖</p><p>  用戶首次訪問(wèn)需要注冊(cè)后方能進(jìn)行相應(yīng)權(quán)限的操作。注冊(cè)時(shí)需填寫(xiě)用戶名、設(shè)置密碼,選擇用戶類型。系統(tǒng)設(shè)定,只能注冊(cè)為教師和學(xué)生。流程設(shè)計(jì)如圖3-3所示。</p><p>  圖3-3 用戶注冊(cè)流程圖 </p><p>  3.2.2管理員管理模塊</p><p>  管

85、理員登錄成功后,進(jìn)入后臺(tái)??梢詫?duì)用戶部分(普通用戶的添加、修改、刪除),實(shí)驗(yàn)室部分(實(shí)驗(yàn)室添加、修改、刪除),預(yù)約管理部分(預(yù)約審核)進(jìn)行管理。流程圖如下圖 3-4所示。</p><p>  3.2.3用戶管理模塊</p><p>  同樣,個(gè)人用戶登錄成功后,將進(jìn)入其系統(tǒng)首頁(yè)。其用戶導(dǎo)航功能分為用戶密碼修改和用戶信息管理,功能如下所示,如圖3-5所示。</p><p&

86、gt;  圖3-4 管理員管理示意圖</p><p>  圖3-5 用戶管理示意圖</p><p>  圖3-6 用戶預(yù)約示意圖</p><p>  3.2.4用戶預(yù)約模塊</p><p>  普通用戶可以查看并下載一周的課表和查詢指定日期的實(shí)驗(yàn)室預(yù)約狀態(tài)。用戶登錄后可以在指定日期實(shí)驗(yàn)室狀態(tài)頁(yè)進(jìn)行實(shí)驗(yàn)室預(yù)約,并在預(yù)約狀態(tài)欄查看預(yù)約審核情況。用

87、戶預(yù)約示意圖如圖3-6所示。</p><p>  第四章 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  4.1數(shù)據(jù)庫(kù)的設(shè)計(jì)</b></p><p>  使用數(shù)據(jù)庫(kù)工具Navicat作為數(shù)據(jù)庫(kù)系統(tǒng)的開(kāi)發(fā)工具,先建立一個(gè)新的數(shù)據(jù)庫(kù),然后在該數(shù)據(jù)庫(kù)中建立一系列的表,填寫(xiě)列名、數(shù)據(jù)類型和長(zhǎng)度,對(duì)需要數(shù)據(jù)初始化的進(jìn)行初始化。</p>&l

88、t;p> ?。?)用戶:用戶名(唯一性),密碼,權(quán)限組號(hào),用戶信息(學(xué)號(hào)<工號(hào)>,姓名,性別,年齡,郵箱,電話)</p><p>  其中主鍵用戶名,外鍵用戶名。</p><p> ?。?)實(shí)驗(yàn)室:實(shí)驗(yàn)室ID(自動(dòng)編號(hào)),實(shí)驗(yàn)室地址,實(shí)驗(yàn)室類型,實(shí)驗(yàn)室容量</p><p>  其中主鍵實(shí)驗(yàn)室ID,外鍵實(shí)驗(yàn)室ID。</p><p&

89、gt;  (3)實(shí)驗(yàn)室預(yù)約:預(yù)約ID,用戶名,實(shí)驗(yàn)室ID,申請(qǐng)時(shí)間,預(yù)約時(shí)間,預(yù)約節(jié)次,預(yù)約數(shù)量,是否通過(guò)審核</p><p>  其中主鍵預(yù)約ID,外鍵用戶名,實(shí)驗(yàn)室ID。</p><p>  4.2系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p>  使用數(shù)據(jù)庫(kù)工具Navicat作為數(shù)據(jù)庫(kù)系統(tǒng)的開(kāi)發(fā)工具,在該數(shù)據(jù)庫(kù)中建立一系列的表,填寫(xiě)列名、數(shù)據(jù)類型和長(zhǎng)度,對(duì)需要數(shù)據(jù)初始化的進(jìn)行

90、初始化。該系統(tǒng)的數(shù)據(jù)庫(kù)表為users、laborder、labinfo,其中users.u_uid是laborder.o_u_uid的外鍵,labinfo.l_id是laborder.o_l_id的外鍵,通過(guò)這些表與表之間的外鍵關(guān)系,三張表在邏輯上聯(lián)系在了一起。</p><p>  數(shù)據(jù)庫(kù)表關(guān)系結(jié)構(gòu)如圖4-1所示。</p><p>  圖4-1 關(guān)系結(jié)構(gòu)圖</p><p

91、><b>  4.2.1用戶表</b></p><p>  用戶表用以儲(chǔ)存用戶信息,可以對(duì)用戶各種信息進(jìn)行改變。其中有三列數(shù)據(jù)不能為null,分別是u_uid、u_password、u_status,這些信息在新用戶產(chǎn)生的時(shí)候必須在數(shù)據(jù)庫(kù)中寫(xiě)入,這三項(xiàng)信息也是用戶注冊(cè)頁(yè)面里必填(選)的三項(xiàng)信息。</p><p>  數(shù)據(jù)表的列名為,用戶名(唯一性),密碼,權(quán)限組

92、號(hào),用戶信息(學(xué)號(hào)<工號(hào)>,姓名,性別,年齡,郵箱,電話)。其中用戶名為唯一標(biāo)識(shí)。由于Ibatis框架的特殊性,所以表中的int類型都設(shè)置了默認(rèn)值,這里給它們?cè)O(shè)置的默認(rèn)值為0。用戶表結(jié)構(gòu)如表4-2所示,用戶表數(shù)據(jù)如表4-3所示。</p><p>  表4-2 用戶表結(jié)構(gòu)</p><p>  表4-3 用戶表數(shù)據(jù)</p><p><b>  4.

93、2.2實(shí)驗(yàn)室表</b></p><p>  實(shí)驗(yàn)室表中存放實(shí)驗(yàn)室的基本信息,以實(shí)驗(yàn)室id為唯一標(biāo)識(shí),通過(guò)實(shí)驗(yàn)室id可以唯一對(duì)應(yīng)實(shí)驗(yàn)室信息,并設(shè)定。實(shí)驗(yàn)室表是只有管理員才有權(quán)限修改的表,所以此表內(nèi)容相對(duì)簡(jiǎn)單。</p><p>  實(shí)驗(yàn)室信息中存儲(chǔ)著實(shí)驗(yàn)室ID(自動(dòng)編號(hào)),實(shí)驗(yàn)室地址,實(shí)驗(yàn)室類型,實(shí)驗(yàn)室容量等基本信息。實(shí)驗(yàn)室表結(jié)構(gòu)如表4-4所示,實(shí)驗(yàn)室表內(nèi)容如表4-5所示。<

94、/p><p>  表4-4 實(shí)驗(yàn)室表結(jié)構(gòu)</p><p>  表4-5 實(shí)驗(yàn)室表數(shù)據(jù)</p><p>  4.2.3實(shí)驗(yàn)室預(yù)約表</p><p>  實(shí)驗(yàn)室預(yù)約表中存放實(shí)驗(yàn)室預(yù)約信息,以預(yù)約id為唯一標(biāo)識(shí),通過(guò)預(yù)約id可以唯一對(duì)應(yīng)預(yù)約信息,并設(shè)定。實(shí)驗(yàn)室預(yù)約表是實(shí)驗(yàn)室預(yù)約系統(tǒng)中的核心表,該表通過(guò)外鍵關(guān)聯(lián)與數(shù)據(jù)庫(kù)中的另外兩個(gè)表聯(lián)系在一起,這樣在用戶

95、預(yù)約實(shí)驗(yàn)室的時(shí)候,該表就能夠存儲(chǔ)預(yù)約的用戶ID和預(yù)約的實(shí)驗(yàn)室ID。同時(shí),由于外鍵的存在,保證了數(shù)據(jù)表在更新和刪除時(shí)表現(xiàn)出來(lái)的一致性,避免數(shù)據(jù)出錯(cuò)。</p><p>  實(shí)驗(yàn)室預(yù)約表存儲(chǔ)著預(yù)約ID,用戶名,實(shí)驗(yàn)室ID,申請(qǐng)時(shí)間,預(yù)約時(shí)間,預(yù)約節(jié)次,預(yù)約數(shù)量,是否通過(guò)審核等基本信息。實(shí)驗(yàn)室預(yù)約表結(jié)構(gòu)如表4-6所示,實(shí)驗(yàn)室預(yù)約表數(shù)據(jù)如表4-7所示。</p><p><b>  4.3數(shù)

96、據(jù)庫(kù)的連接</b></p><p>  該系統(tǒng)使用Ibatis作為數(shù)據(jù)庫(kù)Model層的框架,其連接數(shù)據(jù)庫(kù)的方式使用Ibatis標(biāo)準(zhǔn)的配置式連接。在Ibatis中,只需配置好數(shù)據(jù)庫(kù)的連接參數(shù),并且使用正確的Model接收數(shù)據(jù)表,使其成為一個(gè)Java中的對(duì)象,就完成了數(shù)據(jù)庫(kù)到Model層的連接配置。</p><p>  表4-6 實(shí)驗(yàn)室預(yù)約表結(jié)構(gòu)</p><p&

97、gt;  表4-7 實(shí)驗(yàn)室預(yù)約表數(shù)據(jù)</p><p>  在SqlMap.properties文件中,添加如下代碼:</p><p>  driver=com.mysql.jdbc.Driver</p><p>  url=jdbc:mysql://localhost:3306/lab?useUnicode=true&characterEncoding=ut

98、f8</p><p>  username=root</p><p>  password=root</p><p>  在SqlMapConfig.xml文件中,添加如下代碼:</p><p>  <?xml version="1.0" encoding="UTF-8"?></p&g

99、t;<p>  <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"</p><p>  "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"></p><p>  &

100、lt;sqlMapConfig></p><p>  <!-- 引用JDBC屬性的配置文件 --></p><p>  <properties resource="com/nupt/model/SqlMap.properties" /></p><p>  <!-- 使用JDBC的事務(wù)管理 --><

101、/p><p>  <transactionManager type="JDBC"></p><p>  <!-- 數(shù)據(jù)源 --></p><p>  <dataSource type="SIMPLE"></p><p>  <property name="

102、;JDBC.Driver" value="${driver}" /></p><p>  <property name="JDBC.ConnectionURL" value="${url}" /></p><p>  <property name="JDBC.Username"

103、 value="${username}" /></p><p>  <property name="JDBC.Password" value="${password}" /></p><p>  </dataSource></p><p>  </transactionM

104、anager></p><p>  <!-- 這里可以寫(xiě)多個(gè)實(shí)體的映射文件 --></p><p>  <sqlMap resource="com/nupt/model/User.xml" /></p><p>  </sqlMapConfig> </p><p>  本章介紹了數(shù)

105、據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),介紹了數(shù)據(jù)表之間的聯(lián)系,以及各個(gè)數(shù)據(jù)表的具體設(shè)計(jì)及部分?jǐn)?shù)據(jù),還說(shuō)明了數(shù)據(jù)表到Java對(duì)象的實(shí)現(xiàn)方式。</p><p>  第五章 各個(gè)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  在建立后臺(tái)數(shù)據(jù)庫(kù)并完成相關(guān)配置后,開(kāi)始具體設(shè)計(jì)網(wǎng)絡(luò)頁(yè)面。</p><p>  用戶登錄是實(shí)驗(yàn)室預(yù)約系統(tǒng)的入口(如果沒(méi)有注冊(cè),應(yīng)該從用戶注冊(cè)開(kāi)始)。用戶輸入用戶名、密碼,選

106、擇用戶類型,點(diǎn)擊登錄按鈕后,系統(tǒng)到用戶表中查找,如果查到用戶輸入的用戶名、密碼和對(duì)應(yīng)的用戶類型都正確,則登錄成功。用戶登錄成功后進(jìn)入用戶控制面板,不同類型用戶對(duì)應(yīng)有不同的功能。普通用戶可以管理自己的基本資料,修改密碼,進(jìn)行實(shí)驗(yàn)室查詢與預(yù)約。管理員可以管理用戶,管理實(shí)驗(yàn)室,審核預(yù)約。系統(tǒng)的總體功能設(shè)計(jì)圖如圖4-1所示。</p><p>  圖4-1 系統(tǒng)總體功能設(shè)計(jì)圖</p><p>  5

107、.1登錄注冊(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  登陸注冊(cè)模塊是整個(gè)應(yīng)用程序的入口,通過(guò)注冊(cè)頁(yè)面,游客可以注冊(cè)為網(wǎng)站用戶,獲得網(wǎng)站下各種資源的使用權(quán)限;通過(guò)登陸頁(yè)面,系統(tǒng)會(huì)為不同身份、不同名稱的用戶提供指定頁(yè)面的跳轉(zhuǎn),并獲得當(dāng)前用戶所擁有的權(quán)限,以便進(jìn)行網(wǎng)站下的其它操作。</p><p>  5.1.1用戶注冊(cè)模塊</p><p>  用戶注冊(cè)這里指的是普通用戶的注

108、冊(cè),用戶通過(guò)點(diǎn)擊鏈接用戶注冊(cè),進(jìn)入register頁(yè)面,進(jìn)行用戶表單信息的填寫(xiě),填寫(xiě)用戶名、密碼,選擇用戶類型等信息。點(diǎn)擊立即提交后,檢測(cè)用戶名是否存在,兩次密碼是否相同等,如果通過(guò),則用戶的信息就被插入到對(duì)應(yīng)的用戶數(shù)據(jù)庫(kù)中。</p><p>  普通用戶注冊(cè)時(shí),系統(tǒng)進(jìn)行了嚴(yán)格的用戶輸入信息檢測(cè)。用戶注冊(cè)采用的是AJAX異步數(shù)據(jù)傳輸機(jī)制,在數(shù)據(jù)上傳至服務(wù)器之前,系統(tǒng)首先利用JavaScript獲用戶填寫(xiě)的表單信息

109、,然后進(jìn)行用戶名和密碼的非空檢測(cè),密碼與確認(rèn)密碼是否相同的檢測(cè),當(dāng)檢測(cè)成功后,系統(tǒng)把表單數(shù)據(jù)壓縮為JSON格式的數(shù)據(jù)包,然后數(shù)據(jù)被傳輸?shù)胶笈_(tái),如果檢測(cè)失敗,則在模態(tài)框上顯示失敗的原因。數(shù)據(jù)進(jìn)入到后臺(tái)后,首先進(jìn)行的同樣是非空檢測(cè)、密碼與確認(rèn)密碼是否相同的檢測(cè)。當(dāng)這些條件符合要求時(shí),系統(tǒng)就會(huì)進(jìn)行下一步數(shù)據(jù)庫(kù)操作的部分。新用戶注冊(cè)時(shí),要到數(shù)據(jù)庫(kù)中查詢是否有同名用戶,如果存在同名用戶則返回前端查詢結(jié)果,如果不存在同名用戶,則把新用戶的信息插入的

110、對(duì)應(yīng)的數(shù)據(jù)表中。用戶名支持中文名。最后返回?cái)?shù)據(jù)插入的情況給前端。用戶注冊(cè)頁(yè)面如圖4-2所示。</p><p>  圖4-2 用戶注冊(cè)頁(yè)面</p><p>  5.1.2用戶登錄模塊</p><p>  用戶登錄過(guò)程是一個(gè)驗(yàn)證過(guò)程,首先系統(tǒng)會(huì)進(jìn)行相應(yīng)的JavaScript前端驗(yàn)證,驗(yàn)證成功后使用AJAX異步傳輸技術(shù),把數(shù)據(jù)打包成JSON格式傳輸?shù)胶笈_(tái)。后臺(tái)系統(tǒng)首先從數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論