版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 畢 業(yè) 設(shè) 計(論 文)</p><p> 日期: 2015 年 1 月 16日至 2015年6 月 12 日</p><p><b> 摘 要</b></p><p> 隨著計算機(jī)網(wǎng)絡(luò)的普及,利用網(wǎng)絡(luò)平臺建立高校實驗室預(yù)約系統(tǒng)成為一個方向,可以使高校的辦學(xué)更加高效快捷,使實驗室設(shè)備能夠最大化利用,同時也
2、方便了師生的學(xué)習(xí)生活。</p><p> 本論文基于B/S實現(xiàn)了一個在線實驗室預(yù)約系統(tǒng)。該系統(tǒng)提供了實驗室的預(yù)約、審核和管理等功能。普通用戶可以管理自己的個人信息、修改密碼、查看和下載實驗室課表、預(yù)約指定實驗室、查看預(yù)約狀態(tài)等;管理員可以管理本網(wǎng)站下的所有普通用戶,對普通用戶進(jìn)行添加、修改和刪除,可以管理所有的實驗室信息,對實驗室進(jìn)行添加、修改和刪除,可以審核普通用戶的預(yù)約對預(yù)約審核通過或者否決;普通用戶也可以
3、自行進(jìn)行注冊。</p><p> 本系統(tǒng)采用JSP技術(shù)開發(fā)網(wǎng)頁,搭配Struts2和Ibatis框架,后臺數(shù)據(jù)用MySQL數(shù)據(jù)庫管理。基于B/S的結(jié)構(gòu)清晰,操作方便,界面美觀,具有一定的實用價值。</p><p> 關(guān)鍵詞:JSP;MySQL;實驗室預(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的實驗室預(yù)約系統(tǒng)1</p><p> 1.2基于web的實驗室預(yù)約系統(tǒng)的意義1</p><p> 1.3論文的組織1</p><p> 第二章 開發(fā)平臺的介紹3</p>
11、;<p> 2.1 網(wǎng)站后臺技術(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è)計11</p><p> 3.2系統(tǒng)的功能模塊12</p><p> 3.2.1登錄注冊模塊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ù)庫設(shè)計與實現(xiàn)16</p><p> 4.1數(shù)據(jù)庫的設(shè)計16</p><p> 4.2系統(tǒng)數(shù)據(jù)庫設(shè)計16</p><p> 4.2.1用戶表17</p><p> 4.2.2實驗室表17</p><p> 4.2.3實驗室預(yù)約表18</p><p&g
16、t; 4.3數(shù)據(jù)庫的連接18</p><p> 第五章 各個功能模塊的設(shè)計與實現(xiàn)21</p><p> 5.1登錄注冊模塊的設(shè)計與實現(xiàn)21</p><p> 5.1.1用戶注冊模塊21</p><p> 5.1.2用戶登錄模塊22</p><p> 5.2管理員管理模塊的設(shè)計與實現(xiàn)23</
17、p><p> 5.2.1普通用戶管理模塊的設(shè)計與實現(xiàn)23</p><p> 5.2.2實驗室管理模塊的設(shè)計與實現(xiàn)23</p><p> 5.2.3實驗室預(yù)約管理模塊的設(shè)計與實現(xiàn)24</p><p> 5.3用戶管理模塊的設(shè)計與實現(xiàn)25</p><p> 5.3.1密碼修改模塊的設(shè)計與實現(xiàn)25</p
18、><p> 5.3.2基本資料修改模塊的設(shè)計與實現(xiàn)26</p><p> 5.4用戶預(yù)約模塊的設(shè)計與實現(xiàn)27</p><p> 5.4.1課表查詢下載模塊的設(shè)計與實現(xiàn)27</p><p> 5.4.2實驗室預(yù)約模塊的設(shè)計與實現(xiàn)28</p><p> 5.4.3預(yù)約狀態(tài)查詢模塊的設(shè)計與實現(xiàn)29</p
19、><p> 5.5系統(tǒng)性能分析和總結(jié)30</p><p> 5.5.1系統(tǒng)的優(yōu)點30</p><p> 5.5.2系統(tǒng)的改進(jìn)方向30</p><p><b> 結(jié)束語32</b></p><p><b> 致 謝33</b></p><p
20、><b> 參考文獻(xiàn)34</b></p><p><b> 緒論</b></p><p> 實驗課是各個高等學(xué)校教學(xué)環(huán)節(jié)不可缺少的一部分,實驗教學(xué)具有理論與實踐緊密結(jié)合,交互性強(qiáng),人機(jī)一體,教學(xué)內(nèi)容更新快的特點,已成為推動素質(zhì)教育,培養(yǎng)學(xué)生創(chuàng)新能力、實踐能力和科學(xué)素養(yǎng)的重要陣地。隨著實驗室開放規(guī)模和開放范圍的不斷擴(kuò)大,實驗室的開放工
21、作日顯繁瑣,工作量日益增加,這一狀況甚至成為了阻礙實驗室開放工作發(fā)展的絆腳石,急需出臺解決方案。在計算機(jī)技術(shù)尤其是網(wǎng)絡(luò)技術(shù)飛速發(fā)展的今天,實行網(wǎng)絡(luò)化管理可提高工作效率,降低人、財、物資源成本。如何充分利用學(xué)?,F(xiàn)有的實驗室資源是一個排課難題,也是本課題研究的主題。本畢業(yè)設(shè)計擬對開放性實驗預(yù)約管理系統(tǒng)進(jìn)行設(shè)計與實現(xiàn),以方便管理,提高效率。</p><p> 1.1基于Web的實驗室預(yù)約系統(tǒng)</p>&
22、lt;p> 現(xiàn)在B/S模式的設(shè)計與研發(fā)在網(wǎng)上十分流行,大學(xué)學(xué)校的資源也都通過這種形式展現(xiàn)出來,實驗室預(yù)約系統(tǒng)就是各種B/S模式之中最明顯的一個例子。實驗室預(yù)約系統(tǒng)是通過服務(wù)器和客戶端瀏覽器來實現(xiàn)數(shù)據(jù)的傳輸,它通過客戶端實現(xiàn)管理、申請、提交用戶信息,來完成實驗項目的預(yù)約、查詢、管理等各種功能。隨著計算機(jī)應(yīng)用水平和Internet網(wǎng)的迅速發(fā)展,各種資源實現(xiàn)網(wǎng)絡(luò)化,已經(jīng)成為必然趨勢。實驗室預(yù)約系統(tǒng)利用這個優(yōu)勢,來替代繁瑣的人工操作,從
23、而既改變了過去實驗室傳統(tǒng)的管理模式又提高了辦事的效率.</p><p> 1.2基于web的實驗室預(yù)約系統(tǒng)的意義</p><p> 實驗室預(yù)約系統(tǒng)具有很高的實用性,使用JSP技術(shù),結(jié)合JQuery、BootStrap、Struts2、Ibatis框架等進(jìn)行系統(tǒng)開發(fā),頁面之間的交互靈活,頁面本身簡潔實用。該系統(tǒng)便于用戶根據(jù)自身空閑時間和實驗室空閑情況實時預(yù)約,管理員可以根據(jù)用戶身份和實驗
24、室現(xiàn)狀審核用戶的預(yù)約,從而及時避免了用戶不必要的花費以及工作人員大量的時間浪費。</p><p> 通過MySQL數(shù)據(jù)庫,記錄用戶信息、實驗室信息、實驗室預(yù)約信息等,對這些信息進(jìn)行管理,普通用戶可查看自己的個人信息,以及自己的預(yù)約審核狀態(tài),克服了以往不能及時得到預(yù)約是否成功的信息的弊端。</p><p> 本系統(tǒng)采用HTML+CSS+JQuery+BootStrap+Cufon進(jìn)行前端
25、頁面布局,后臺邏輯使用Struts2+Ibatis+JXL框架開發(fā)實現(xiàn)。系統(tǒng)界面簡潔、友好,易于操作,設(shè)計的時候考慮到用戶的使用習(xí)慣,提升了系統(tǒng)的實用性。</p><p><b> 1.3論文的組織</b></p><p> 本論文主要講述用Web開發(fā)實驗室管理系統(tǒng)的方法,另外比較詳細(xì)地說明了系統(tǒng)的框架設(shè)計。</p><p><b&g
26、t; 本論文共分六章:</b></p><p> 第一章:本章講述了實驗室管理系統(tǒng)的課題背景,目前實驗室管理系統(tǒng)的現(xiàn)狀。通過分析可以知道,實驗室管理系統(tǒng)應(yīng)用性強(qiáng),對提高實驗室使用效率,提高教學(xué)質(zhì)量都有很大的幫助。</p><p> 第二章:本章講述了開發(fā)該系統(tǒng)所需要的工具,并對這些工具的功能和用法進(jìn)行了簡單介紹。</p><p> 第三章:本章介
27、紹了開發(fā)該系統(tǒng)必須做的工作:需求分析和總體設(shè)計。需求分析是開發(fā)本系統(tǒng)前的工作,總體設(shè)計是對軟件開發(fā)的過程上的概括。</p><p> 第四章:本章介紹了數(shù)據(jù)庫開發(fā)設(shè)計與實現(xiàn)。</p><p> 第五章:本章介紹了各個功能模塊的具體設(shè)計過程和實現(xiàn),并分析了系統(tǒng)的整體性能。</p><p> 第二章 開發(fā)平臺的介紹 </p><p>
28、本系統(tǒng)基于Windows 7+Eclipse+MySQL+Chrome環(huán)境,以Windows 7為操作系統(tǒng),以Eclipse為開發(fā)軟件、以MySQL為后臺的數(shù)據(jù)庫服務(wù)器,以Chrome作為瀏覽器,編程語言為Java。</p><p> 2.1 網(wǎng)站后臺技術(shù)</p><p> 2.1.1 Java[1]-[5]</p><p> Java編程語言的風(fēng)格十分接近C
29、、C++語言。Java是一個純的面向?qū)ο蟮某绦蛟O(shè)計語言,它繼承了C++語言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。在Java SE 1.5版本中,Java又引入了泛型編程(Generic Programming)、類型
30、安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。</p><p> Java不同于一般的編譯執(zhí)行計算機(jī)語言和解釋執(zhí)行計算機(jī)語言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼,從而實現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,每次的編譯執(zhí)行需要消耗一定的時間,這同時也在一定程度上降低了Java程序的運行效率。但在J2SE 1.4.2發(fā)布后,Java的執(zhí)行速
31、度有了大幅提升。</p><p> 與傳統(tǒng)程序不同,Sun公司在推出Java之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計的Java開發(fā)公司被要求所設(shè)計的Java軟件必須相互兼容?!癑ava語言靠群體的力量而非公司的力量”是Sun公司的口號之一,并獲得了廣大軟件開發(fā)商的認(rèn)同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式完全不同。</p><p> Sun公司對Java編程語言的解釋是:Jav
32、a編程語言是個簡單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和動態(tài)的語言。</p><p> 2.1.2 JSP[6]-[9]</p><p> JSP(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.ht
33、ml)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。</p><p> 用JSP開發(fā)的Web應(yīng)用是跨平臺的,即能在Linux下運行,也能在其他操作系統(tǒng)上運行。</p><p> JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在
34、于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。</p><p> Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。</p><p> JS
35、P與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。</p><p> JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP
36、配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο螅哂衅脚_無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點。</p><p> 2.1.3 JDBC[10]</p><p> JDBC(Java Data Base Connectivity,Java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組
37、成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。</p><p> 有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個程序,或為訪問Informix數(shù)據(jù)庫又編寫另一個程序等等,程序員只需用JDBC API寫一個程序就夠了,它可向相應(yīng)數(shù)據(jù)庫
38、發(fā)送SQL調(diào)用,將Java語言和JDBC結(jié)合起來使程序員只須寫一遍程序就可以讓它在任何平臺上運行。</p><p> Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。JDBC對Java程序員而言是API,對實現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實現(xiàn)與數(shù)據(jù)庫的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并
39、支持與其它數(shù)據(jù)庫連接標(biāo)準(zhǔn),如ODBC之間的橋接。JDBC實現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡單、嚴(yán)格類型定義且高性能實現(xiàn)的接口。</p><p> JDBCTM是一種用于執(zhí)行SQL語句的JavaTM API,它由一組用Java編程語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)的API,使他們能夠用純Java API來編寫數(shù)據(jù)庫應(yīng)用程序。</p><p> 有了J
40、DBC,向各種關(guān)系數(shù)據(jù)庫發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個程序,為訪問Informix 數(shù)據(jù)庫又寫另一個程序,等等。您只需用JDBC API寫一個程序就夠了它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL語句。而且,使用 Java 編程語言編寫的應(yīng)用程序,就無須去憂慮要為不同的平臺編寫不同的應(yīng)用程序。將Java和JDBC結(jié)合起來將使程序員只須寫一遍
41、程序就可讓它在任何平臺上運行。</p><p> Java具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對話的方法。而JDBC正是作為此種用途的機(jī)制。</p><p> JDBC擴(kuò)展了Java的功能。例如,用Java和JDBC API可以發(fā)布含有applet的網(wǎng)頁,而該applet使用的
42、信息可能來自遠(yuǎn)程數(shù)據(jù)庫企業(yè)也可以用 JDBC 通過 Intranet將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計算機(jī)有 Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對從Java中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。</p><p> MIS管理員們都喜歡Java和JDBC的結(jié)合,因為它使信息傳播變得容易和經(jīng)濟(jì)。企業(yè)可繼續(xù)使用它們
43、安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對于商務(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ī)制來處理用戶的請求,這樣的設(shè)計也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產(chǎn)品。雖然從Struts 1到St
45、ruts 2有著太大的變化,但是相對于WebWork,Struts 2的變化很小。</p><p> 2.1.4.1 Struts2處理流程</p><p> 客戶端提交一個(HttpServletRequest)請求。請求被提交到一系列(主要是3層)的過濾器(Filter),如(ActionContextCleanUp、其他過濾器(SiteMesh等)、 FilterDis
46、patcher)。注意:這里是有順序的,先ActionContext CleanUp,再其他過濾器(Othter Filters、SiteMesh等),最后到FilterDispatcher。FilterDispatcher是控制器的核心,就是MVC的Struts 2實現(xiàn)中控制層(Controller)的核心。FilterDispatcher詢問ActionMapper是否需要調(diào)用某個Action來處理這個(HttpServlet Re
47、quest)請求,如果ActionMapper決定需要調(diào)用某個Action,F(xiàn)ilterDispatcher則把請求的處理交給ActionProxy。ActionProxy通過Configuration Manager(struts.xml)詢問框架的配置文件,找到需要調(diào)用的Action類。例如,用戶注冊示例將找到UserReg類。Acti</p><p> 2.1.4.2 OGNL</p>&l
48、t;p> OGNL是Object-Graph Navigation Language的縮寫,它是一種功能強(qiáng)大的表達(dá)式語言(Expression Language,簡稱為EL),通過它簡單一致的表達(dá)式語法,可以存取對象的任意屬性,調(diào)用對象的方法,遍歷整個對象的結(jié)構(gòu)圖,實現(xiàn)字段類型轉(zhuǎn)化等功能。它使用相同的表達(dá)式去存取對象的屬性。 </p><p> OGNL可以讓用戶用非常簡單的表達(dá)式訪問對象層,例如,當(dāng)前
49、環(huán)境的根對象為user1,則表達(dá)式person.address[0].province可以訪問到user1的person屬性的第一個address的province屬性。 </p><p> 這種功能是模板語言的一個重要補(bǔ)充,像 JSP2.0、velocity、jelly等等,都有類似的功能,但是OGNL比它們完善得多,而且以一個獨立的lib出現(xiàn),方便用戶構(gòu)建自己的框架。 </p><p&g
50、t; WebWork2和現(xiàn)在的 Struts2.x中使用OGNL取代原來的EL來做界面數(shù)據(jù)綁定,所謂界面數(shù)據(jù)綁定,也就是把界面元素(例如一個textfield,hidden)和對象層某個類的某個屬性綁定在一起,修改和顯示自動同步。</p><p> 和Struts1.x的formbean相比,這樣做的好處非常明顯:在WebWork中不需要為每個頁面專門寫formbean,可以直接利用對象層的對象。例如在對象設(shè)
51、計中,用戶的User和Person是分開的,而一個注冊用戶界面需要填寫兩者的內(nèi)容,在WebWork中,就可以保持后臺的對象結(jié)構(gòu),把屬于用戶屬性的界面元素用user.person.xxx綁定,把屬于賬號屬性的界面元素用user.xxx綁定。</p><p> 2.1.4.3 JSON</p><p> JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交
52、換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機(jī)器解析和生成。</p><p>
53、 2.1.5 Ibatis[13]</p><p> Ibatis是數(shù)據(jù)映射器(數(shù)據(jù)映射器層:用于在對象和數(shù)據(jù)庫之間搬運數(shù)據(jù),同時保證對象、數(shù)據(jù)庫和數(shù)據(jù)映射器層本身相對獨立)。</p><p> Ibatis不是直接把類映射為數(shù)據(jù)庫表,而是把sql語句的參數(shù)與結(jié)果(即輸入與輸出)映射為類。為如何在類和數(shù)據(jù)庫間建立映射帶來了更大的靈活性。同時也更好的隔離了數(shù)據(jù)庫設(shè)計和應(yīng)用程序中使用的對象
54、模型。</p><p> Ibatis是三層架構(gòu)中數(shù)據(jù)持久層的框架。Ibatis對sql進(jìn)行了封裝和外部化,使sql從應(yīng)用程序代碼中分離出來。(業(yè)務(wù)邏輯從數(shù)據(jù)庫中分離出來,應(yīng)用程序更容易部署與測試,有更好的可移植性)。</p><p><b> 2.1.6 JXL</b></p><p> Java Excel是一開放源碼項目,通過它Ja
55、va開發(fā)人員可以讀取Excel文件的內(nèi)容、創(chuàng)建新的Excel文件、更新已經(jīng)存在的Excel文件。使用該API非Windows操作系統(tǒng)也可以通過純Java應(yīng)用來處理Excel數(shù)據(jù)表。因為是使用Java編寫的,所以用戶在Web應(yīng)用中可以通過JSP、Servlet來調(diào)用API實現(xiàn)對Excel數(shù)據(jù)表的訪問。</p><p> 2.2 網(wǎng)站前端技術(shù)</p><p> 2.2.1 JQuery[1
56、4]</p><p> JQuery是一個快速的,簡潔的javaScript庫,由美國人John Resig創(chuàng)建。JQuery是繼prototype之后又一個優(yōu)秀的Javascript框架。它是輕量級的js庫,它兼容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īng)用)、events、實現(xiàn)動畫效果,并且方便地為網(wǎng)站提供AJAX交互。JQuery還有一個比較大的優(yōu)勢是,它的文檔說明很全,而且各種應(yīng)用也說得很詳細(xì),同時還有許多成熟的插件可供選擇。JQuery能夠使用戶的html頁面保持代碼和html內(nèi)容分離,也就是說,不用再在html里面插入一堆js來調(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īng)用的網(wǎng)頁開發(fā)技術(shù)。AJAX = 異步 JavaScript和XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)。AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實現(xiàn)異步更新。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部
59、分進(jìn)行更新。傳統(tǒng)的網(wǎng)頁(不使用 AJAX)如果需要更新內(nèi)容,必須重載整個網(wǎng)頁面。</p><p> 2.2.3 BootStrap[16]</p><p> BootStrap是一個用于快速開發(fā) Web 應(yīng)用程序和網(wǎng)站的前端框架。在現(xiàn)代 Web 開發(fā)中,有幾個幾乎所有的 Web 項目中都需要的組件。</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可以快速搭建一個 Web 項目,并讓它運行地更快速更輕松。</p><p> 此外,由于整個框架是基于模塊的,通過修改BootStrap指定目錄下的CSS內(nèi)容,甚至是項目開始后的一個大整改,來進(jìn)行自定義。</p><p> 2.2.4 Cufon</p><p> Cufon 是一個用來替代 sIFR 框架,實現(xiàn)在網(wǎng)頁中對文字字體進(jìn)行渲染功能的純 J
62、avaScript 開源類庫(cufon-yui.js)。</p><p> 在web開發(fā)中,經(jīng)常面對的一種“沖突”,即“字體(Font Family)沖突”。通常的這一沖突總是爆發(fā)于 Web 頁面的設(shè)計者(Designer)和開發(fā)者(Coder)之間。在很多場合下,Web 頁面的設(shè)計者都會傾向于在他們的頁面設(shè)計稿中,為文字附加使用一些“特殊”的字體和特效,以此來展示他們卓越的設(shè)計能力。Cufon 技術(shù)的實現(xiàn)策
63、略其實就是以一定標(biāo)準(zhǔn),在網(wǎng)頁相關(guān)位置上“畫”出了所需要顯示的文字字符,并同時替換原先區(qū)域所需要顯示的文字。借助于瀏覽器所推出的專有頁面繪畫方案,如 VML、Canvas 和 SVG 等,來進(jìn)行頁面的繪畫。</p><p><b> 2.3其它相關(guān)技術(shù)</b></p><p> 2.3.1 MySQL[17]-[19]</p><p> M
64、ySQL 是一個非關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典 MySQL AB 公司開發(fā),目前屬于 Microsoft 公司。MySQL 最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最差的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件之一。MySQL 是一種非關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增
65、加了速度并提高了靈活性。MySQL 所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積大、速度慢、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發(fā)環(huán)境。</p><p> 與其他的大型數(shù)據(jù)庫例如Or
66、acle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。 目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用
67、Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP作為服務(wù)器端腳本解釋器。由于這四個軟件都是自由或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢就可以建立起一個穩(wěn)定、免費的網(wǎng)站系統(tǒng)。</p><p> 2.3.2 Tomcat[20]</p><p> Tomcat很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件
68、服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。</p><p> Tomcat是一個小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務(wù)
69、器的擴(kuò)展,但它是獨立運行的,所以運行Tomcat時,它實際上作為一個與Apache獨立的進(jìn)程單獨運行的。</p><p> 這里的訣竅是,當(dāng)配置正確時,Apache為HTML頁面服務(wù),而Tomcat實際上運行JSP頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認(rèn)模式
70、。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。</p><p> 2.3.3 Eclipse[21]</p><p> Eclipse是一種可擴(kuò)展的開放源代碼IDE。2001年11月,IBM公司捐出價值4,000萬美元的源代碼組建了Eclipse聯(lián)盟,并由該聯(lián)盟負(fù)責(zé)這種工具的后續(xù)開發(fā)。集成開發(fā)環(huán)境(IDE)經(jīng)常將其應(yīng)用范圍限定在“開發(fā)、構(gòu)建和調(diào)試”的周期之中。為了幫
71、助集成開發(fā)環(huán)境(IDE)克服目前的局限性,業(yè)界廠商合作創(chuàng)建了Eclipse平臺。Eclipse允許在同一IDE中集成來自不同供應(yīng)商的工具,并實現(xiàn)了工具之間的互操作性,從而顯著改變了項目工作流程,使開發(fā)者可以專注在實際的嵌入式目標(biāo)上。</p><p> Eclipse框架的這種靈活性來源于其擴(kuò)展點。它們是在XML中定義的已知接口,并充當(dāng)插件的耦合點。擴(kuò)展點的范圍包括從用在常規(guī)表述過濾器中的簡單字符串,到一個Jav
72、a類的描述。任何Eclipse插件定義的擴(kuò)展點都能夠被其它插件使用,反之,任何Eclipse插件也可以遵從其它插件定義的擴(kuò)展點。除了解由擴(kuò)展點定義的接口外,插件不知道它們通過擴(kuò)展點提供的服務(wù)將如何被使用。</p><p> 利用Eclipse,可以將高級設(shè)計(也許是采用UML)與低級開發(fā)工具(如應(yīng)用調(diào)試器等)結(jié)合在一起。如果這些互相補(bǔ)充的獨立工具采用Eclipse擴(kuò)展點彼此連接,那么當(dāng)用調(diào)試器逐一檢查應(yīng)用時,U
73、ML對話框可以突出顯示正在關(guān)注的器件。事實上,由于Eclipse并不了解開發(fā)語言,所以無論Java語言調(diào)試器、C/C++調(diào)試器還是匯編調(diào)試器都是有效的,并可以在相同的框架內(nèi)同時瞄準(zhǔn)不同的進(jìn)程或節(jié)點。</p><p> Eclipse的最大特點是它能接受由Java開發(fā)者自己編寫的開放源代碼插件,這類似于微軟公司的Visual Studio和Sun 微系統(tǒng)公司的NetBeans平臺。Eclipse為工具開發(fā)商提供了
74、更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。Eclipse 聯(lián)盟已經(jīng)宣布將在2004年中期發(fā)布其3.0版軟件。這是一款非常受歡迎的java開發(fā)工具,這國內(nèi)的用戶越來越多,實際上實用它java開發(fā)人員是最多的。缺點就是較復(fù)雜,對初學(xué)者來說,理解起來比較困難。</p><p> 2.3.4 Navicat</p><p> Navicat Premium(http://www.navi
75、cat.com/cn) 是一個可多重連接的數(shù)據(jù)庫管理工具,它可讓用戶以單一程序同時連接到 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 數(shù)據(jù)庫,讓管理不同類型的數(shù)據(jù)庫更加方便。 </p><p> Navicat Premium 結(jié)合了其他 Navicat 成員的功能。有了不同數(shù)據(jù)庫類型的連接能力,Navicat Premium 支持在 MySQL、SQL Server
76、、SQLite、Oracle 及 PostgreSQL 之間傳輸數(shù)據(jù)。它支持大部份 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 的功能,包括存儲過程,事件,觸發(fā)器,函數(shù),視圖等。 </p><p> Navicat Premium 使用戶能簡單並快速地在各種數(shù)據(jù)庫系統(tǒng)間傳輸數(shù)據(jù),或傳輸一份指定SQL 格式及編碼的純文本文件。 </p><p>
77、 不同數(shù)據(jù)庫的批處理作業(yè)可以計劃并在指定的時間運行。其他功能包括導(dǎo)入向?qū)?、?dǎo)出向?qū)А⒉樵儎?chuàng)建工具、報表創(chuàng)建工具、資料同步、備份、工作計劃及更多。 </p><p> 第三章 系統(tǒng)整體規(guī)劃</p><p> 需求分析就是通過與用戶的廣泛交流,得到未來系統(tǒng)必須具備的功能,即了解未來系統(tǒng)必須做什么,定義系統(tǒng)功能和用戶界面,使客戶了解系統(tǒng),開發(fā)人員了解系統(tǒng)需求,同時作為制定項目計劃的基礎(chǔ)。通
78、常一般用戶對計算機(jī)技術(shù)了解不多,計算機(jī)工程人員對用戶的專業(yè)也不了解,這就阻礙了用戶與計算機(jī)工程人員的交流,傳統(tǒng)的數(shù)據(jù)流法和功能分析法等不能有效地解決這個問題。面向?qū)ο蠼7椒榇颂峁┝艘粋€較好的解決方案,引入用例的概念來描述用戶需求。需求階段產(chǎn)生用例模型,用例模型是計算機(jī)工程人員從用戶角度運用簡單的圖示描述的系統(tǒng)模型,同時它也是獲取需求、規(guī)劃和控制項目迭代過程的基本工具。</p><p> 實驗室預(yù)約系統(tǒng)設(shè)計必
79、須達(dá)到以下技術(shù)指標(biāo): </p><p> 1、信息的完整性:采用值約束、缺省等多種方法確保信息的完整性。一旦使用人員錄入或修改導(dǎo)致數(shù)據(jù)錯誤,系統(tǒng)必須明確地給出警告信息,提示使用者。</p><p> 2、系統(tǒng)實用性:實驗室預(yù)約系統(tǒng)是一個面向?qū)嶋H應(yīng)用的軟件系統(tǒng)。它的建成將取代手工的低效率工作,因此在進(jìn)行系統(tǒng)建設(shè)的同時必須考慮到人員的使用習(xí)慣。</p><p>
80、3、系統(tǒng)可擴(kuò)展性:在開發(fā)完成后,系統(tǒng)必須保證在用戶有新的需求時能方便地增加一些功能或模塊,及時解決用戶實際問題,同時還要與系統(tǒng)的其他部分能夠保持風(fēng)格一致,使得軟件具有較好的可擴(kuò)展性。</p><p> 4、系統(tǒng)安全性:用戶進(jìn)入系統(tǒng)時,應(yīng)先經(jīng)過嚴(yán)格的身份驗證,根據(jù)其權(quán)限級別,使用系統(tǒng)的某些功能和數(shù)據(jù)。</p><p> 3.1系統(tǒng)總體功能設(shè)計</p><p>
81、本系統(tǒng)是基于JSP的實驗室預(yù)約系統(tǒng)的設(shè)計與實現(xiàn),根據(jù)以上設(shè)計內(nèi)容和技術(shù)要求,本課題主要有以下幾個模塊構(gòu)成:</p><p> 1.登錄注冊模塊:用戶登錄后根據(jù)用戶所屬的不同權(quán)限顯示不同的操作頁面,本系統(tǒng)的用戶包括:①管理員②教師③學(xué)生(②③為普通用戶);普通用戶可以進(jìn)行注冊。</p><p> 2.管理員管理模塊:管理員管理普通用戶,可以添加、修改、刪除普通用戶;管理員管理實驗室,可以
82、添加、修改、刪除實驗室;管理員管理用戶預(yù)約,可以審核用戶預(yù)約。</p><p> 3.用戶管理模塊:普通用戶可以修改個人密碼,修改個人信息。</p><p> 4.用戶預(yù)約模塊:普通用戶可以查看和下載實驗室課表,預(yù)約指定日期的實驗室,查詢自己的預(yù)約審核狀態(tài),用戶模塊和權(quán)限如圖3-1所示。</p><p> 圖3-1 用戶模塊示意圖</p><
83、;p> 3.2系統(tǒng)的功能模塊</p><p> 利用JSP可以實現(xiàn)很多有用的功能,這里對本實驗室預(yù)約系統(tǒng)的幾個主要模塊進(jìn)行詳細(xì)敘述,包括登錄注冊模塊、管理員管理模塊、用戶管理模塊、用戶預(yù)約模塊。</p><p> 3.2.1登錄注冊模塊</p><p> 用戶登錄是應(yīng)用程序的主入口,用戶只有通過該入口才能登錄進(jìn)系統(tǒng),流程設(shè)計如圖3-2所示。</p
84、><p> 圖3-2 用戶登錄流程圖</p><p> 用戶首次訪問需要注冊后方能進(jìn)行相應(yīng)權(quán)限的操作。注冊時需填寫用戶名、設(shè)置密碼,選擇用戶類型。系統(tǒng)設(shè)定,只能注冊為教師和學(xué)生。流程設(shè)計如圖3-3所示。</p><p> 圖3-3 用戶注冊流程圖 </p><p> 3.2.2管理員管理模塊</p><p> 管
85、理員登錄成功后,進(jìn)入后臺??梢詫τ脩舨糠郑ㄆ胀ㄓ脩舻奶砑?、修改、刪除),實驗室部分(實驗室添加、修改、刪除),預(yù)約管理部分(預(yù)約審核)進(jìn)行管理。流程圖如下圖 3-4所示。</p><p> 3.2.3用戶管理模塊</p><p> 同樣,個人用戶登錄成功后,將進(jìn)入其系統(tǒng)首頁。其用戶導(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> 普通用戶可以查看并下載一周的課表和查詢指定日期的實驗室預(yù)約狀態(tài)。用戶登錄后可以在指定日期實驗室狀態(tài)頁進(jìn)行實驗室預(yù)約,并在預(yù)約狀態(tài)欄查看預(yù)約審核情況。用
87、戶預(yù)約示意圖如圖3-6所示。</p><p> 第四章 數(shù)據(jù)庫設(shè)計與實現(xiàn)</p><p><b> 4.1數(shù)據(jù)庫的設(shè)計</b></p><p> 使用數(shù)據(jù)庫工具Navicat作為數(shù)據(jù)庫系統(tǒng)的開發(fā)工具,先建立一個新的數(shù)據(jù)庫,然后在該數(shù)據(jù)庫中建立一系列的表,填寫列名、數(shù)據(jù)類型和長度,對需要數(shù)據(jù)初始化的進(jìn)行初始化。</p>&l
88、t;p> (1)用戶:用戶名(唯一性),密碼,權(quán)限組號,用戶信息(學(xué)號<工號>,姓名,性別,年齡,郵箱,電話)</p><p> 其中主鍵用戶名,外鍵用戶名。</p><p> ?。?)實驗室:實驗室ID(自動編號),實驗室地址,實驗室類型,實驗室容量</p><p> 其中主鍵實驗室ID,外鍵實驗室ID。</p><p&
89、gt; ?。?)實驗室預(yù)約:預(yù)約ID,用戶名,實驗室ID,申請時間,預(yù)約時間,預(yù)約節(jié)次,預(yù)約數(shù)量,是否通過審核</p><p> 其中主鍵預(yù)約ID,外鍵用戶名,實驗室ID。</p><p> 4.2系統(tǒng)數(shù)據(jù)庫設(shè)計</p><p> 使用數(shù)據(jù)庫工具Navicat作為數(shù)據(jù)庫系統(tǒng)的開發(fā)工具,在該數(shù)據(jù)庫中建立一系列的表,填寫列名、數(shù)據(jù)類型和長度,對需要數(shù)據(jù)初始化的進(jìn)行
90、初始化。該系統(tǒng)的數(shù)據(jù)庫表為users、laborder、labinfo,其中users.u_uid是laborder.o_u_uid的外鍵,labinfo.l_id是laborder.o_l_id的外鍵,通過這些表與表之間的外鍵關(guān)系,三張表在邏輯上聯(lián)系在了一起。</p><p> 數(shù)據(jù)庫表關(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> 用戶表用以儲存用戶信息,可以對用戶各種信息進(jìn)行改變。其中有三列數(shù)據(jù)不能為null,分別是u_uid、u_password、u_status,這些信息在新用戶產(chǎn)生的時候必須在數(shù)據(jù)庫中寫入,這三項信息也是用戶注冊頁面里必填(選)的三項信息。</p><p> 數(shù)據(jù)表的列名為,用戶名(唯一性),密碼,權(quán)限組
92、號,用戶信息(學(xué)號<工號>,姓名,性別,年齡,郵箱,電話)。其中用戶名為唯一標(biāo)識。由于Ibatis框架的特殊性,所以表中的int類型都設(shè)置了默認(rèn)值,這里給它們設(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實驗室表</b></p><p> 實驗室表中存放實驗室的基本信息,以實驗室id為唯一標(biāo)識,通過實驗室id可以唯一對應(yīng)實驗室信息,并設(shè)定。實驗室表是只有管理員才有權(quán)限修改的表,所以此表內(nèi)容相對簡單。</p><p> 實驗室信息中存儲著實驗室ID(自動編號),實驗室地址,實驗室類型,實驗室容量等基本信息。實驗室表結(jié)構(gòu)如表4-4所示,實驗室表內(nèi)容如表4-5所示。<
94、/p><p> 表4-4 實驗室表結(jié)構(gòu)</p><p> 表4-5 實驗室表數(shù)據(jù)</p><p> 4.2.3實驗室預(yù)約表</p><p> 實驗室預(yù)約表中存放實驗室預(yù)約信息,以預(yù)約id為唯一標(biāo)識,通過預(yù)約id可以唯一對應(yīng)預(yù)約信息,并設(shè)定。實驗室預(yù)約表是實驗室預(yù)約系統(tǒng)中的核心表,該表通過外鍵關(guān)聯(lián)與數(shù)據(jù)庫中的另外兩個表聯(lián)系在一起,這樣在用戶
95、預(yù)約實驗室的時候,該表就能夠存儲預(yù)約的用戶ID和預(yù)約的實驗室ID。同時,由于外鍵的存在,保證了數(shù)據(jù)表在更新和刪除時表現(xiàn)出來的一致性,避免數(shù)據(jù)出錯。</p><p> 實驗室預(yù)約表存儲著預(yù)約ID,用戶名,實驗室ID,申請時間,預(yù)約時間,預(yù)約節(jié)次,預(yù)約數(shù)量,是否通過審核等基本信息。實驗室預(yù)約表結(jié)構(gòu)如表4-6所示,實驗室預(yù)約表數(shù)據(jù)如表4-7所示。</p><p><b> 4.3數(shù)
96、據(jù)庫的連接</b></p><p> 該系統(tǒng)使用Ibatis作為數(shù)據(jù)庫Model層的框架,其連接數(shù)據(jù)庫的方式使用Ibatis標(biāo)準(zhǔn)的配置式連接。在Ibatis中,只需配置好數(shù)據(jù)庫的連接參數(shù),并且使用正確的Model接收數(shù)據(jù)表,使其成為一個Java中的對象,就完成了數(shù)據(jù)庫到Model層的連接配置。</p><p> 表4-6 實驗室預(yù)約表結(jié)構(gòu)</p><p&
97、gt; 表4-7 實驗室預(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> <!-- 這里可以寫多個實體的映射文件 --></p><p> <sqlMap resource="com/nupt/model/User.xml" /></p><p> </sqlMapConfig> </p><p> 本章介紹了數(shù)
105、據(jù)庫系統(tǒng)的設(shè)計與實現(xiàn),介紹了數(shù)據(jù)表之間的聯(lián)系,以及各個數(shù)據(jù)表的具體設(shè)計及部分?jǐn)?shù)據(jù),還說明了數(shù)據(jù)表到Java對象的實現(xiàn)方式。</p><p> 第五章 各個功能模塊的設(shè)計與實現(xiàn)</p><p> 在建立后臺數(shù)據(jù)庫并完成相關(guān)配置后,開始具體設(shè)計網(wǎng)絡(luò)頁面。</p><p> 用戶登錄是實驗室預(yù)約系統(tǒng)的入口(如果沒有注冊,應(yīng)該從用戶注冊開始)。用戶輸入用戶名、密碼,選
106、擇用戶類型,點擊登錄按鈕后,系統(tǒng)到用戶表中查找,如果查到用戶輸入的用戶名、密碼和對應(yīng)的用戶類型都正確,則登錄成功。用戶登錄成功后進(jìn)入用戶控制面板,不同類型用戶對應(yīng)有不同的功能。普通用戶可以管理自己的基本資料,修改密碼,進(jìn)行實驗室查詢與預(yù)約。管理員可以管理用戶,管理實驗室,審核預(yù)約。系統(tǒng)的總體功能設(shè)計圖如圖4-1所示。</p><p> 圖4-1 系統(tǒng)總體功能設(shè)計圖</p><p> 5
107、.1登錄注冊模塊的設(shè)計與實現(xiàn)</p><p> 登陸注冊模塊是整個應(yīng)用程序的入口,通過注冊頁面,游客可以注冊為網(wǎng)站用戶,獲得網(wǎng)站下各種資源的使用權(quán)限;通過登陸頁面,系統(tǒng)會為不同身份、不同名稱的用戶提供指定頁面的跳轉(zhuǎn),并獲得當(dāng)前用戶所擁有的權(quán)限,以便進(jìn)行網(wǎng)站下的其它操作。</p><p> 5.1.1用戶注冊模塊</p><p> 用戶注冊這里指的是普通用戶的注
108、冊,用戶通過點擊鏈接用戶注冊,進(jìn)入register頁面,進(jìn)行用戶表單信息的填寫,填寫用戶名、密碼,選擇用戶類型等信息。點擊立即提交后,檢測用戶名是否存在,兩次密碼是否相同等,如果通過,則用戶的信息就被插入到對應(yīng)的用戶數(shù)據(jù)庫中。</p><p> 普通用戶注冊時,系統(tǒng)進(jìn)行了嚴(yán)格的用戶輸入信息檢測。用戶注冊采用的是AJAX異步數(shù)據(jù)傳輸機(jī)制,在數(shù)據(jù)上傳至服務(wù)器之前,系統(tǒng)首先利用JavaScript獲用戶填寫的表單信息
109、,然后進(jìn)行用戶名和密碼的非空檢測,密碼與確認(rèn)密碼是否相同的檢測,當(dāng)檢測成功后,系統(tǒng)把表單數(shù)據(jù)壓縮為JSON格式的數(shù)據(jù)包,然后數(shù)據(jù)被傳輸?shù)胶笈_,如果檢測失敗,則在模態(tài)框上顯示失敗的原因。數(shù)據(jù)進(jìn)入到后臺后,首先進(jìn)行的同樣是非空檢測、密碼與確認(rèn)密碼是否相同的檢測。當(dāng)這些條件符合要求時,系統(tǒng)就會進(jìn)行下一步數(shù)據(jù)庫操作的部分。新用戶注冊時,要到數(shù)據(jù)庫中查詢是否有同名用戶,如果存在同名用戶則返回前端查詢結(jié)果,如果不存在同名用戶,則把新用戶的信息插入的
110、對應(yīng)的數(shù)據(jù)表中。用戶名支持中文名。最后返回數(shù)據(jù)插入的情況給前端。用戶注冊頁面如圖4-2所示。</p><p> 圖4-2 用戶注冊頁面</p><p> 5.1.2用戶登錄模塊</p><p> 用戶登錄過程是一個驗證過程,首先系統(tǒng)會進(jìn)行相應(yīng)的JavaScript前端驗證,驗證成功后使用AJAX異步傳輸技術(shù),把數(shù)據(jù)打包成JSON格式傳輸?shù)胶笈_。后臺系統(tǒng)首先從數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于web的實驗室預(yù)約平臺
- 基于web的實驗室預(yù)約平臺.docx
- 畢業(yè)設(shè)計---基于web的虛擬實驗室設(shè)計
- 基于Web的實驗室預(yù)約管理系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于.net的實驗室預(yù)約系統(tǒng)設(shè)計
- 畢業(yè)論文——實驗室預(yù)約系統(tǒng)的設(shè)計
- 畢業(yè)論文——實驗室預(yù)約系統(tǒng)的設(shè)計
- 基于bs的實驗室預(yù)約系統(tǒng)畢業(yè)論文
- 實驗室預(yù)約管理系統(tǒng)
- 基于web的實驗室管理系統(tǒng)設(shè)計
- 畢業(yè)論文——基于bs結(jié)構(gòu)的實驗室預(yù)約模型系統(tǒng)
- 實驗室管理系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)論文——基于web的實驗室管理系統(tǒng)
- 實驗室預(yù)約管理系統(tǒng)設(shè)計方案
- 基于web的實驗室管理系統(tǒng)設(shè)計.pdf
- 基于Web的實驗室管理系統(tǒng)的設(shè)計.pdf
- 基于web的虛擬實驗室設(shè)計
- 網(wǎng)絡(luò)實驗室畢業(yè)設(shè)計
- 實驗室設(shè)備管理系統(tǒng)畢業(yè)設(shè)計
- 開放實驗室預(yù)約及信息服務(wù)系統(tǒng)設(shè)計.pdf
評論
0/150
提交評論