版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> ##大學(xué)畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)</p><p> 學(xué)院:##學(xué)院 系級(jí)教學(xué)單位:電子工程系 </p><p><b> 摘要</b></p><p> 隨著人們生活水平的逐步提高,旅游照相成了大家必不可少放松項(xiàng)目。雖然照片最后會(huì)存入到自己的電
2、腦里,但是時(shí)間一長(zhǎng)、照片一多,這些有著勾起回憶的“資料”,就會(huì)顯得雜亂無(wú)章,即不方便欣賞,也不方便管理。而電子相冊(cè)具有欣賞、傳播方便,界面美觀等特點(diǎn),可以很好的管理所存入的照片,不失為最佳欣賞、保存照片的相冊(cè)工具。電子相冊(cè)系統(tǒng)平臺(tái)也就應(yīng)此應(yīng)運(yùn)而生。</p><p> 本系統(tǒng)是一種基于B/S架構(gòu)的電子相冊(cè)管理系統(tǒng),它采用目前最流行的Java語(yǔ)言編寫(xiě),用到了當(dāng)今先進(jìn)的技術(shù)如 JSP技術(shù)、Hibernate、Spri
3、ng、Struts框架等來(lái)實(shí)現(xiàn)該系統(tǒng)。</p><p> 系統(tǒng)分為五大模塊、相冊(cè)列表模塊、新建相冊(cè)模塊、修改資料模塊、修改密碼模塊、添加相冊(cè)分類模塊。注:前四大模塊是根據(jù)注冊(cè)用戶的提供的,注冊(cè)用戶登陸后可以進(jìn)行添加相冊(cè),上傳,刪除照片,修改資料等一系列操作,最后一項(xiàng)是管理員登陸所進(jìn)行的操作。而如果是未注冊(cè)用戶只能查看相冊(cè)中的內(nèi)容,沒(méi)有權(quán)力進(jìn)行相應(yīng)的修改。</p><p> 關(guān)鍵詞:JA
4、VA;電子相冊(cè);三框架;MVC </p><p><b> Abstract</b></p><p> As people gradually increase the standard of living, travel photography has become essential to relax the project everyone. While t
5、he photos will eventually be deposited to your computer, but over time, more than one photo, which has brought back memories of the "data", will be very chaotic, that is inconvenient to enjoy, not to facilitate
6、 management. Electronic album with appreciation, the spread of convenience, the interface appearance characteristics such as good management can be deposited i</p><p><b> 目 錄</b></p><
7、p><b> 摘要I</b></p><p> AbstractII</p><p><b> 第1章 緒論1</b></p><p> 1.1 系統(tǒng)開(kāi)發(fā)的背景和意義1</p><p> 1.2 國(guó)內(nèi)外發(fā)展?fàn)顩r2</p><p> 1.3 研究?jī)?nèi)容
8、2</p><p> 第2章 程序技術(shù)相關(guān)知識(shí)4</p><p> 2.1 JAVA 簡(jiǎn)介4</p><p> 2.2 JAVA EE平臺(tái)相關(guān)介紹4</p><p> 2.3 所采用數(shù)據(jù)庫(kù)及原因5</p><p> 2.4 MVC設(shè)計(jì)模式的原理6</p><p> 2.4
9、.1 MVC設(shè)計(jì)思想7</p><p> 2.4.2 MVC的優(yōu)點(diǎn)8</p><p> 2.5三框架相關(guān)知識(shí)簡(jiǎn)介9</p><p> 2.5.1 STRUTS框架9</p><p> 2.5.2 HIBERNATE框架9</p><p> 2.5.3 SPRING框架10</p>&
10、lt;p> 2.6 JSP技術(shù)10</p><p> 2.7 關(guān)于JavaScript 腳本語(yǔ)言的應(yīng)用12</p><p> 2.8 MyEclipse開(kāi)發(fā)工具的簡(jiǎn)要介紹13</p><p> 2.9 WEB服務(wù)器Tomcat6.014</p><p> 2.9.1 Tomcat Server的組成部分14</
11、p><p> 2.9.2 Tomcat Server處理一個(gè)http請(qǐng)求的過(guò)程16</p><p> 2.10 本章小結(jié)16</p><p> 第3章 電子相冊(cè)系統(tǒng)需求分析17</p><p> 3.1可行性分析17</p><p> 3.1.1系統(tǒng)總體目標(biāo)17</p><p>
12、 3.1.2技術(shù)可行性分析17</p><p> 3.1.3功能需求17</p><p> 3.1.4性能需求17</p><p> 3.2系統(tǒng)總體結(jié)構(gòu)17</p><p> 3.2.1 系統(tǒng)總體結(jié)構(gòu)18</p><p> 3.2.2用例圖18</p><p> 3.3
13、系統(tǒng)功能模塊結(jié)構(gòu)19</p><p> 3.3.1相冊(cè)列表模塊19</p><p> 3.3.2新建相冊(cè)模塊20</p><p> 3.3.3修改資料模塊21</p><p> 3.3.4修改密碼模塊21</p><p> 3.3.5添加相冊(cè)模塊22</p><p> 3
14、.4 數(shù)據(jù)庫(kù)設(shè)計(jì)22</p><p> 3.5 本章小結(jié)24</p><p> 第4章 系統(tǒng)實(shí)現(xiàn)25</p><p> 4.1管理員登陸設(shè)計(jì)25</p><p> 4.1.1管理員登陸主頁(yè)面的創(chuàng)建25</p><p> 4.1.2 實(shí)現(xiàn)過(guò)程25</p><p> 4.2
15、注冊(cè)用戶登陸設(shè)計(jì)26</p><p> 4.2.1 注冊(cè)用戶登陸界面的創(chuàng)建27</p><p> 4.2.2 注冊(cè)用戶登陸界面27</p><p> 4.2.3 實(shí)現(xiàn)過(guò)程28</p><p> 4.3 未注冊(cè)用戶注冊(cè)設(shè)計(jì)28</p><p> 4.4 添加相冊(cè)分類的實(shí)現(xiàn)29</p>
16、<p> 4.5 管理員添加相冊(cè)界面29</p><p> 4.5.1 實(shí)現(xiàn)過(guò)程30</p><p> 4.6 數(shù)據(jù)庫(kù)設(shè)計(jì)32</p><p> 4.6.1使用SHOW語(yǔ)句找數(shù)據(jù)庫(kù)32</p><p> 4.6.2 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)abccs33</p><p> 4.6.3 選擇你所創(chuàng)建
17、的數(shù)據(jù)庫(kù)33</p><p> 4.6.4 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表33</p><p> 4.6.5 往表中加入記錄34</p><p> 4.6.6裝入數(shù)據(jù)庫(kù)表34</p><p> 4.7系統(tǒng)測(cè)試34</p><p> 4.7.1 測(cè)試目標(biāo)34</p><p> 4.7.2
18、 各模塊測(cè)試35</p><p> 4.8 本章小結(jié)36</p><p><b> 結(jié)論37</b></p><p><b> 參考文獻(xiàn)39</b></p><p><b> 致謝40</b></p><p> 附錄1 開(kāi)題報(bào)告41
19、</p><p> 附錄2 文獻(xiàn)綜述45</p><p><b> 第1章 緒論</b></p><p> 隨著數(shù)碼攝影時(shí)代的到來(lái),不論是專業(yè)攝影師建立圖片檔案或是向他人展示自己的攝影作品,還是家庭生活攝影,都需要電子相冊(cè)來(lái)保管攝影作品。如同傳統(tǒng)的照相簿,電子相冊(cè)既有展示功能也有存儲(chǔ)和管理功能。</p><p>
20、 電子相冊(cè)是現(xiàn)在時(shí)下最流行的一種網(wǎng)絡(luò)元素,它可以應(yīng)該在很多的領(lǐng)域,例如時(shí)下最流行的空間及博客就是大量的應(yīng)該這一技術(shù),而且受到大多數(shù)網(wǎng)友的認(rèn)可及追捧,其以靜態(tài)照片為素材(獲得源方式為掃描儀掃描、數(shù)碼相機(jī)所拍等),配合動(dòng)感的背景、前景和字幕等視頻處理的特殊效果,配上音樂(lè)就可制作成電子相冊(cè)。制作好的電子相冊(cè)可以在電腦上,各類影碟機(jī)上,以及手機(jī)和MP4里都能觀看,這是電子相冊(cè)技術(shù)發(fā)展到今天的一個(gè)新的突破,即不再像傳統(tǒng)那樣,只能在電腦上或在影碟
21、機(jī)上觀看了,并且還可以通過(guò)手機(jī)將自己的個(gè)性化MTV發(fā)送給遠(yuǎn)方的親朋好友們分享。當(dāng)然,如果考慮到長(zhǎng)期保存的話,制作成電子相冊(cè)光盤(pán)那是最好的選擇啦,金碟可保存100多年之久,標(biāo)準(zhǔn)VCD、SVCD、DVD格式,兼容性好,通過(guò)影牒機(jī)即可與家人、朋友、客戶觀賞。若保存在硬盤(pán)上,也便于隨時(shí)調(diào)閱、欣賞,永久保存。</p><p> 1.1 系統(tǒng)開(kāi)發(fā)的背景和意義</p><p> 隨著人們生活水平的逐
22、步提高,旅游成了大家必不可少放松項(xiàng)目,每當(dāng)筆者走到一個(gè)美麗的景點(diǎn),就會(huì)忍不住拿起數(shù)碼相機(jī)照上幾張留做回憶。雖然照片最后會(huì)存入到自己的電腦里,但是時(shí)間一長(zhǎng)、照片一多,這些有著勾起回憶的資料,就會(huì)顯得雜亂無(wú)章,即不方便欣賞,也不方便管理。而電子相冊(cè)具有欣賞、傳播方便,界面美觀等特點(diǎn),可以很好的管理所存入的照片,不失為最佳欣賞、保存照片的相冊(cè)工具。</p><p> 另外隨著數(shù)碼相機(jī)、手機(jī)照相等功能的普及,想必每個(gè)人
23、手上都儲(chǔ)存了大量的電子相片,但這此照片如果不進(jìn)行處理,僅僅以一張張圖片的形式放置在電腦上,不僅 不易觀賞,也不方便分類管理,是否有軟件能將這些照片整理成一本本的相冊(cè)呢?電子相冊(cè)系統(tǒng)平臺(tái)就是一款集相冊(cè)制作、生成、瀏覽專業(yè)軟件,有了它的幫助,制用相冊(cè)再也不需要專業(yè)的技術(shù),普通用戶也可以在五分鐘內(nèi)制作出精美的電子相冊(cè),支持170余種照片顯示特技,可以為相片加入文件注釋及說(shuō)明。</p><p> 1.2 國(guó)內(nèi)外發(fā)展?fàn)顩r
24、</p><p> 電子相冊(cè)是現(xiàn)在時(shí)下最流行的一種網(wǎng)絡(luò)元素,它可以應(yīng)該在很多的領(lǐng)域,例如時(shí)下最流行的空間及博客就是大量的應(yīng)該這一技術(shù),而且受到大多數(shù)網(wǎng)友的認(rèn)可及追捧,其以靜態(tài)照片為素材(獲得源方式為掃描儀掃描、數(shù)碼相機(jī)所拍等),配合動(dòng)感的背景、前景和字幕等視頻處理的特殊效果,配上音樂(lè)就可制作成電子相冊(cè)。制作好的電子相冊(cè)可以在電腦上,各類影碟機(jī)上,以及手機(jī)和MP4里都能觀看,這是電子相冊(cè)技術(shù)發(fā)展到今天的一個(gè)新的突
25、破,即不再象傳統(tǒng)那樣,只能在電腦上或在影碟機(jī)上觀看了。并且還可以通過(guò)手機(jī)將自己的個(gè)性化MTV發(fā)送給遠(yuǎn)方的親朋好友們分享。當(dāng)然,如果考慮到長(zhǎng)期保存的話,制作成電子相冊(cè)光盤(pán)那是最好的選擇啦,金碟可保存100多年之久,標(biāo)準(zhǔn)VCD、SVCD、DVD格式,兼容性好,通過(guò)影牒機(jī)即可與家人、朋友、客戶觀賞;若保存在硬盤(pán)上,也便于隨時(shí)調(diào)閱、欣賞,永久保存。</p><p><b> 1.3 研究?jī)?nèi)容</b>
26、;</p><p> 電子相冊(cè)系統(tǒng)是一種基于B/S架構(gòu)的管理系統(tǒng),它采用目前最流行的java語(yǔ)言編寫(xiě),用到了當(dāng)今先進(jìn)的技術(shù)如 jsp技術(shù)、Hibernate、Spring、Struts框架等來(lái)實(shí)現(xiàn)該系統(tǒng)。采用MVC框架技術(shù)提高了系統(tǒng)的可維護(hù)性。</p><p> 本系統(tǒng)所研究的是從電子相冊(cè)的管理到相冊(cè)的生成等一系列的問(wèn)題,大致分為:前臺(tái)包括相冊(cè)列表、新建相冊(cè)、修改資料、修改密碼、技術(shù)支
27、持,后臺(tái)包括相冊(cè)管理, </p><p> 本文共分5章,第1章是緒論,第2章介紹開(kāi)發(fā)本系統(tǒng)所用到的相關(guān)技術(shù),第3章是系統(tǒng)的需求分析及結(jié)構(gòu)圖,第4章是相冊(cè)系統(tǒng)的系統(tǒng)實(shí)現(xiàn),第5章是總結(jié)。各章節(jié)的研究?jī)?nèi)容如下:</p><p> (1) 第1章主要介紹了選題的背景和意義,論述了系統(tǒng)的國(guó)內(nèi)發(fā)展?fàn)顩r。</p><p> (2) 第2章主要介紹了實(shí)現(xiàn)電子相冊(cè)系統(tǒng)所用的軟
28、件和系統(tǒng)建設(shè)過(guò)程中使用的相關(guān)技術(shù)。</p><p> (3) 第3章主要是電子相冊(cè)系統(tǒng)的需求分析。</p><p> (4) 第4章是系統(tǒng)的編碼實(shí)現(xiàn),從三框架的實(shí)現(xiàn),數(shù)據(jù)庫(kù)的創(chuàng)建等方面介紹了系統(tǒng)的實(shí)現(xiàn)。</p><p> (5) 第5章主要是此系統(tǒng)的的總結(jié)。</p><p> 第2章 程序技術(shù)相關(guān)知識(shí)</p><p
29、> 2.1 JAVA 簡(jiǎn)介</p><p> Java是Sun公司開(kāi)發(fā)的編程語(yǔ)言,使用它可以在各式各樣不同的機(jī)器、不同操作平臺(tái)的網(wǎng)絡(luò)開(kāi)發(fā)環(huán)境中開(kāi)發(fā)軟件。不論用戶使用的是哪一種WWW瀏覽器、哪一種計(jì)算機(jī)、哪一種操作系統(tǒng),只要WWW瀏覽器上面注明了“支持Java”,就可以看到生動(dòng)的頁(yè)面。Java正在逐步成為Internet應(yīng)用的主要開(kāi)發(fā)語(yǔ)言。它徹底改變了應(yīng)用軟件的開(kāi)發(fā)模式,帶來(lái)了自個(gè)人計(jì)算機(jī)以來(lái)又一次技術(shù)革
30、命,為迅速發(fā)展的信息世界增添了新的活力。</p><p> Java是一種語(yǔ)法簡(jiǎn)介、清晰的語(yǔ)言,它的程序運(yùn)行需要一個(gè)解釋器,也就是所謂的“虛擬機(jī)” 。虛擬機(jī)以某種高速算法執(zhí)行Java的面相對(duì)象語(yǔ)言代碼。從Java2.0開(kāi)始,Java分為3個(gè)版本J2ME(微機(jī)版本)、J2SE(標(biāo)準(zhǔn)版本)和J2EE(企業(yè)級(jí)版本),分別用于支持消費(fèi)類電子設(shè)備、標(biāo)準(zhǔn)PC以及企業(yè)級(jí)應(yīng)用的開(kāi)發(fā),版本之間的區(qū)別不僅在于所支持的類庫(kù)的大小不同
31、,也在于個(gè)版本都對(duì)應(yīng)著不同的Java虛擬機(jī)。</p><p> Java的主要特性是可移植性,安全性,網(wǎng)絡(luò)移動(dòng)性,其中網(wǎng)絡(luò)移動(dòng)性是Java的最主要的一個(gè)特性。而如果沒(méi)有安全性,可移植性的支持,就無(wú)法實(shí)現(xiàn)網(wǎng)絡(luò)移動(dòng)性。Java的網(wǎng)絡(luò)移動(dòng)性帶來(lái)了一次Web革命。隨著Internet的發(fā)展,Java技術(shù)本身在不斷得進(jìn)步,JDK(Java Development Kit,Java開(kāi)發(fā)包,Java開(kāi)發(fā)工具)是一個(gè)寫(xiě)Java
32、的applet和應(yīng)用程序的程序開(kāi)發(fā)平臺(tái)。它由一個(gè)處于操作系統(tǒng)層之上的運(yùn)行環(huán)境還有開(kāi)發(fā)者編譯,調(diào)試和運(yùn)行用Java語(yǔ)言寫(xiě)的applet和應(yīng)用程序所需的工具組成。</p><p> 2.2 JAVA EE平臺(tái)相關(guān)介紹</p><p> J2EE,Java2平臺(tái)企業(yè)版(Java 2 Platform Enterprise Edition), 是Sun公司為企業(yè)級(jí)應(yīng)用推出的標(biāo)準(zhǔn)平臺(tái)。Java平
33、臺(tái)共分為三個(gè)主要版本Java EE、Java SE和Java ME。 Sun公司在1998年發(fā)表JDK1.2版本的時(shí)候,使用了新名稱Java 2 Platform,即“Java2平臺(tái)”,修改后的JDK稱為Java 2 Platform Software Develping Kit,即J2SDK。并分為標(biāo)準(zhǔn)版(Standard Edition,J2SE), 企業(yè)版(Enterprise Edition,J2EE),微型版(Mic
34、roEdition,J2ME)。J2EE便由此誕生。</p><p> 2005年6月,JavaOne大會(huì)召開(kāi),SUN公司公開(kāi)Java SE 6。此時(shí),Java的各種版本已經(jīng)更名以取消其中的數(shù)字“2”:J2EE更名為Java EE, J2SE更名為Java SE,J2ME更名為Java ME。</p><p> 隨著Java技術(shù)的發(fā)展,J2EE平臺(tái)得到了迅速的發(fā)展,成為Java語(yǔ)言中最
35、活躍的體系之一?,F(xiàn)如今,J2EE不僅僅是指一種標(biāo)準(zhǔn)平臺(tái)(Platform),它更多的表達(dá)著一種軟件架構(gòu)和設(shè)計(jì)思想。 </p><p> 從整體上講,J2EE是使用Java技術(shù)開(kāi)發(fā)企業(yè)級(jí)應(yīng)用的一種事實(shí)上的工業(yè)標(biāo)準(zhǔn)(Sun公司出于其自身利益的考慮,至今沒(méi)有將Java及其相關(guān)技術(shù)納入標(biāo)準(zhǔn)化組織的體系),它是Java技術(shù)不斷適應(yīng)和促進(jìn)企業(yè)級(jí)應(yīng)用過(guò)程中的產(chǎn)物。目前,Java平臺(tái)有三個(gè)版本:適用于小型設(shè)備和智能卡的J2ME
36、(Java 2 Platform Micro Edition)、適用于桌面系統(tǒng)的J2SE和適用于企業(yè)級(jí)應(yīng)用的J2EE。Sun推出J2EE的目的是為了克服傳統(tǒng)Client/Server模式的弊病,迎合Browser/Server架構(gòu)的潮流,為應(yīng)用Java技術(shù)開(kāi)發(fā)服務(wù)器端應(yīng)用提供一個(gè)平臺(tái)獨(dú)立的、可移植的、多用戶的、安全的和基于標(biāo)準(zhǔn)的企業(yè)級(jí)平臺(tái),從而簡(jiǎn)化企業(yè)應(yīng)用的開(kāi)發(fā)、管理和部署。J2EE是一個(gè)標(biāo)準(zhǔn),而
37、不是一個(gè)現(xiàn)成的產(chǎn)品。各個(gè)平臺(tái)開(kāi)發(fā)商按照J(rèn)2EE規(guī)范分別開(kāi)發(fā)了不同的J2EE應(yīng)用服務(wù)器,J2EE應(yīng)用服務(wù)器是J2EE企業(yè)級(jí)應(yīng)用的部署平臺(tái)。由于它們都遵循了J2EE規(guī)范,因此,使用J2EE技術(shù)開(kāi)發(fā)的企業(yè)級(jí)應(yīng)用可以部署在各種J2EE應(yīng)用服務(wù)器上。</p><p> 2.3 所采用數(shù)據(jù)庫(kù)及原因</p><p> 本系統(tǒng)采用的是目前比較流行的小型數(shù)據(jù)庫(kù)系統(tǒng)MYSQL。</p>&l
38、t;p> MySQL 是瑞典的MySQL AB公司開(kāi)發(fā)的一個(gè)可用于各種流行操作系統(tǒng)平臺(tái)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),它具有客戶機(jī)/服務(wù)器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫(kù)管理系統(tǒng)。MySQL 完全適用于網(wǎng)絡(luò),用其建造的數(shù)據(jù)庫(kù)可在因特網(wǎng)上的任何地方訪問(wèn),因此,可以和網(wǎng)絡(luò)上任何地方的任何人共享數(shù)據(jù)庫(kù)。MySQL具有功能強(qiáng)、使用簡(jiǎn)單、管理方便、運(yùn)行速度快、可靠性高、安全保密性強(qiáng)等優(yōu)點(diǎn)。MySQL用C和C++編寫(xiě),它可以工作在許多平臺(tái)(Unix,Linux,W
39、indows)上,提供了針對(duì)不同編程語(yǔ)言(C,C++,JAVA等)的API函數(shù);使用核心線程實(shí)現(xiàn)多線程,能夠很好的支持多CPU;提供事務(wù)和非事務(wù)的存儲(chǔ)機(jī)制;快速的基于線程的內(nèi)存分配系統(tǒng);MySQL采用雙重許可,用戶可以在GNU許可條款下以免費(fèi)軟件或開(kāi)放源碼軟件的方式使用MySQL軟件,也可以從MySQL AB公司獲得正式的商業(yè)許可。</p><p> 除了以上特點(diǎn),MySQL 還有一個(gè)最大的特點(diǎn),那就是在諸如
40、UNIX 這樣的操作系統(tǒng)上,它是免費(fèi)的,可從因特網(wǎng)上下載其服務(wù)器和客戶機(jī)軟件。并且還能從因特網(wǎng)上得到許多與其相配的第三方軟件或工具。而在 Windows 系統(tǒng)上,其客戶機(jī)程序和客戶機(jī)程序庫(kù)是免費(fèi)的。</p><p> 有些軟件開(kāi)發(fā)人員可能會(huì)認(rèn)為MYSQL數(shù)據(jù)庫(kù)屬于那個(gè)小型的數(shù)據(jù)庫(kù),但是在我看來(lái)不同的數(shù)據(jù)庫(kù)要根據(jù)你不同的需要還進(jìn)行選擇的,在我看來(lái)時(shí)下小的程序例如電子相冊(cè)系統(tǒng)它不會(huì)產(chǎn)生大量的數(shù)據(jù),只需要一些數(shù)據(jù)的查
41、詢和相應(yīng)的插入沒(méi)有太復(fù)雜的表與表這間的結(jié)構(gòu),而且對(duì)于小系統(tǒng)來(lái)說(shuō)性能是相當(dāng)重要的。相比MYSQL來(lái)說(shuō)ORACLE數(shù)據(jù)確實(shí)可以看作是相當(dāng)大的而且功能相當(dāng)全的數(shù)據(jù)庫(kù),但是同是ORACLE數(shù)據(jù)庫(kù)對(duì)于系統(tǒng)的要求也是相當(dāng)?shù)目量?。它要求系統(tǒng)要有較高的性能才能帶得起整個(gè)程序的發(fā)布。</p><p> MySQL 包含有下列工具:</p><p> (1) SQL 服務(wù)器。這是 MySQL 的引擎,它提
42、供對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。</p><p> (2) 訪問(wèn)服務(wù)器的客戶機(jī)程序。包括一個(gè)允許直接錄入查詢并查看結(jié)果的交互式程序,以及幾個(gè)幫助操縱站點(diǎn)的管理程序和實(shí)用程序。其中有一個(gè)實(shí)用程序允許控制服務(wù)器。其他的實(shí)用程序?qū)牖驅(qū)С鰯?shù)據(jù),檢查訪問(wèn)許可等。</p><p> (3) 幫助用戶編寫(xiě)自己的程序的客戶機(jī)庫(kù)。MySQL提供眾多的API ( C, C++, Eiffel, Java, Perl,
43、 PHP, Python, Ruby, and Tcl)</p><p> (4) MySQL 除了提供內(nèi)嵌軟件外,它還被許多很有才能的人使用。這些人喜歡編寫(xiě)軟件以提高其產(chǎn)品效率,或愿意將自己編寫(xiě)的軟件提供給他人使用。因此,使用 MySQL能得到各種各樣的第三方工具,這些工具令 MySQL使用更方便,或者擴(kuò)展了 MySQL,使其進(jìn)入諸如 Web 站點(diǎn)開(kāi)發(fā)這樣的領(lǐng)域。</p><p>
44、2.4 MVC設(shè)計(jì)模式的原理</p><p> 在這里簡(jiǎn)要的介紹一下關(guān)于上一章中反復(fù)提到的MVC結(jié)構(gòu),其實(shí)MVC可以說(shuō)是模型層--視圖層—控制層的簡(jiǎn)稱,即 Model-View-Controller的簡(jiǎn)稱。它強(qiáng)制性地把應(yīng)用程序的輸入、處理和輸出分開(kāi),大大提高了代碼的重用性。如圖2-1所示。</p><p> 圖 2-1 MVC示圖</p><p> 2.4.1
45、 MVC設(shè)計(jì)思想</p><p> MVC英文即Model-View-Controller,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層——模型層、視圖層、控制層?! ∫晥D(View)代表用戶交互界面,對(duì)于Web應(yīng)用來(lái)說(shuō),可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有
46、挑戰(zhàn)性。一個(gè)應(yīng)用可能有很多不同的視圖,MVC設(shè)計(jì)模式對(duì)于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請(qǐng)求,而不包括在視圖上的業(yè)務(wù)流程的處理。業(yè)務(wù)流程的處理交予模型(Model)處理。比如一個(gè)訂單的視圖只接受來(lái)自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請(qǐng)求傳遞給控制和模型。</p><p> 模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過(guò)程對(duì)其它層來(lái)說(shuō)是黑箱操作,
47、模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)可以說(shuō)是MVC最主要的核心。目前流行的EJB模型就是一個(gè)典型的應(yīng)用例子,它從應(yīng)用技術(shù)實(shí)現(xiàn)的角度對(duì)模型做了進(jìn)一步的劃分,以便充分利用現(xiàn)有的組件,但它不能作為應(yīng)用設(shè)計(jì)模型的框架。它僅僅告訴你按這種模型設(shè)計(jì)就可以利用某些技術(shù)組件,從而減少了技術(shù)上的困難。對(duì)一個(gè)開(kāi)發(fā)者來(lái)說(shuō),就可以專注于業(yè)務(wù)模型的設(shè)計(jì)。MVC設(shè)計(jì)模式告訴我們,把應(yīng)用的模型按一定的規(guī)則抽取出來(lái),抽取的層次很重要,這也是判斷
48、開(kāi)發(fā)人員是否優(yōu)秀的設(shè)計(jì)依據(jù)。抽象與具體不能隔得太遠(yuǎn),也不能太近。MVC并沒(méi)有提供模型的設(shè)計(jì)方法,而只告訴你應(yīng)該組織管理這些模型,以便于模型的重構(gòu)和提高重用性。我們可以用對(duì)象編程來(lái)做比喻,MVC定義了一個(gè)頂級(jí)類,告訴它的子類你只能做這些,但沒(méi)法限制你能做這些。這點(diǎn)對(duì)編程的開(kāi)發(fā)人員非常重要。</p><p> 業(yè)務(wù)模型還有一個(gè)很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實(shí)體對(duì)象的數(shù)據(jù)保存(持續(xù)化)。比如將一張訂單保存
49、到數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)獲取訂單。我們可以將這個(gè)模型單獨(dú)列出,所有有關(guān)數(shù)據(jù)庫(kù)的操作只限制在該模型中。</p><p> 控制(Controller)可以理解為從用戶接收請(qǐng)求, 將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請(qǐng)求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。例如,用戶點(diǎn)擊一個(gè)連接,控制層接受請(qǐng)求后, 并不處
50、理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個(gè)模型可能對(duì)應(yīng)多個(gè)視圖,一個(gè)視圖可能對(duì)應(yīng)多個(gè)模型。</p><p> 2.4.2 MVC的優(yōu)點(diǎn)</p><p> 大部分用過(guò)程語(yǔ)言比如ASP、PHP開(kāi)發(fā)出來(lái)的Web應(yīng)用,初始的開(kāi)發(fā)模板就是混合層的數(shù)據(jù)編程。例如,直接向數(shù)據(jù)庫(kù)發(fā)送請(qǐng)求并用HTML顯示,開(kāi)發(fā)速度往往比較快,但由于數(shù)據(jù)頁(yè)面的分離不是
51、很直接,因而很難體現(xiàn)出業(yè)務(wù)模型的樣子或者模型的重用性。產(chǎn)品設(shè)計(jì)彈性力度很小,很難滿足用戶的變化性需求。MVC要求對(duì)應(yīng)用分層,雖然要花費(fèi)額外的工作,但產(chǎn)品的結(jié)構(gòu)清晰,產(chǎn)品的應(yīng)用通過(guò)模型可以得到更好地體現(xiàn)。</p><p> 首先,最重要的是應(yīng)該有多個(gè)視圖對(duì)應(yīng)一個(gè)模型的能力。在目前用戶需求的快速變化下,可能有多種方式訪問(wèn)應(yīng)用的要求。例如,訂單模型可能有本系統(tǒng)的訂單,也有網(wǎng)上訂單,或者其他系統(tǒng)的訂單,但對(duì)于訂單的處理
52、都是一樣,也就是說(shuō)訂單的處理是一致的。按MVC設(shè)計(jì)模式,一個(gè)訂單模型以及多個(gè)視圖即可解決問(wèn)題。這樣減少了代碼的復(fù)制,即減少了代碼的維護(hù)量,一旦模型發(fā)生改變,也易于維護(hù)。</p><p> 2.5三框架相關(guān)知識(shí)簡(jiǎn)介</p><p> 本系統(tǒng)是基于J2EE的三種框架的集成性開(kāi)發(fā),其中包括STRUTS框架SPRING框架HIBERNATE框架等,它們?cè)谡麄€(gè)模塊的開(kāi)發(fā)過(guò)程中起著不同的作用。&l
53、t;/p><p> 2.5.1 STRUTS框架</p><p> 其中STRUTS框架主要是MVC結(jié)構(gòu),而MVC把交互系統(tǒng)的組成分解成模型、視圖、控制器三部分。模型(Model)是軟件所處理問(wèn)題邏輯在獨(dú)立于外在顯示內(nèi)容和形式情況下的內(nèi)在抽象,封裝了問(wèn)題的核心數(shù)據(jù)、邏輯和功能的計(jì)算關(guān)系,獨(dú)立于具體的界面表達(dá)和I/O操作。視圖(View)把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息及特定形式展示給用
54、戶。它從模型獲得顯示信息,對(duì)于相同的信息可以有多個(gè)不同的顯示形式或視圖??刂破?Controller)是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,確保用戶界面于模型間的對(duì)應(yīng)聯(lián)系;它接受用戶的輸入,將輸入反饋給模型,進(jìn)而實(shí)現(xiàn)對(duì)模型的計(jì)算控制,是使模型和視圖協(xié)調(diào)工作的部件。通常一個(gè)視圖對(duì)應(yīng)一個(gè)控制器。模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過(guò)某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴
55、于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無(wú)論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化-傳播機(jī)制。</p><p> 2.5.2 HIBERNATE框架</p><p> HIBERNATE框架是一個(gè)數(shù)據(jù)持久層框架,是一種實(shí)現(xiàn)對(duì)象和關(guān)系之間映射(O/R Mapping)的工具,它對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,使程序員可以使用對(duì)
56、象編程思想來(lái)操作數(shù)據(jù)庫(kù)。它不僅提供了從Java類到數(shù)據(jù)表的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機(jī)制。相對(duì)于使用JDBC和SQL來(lái)操作數(shù)據(jù)庫(kù),使用Hibernate能大大的提高實(shí)現(xiàn)的效率。Hibernate框架用配置文件的形式來(lái)定義Java對(duì)象和數(shù)據(jù)表之間的映射關(guān)系,同時(shí)在更深的層面將數(shù)據(jù)表之間的關(guān)系解釋為Java對(duì)象之間的繼承及包含等關(guān)系。通過(guò)使用HQL語(yǔ)句將復(fù)雜的關(guān)系算法用對(duì)象的方式描述,在很大程度上簡(jiǎn)化了對(duì)數(shù)據(jù)的查詢,加快了開(kāi)發(fā)的效率。在H
57、ibernate中有一個(gè)簡(jiǎn)單而直觀的API,用于對(duì)數(shù)據(jù)庫(kù)所表示的對(duì)象執(zhí)行查詢。要?jiǎng)?chuàng)建或修改這些對(duì)象,只需在程序中與它們進(jìn)行交互,然后告訴Hibernate保存即可。這樣,大量封裝持久化操作的業(yè)務(wù)邏輯不再需要編寫(xiě)煩瑣的JDBC語(yǔ)句,從而使數(shù)據(jù)持久層得到了極大的簡(jiǎn)化。</p><p> 2.5.3 SPRING框架</p><p> 而Spring是一個(gè)開(kāi)源框架主要有兩大特性包括:依賴注入
58、(IOC)和切面(AOP)在我的這個(gè)設(shè)計(jì)中基本上只體現(xiàn)了其中的一部分也就是IOC依賴注入,所謂的依賴注入就是Spring通過(guò)一種稱作控制反轉(zhuǎn)(IOC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IOC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過(guò)被動(dòng)的方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IOC與JNDI相反——不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。</p><p> 控制
59、反轉(zhuǎn)模式(也稱作依賴性介入)的基本概念是:不創(chuàng)建對(duì)象,但是描述創(chuàng)建它們的方式。在代碼中不直接與對(duì)象和服務(wù)連接,但在配置文件中描述哪一個(gè)組件需要哪一項(xiàng)服務(wù)。容器 (在 Spring 框架中是 IOC 容器) 負(fù)責(zé)將這些聯(lián)系在一起。在典型的 IOC 場(chǎng)景中,容器創(chuàng)建了所有對(duì)象,并設(shè)置必要的屬性將它們連接在一起,決定什么時(shí)間調(diào)用方法。下表列出了 IOC 的一個(gè)實(shí)現(xiàn)模式。</p><p><b> 2.6 J
60、SP技術(shù)</b></p><p> 隨著Web應(yīng)用的飛速發(fā)展,傳統(tǒng)的靜態(tài)HTML語(yǔ)言已經(jīng)越來(lái)越不適應(yīng)需要,由此導(dǎo)致了人們?cè)趥鹘y(tǒng)的靜態(tài)HTML上增添新的功能,這一切功能最終導(dǎo)致了動(dòng)態(tài)HTML的產(chǎn)生,Web已經(jīng)從一個(gè)大部分顯示靜態(tài)信息的網(wǎng)絡(luò)演化成能夠進(jìn)行股票交易和購(gòu)書(shū)操作等的一種基礎(chǔ)設(shè)施網(wǎng)絡(luò)。靜態(tài)HTML對(duì)于顯示靜態(tài)內(nèi)容是不錯(cuò)的選擇,新的挑戰(zhàn)在于創(chuàng)建交互的基于Web的應(yīng)用程序,用戶在瀏覽信息的同時(shí)也需要
61、向服務(wù)器反饋一些信息,在這些程序中,頁(yè)面的內(nèi)容是基于用戶的請(qǐng)求或系統(tǒng)的狀態(tài),而不是預(yù)先定義的文字。</p><p> 某些Web服務(wù)器供應(yīng)商已經(jīng)嘗試通過(guò)為他們的服務(wù)器提供“插件”和API來(lái)簡(jiǎn)化Web應(yīng)用程序的開(kāi)發(fā)難度。但這些解決方案是與特定的Web服務(wù)器相關(guān)的,例如,微軟的ASP技術(shù)使得在Web頁(yè)面上創(chuàng)建動(dòng)態(tài)內(nèi)容更加容易,但是也只能工作在微軟的IIS和Personal Web Server上。還存在其他的解決方
62、案,但不能使一個(gè)普通的頁(yè)面設(shè)計(jì)者更加容易掌握。例如像Java Servlets技術(shù),就可以使得用Java語(yǔ)言編寫(xiě)交互應(yīng)用程序的服務(wù)器端代碼變得很容易,開(kāi)發(fā)人員能夠編寫(xiě)出這樣的Servlets,以接受來(lái)自Web瀏覽器的HTTP請(qǐng)求,動(dòng)態(tài)地生成響應(yīng),然后發(fā)送包含HTML或XML文檔的響應(yīng)到瀏覽器。 采用這種方法,整個(gè)網(wǎng)頁(yè)必須都在Java Servlets中制作,如果開(kāi)發(fā)人員或者Web管理人員想要調(diào)整頁(yè)面顯示,就不得不編輯并重新編譯該Jav
63、a Servlets,即使在邏輯上已經(jīng)能夠運(yùn)行了。采用這種辦法,生成有動(dòng)態(tài)內(nèi)容的頁(yè)面仍然需要應(yīng)用程序的開(kāi)發(fā)技巧。</p><p> 很顯然,目前需要的是一個(gè)業(yè)界范圍內(nèi)的創(chuàng)建動(dòng)態(tài)內(nèi)容的解決方案。這個(gè)方案將解決當(dāng)前方案所受到的限制,即使在任何Web的交互程序服務(wù)器上運(yùn)行、將應(yīng)用程序邏輯和頁(yè)面顯示分離、能夠快速地開(kāi)發(fā)和測(cè)試、簡(jiǎn)化開(kāi)發(fā)基于Web的交互式應(yīng)用程序的過(guò)程。</p><p> JSP
64、技術(shù)就是被設(shè)計(jì)用來(lái)滿足這樣的要求的。</p><p> JSP規(guī)范是Web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)以及開(kāi)發(fā)工具供應(yīng)間廣泛合作的結(jié)果,SUN公司開(kāi)發(fā)出這個(gè)規(guī)范來(lái)整合和平衡已經(jīng)存在的規(guī)范對(duì)Java編程環(huán)境進(jìn)行支持的技術(shù)和工具,其結(jié)果是產(chǎn)生了一種新的、開(kāi)發(fā)基于Web應(yīng)用程序的方法,給予使用基于組件應(yīng)用邏輯的頁(yè)面設(shè)計(jì)者以強(qiáng)大的功能支持。</p><p> JSP網(wǎng)頁(yè)包含以下的組件:<
65、/p><p><b> (1) JSP指示</b></p><p> JSP頁(yè)面使用JSP指示將指令傳遞到JSP容器,其中包括:JSP頁(yè)面指示傳遞與頁(yè)面相關(guān)的信息,例如緩沖區(qū)和線程信息或者出錯(cuò)信息;語(yǔ)言指示指定腳本語(yǔ)言以及所有的擴(kuò)展;包含指示可以被用來(lái)在頁(yè)面中包含一個(gè)外部文件,被包含的文件可能是另一個(gè)JSP文件,標(biāo)識(shí)庫(kù)指示指出頁(yè)面可以調(diào)用的客戶標(biāo)識(shí)庫(kù)類型。</p
66、><p><b> (2) JSP標(biāo)識(shí)</b></p><p> 絕大數(shù)JSP處理將通過(guò)與JSP相關(guān)的基于XML的標(biāo)識(shí)完成,這些標(biāo)識(shí)包括:</p><p> Jsp:useBean這個(gè)標(biāo)識(shí)聲明對(duì)一個(gè)JavaBean組件實(shí)例的使用;</p><p> Jsp;setproperty這個(gè)標(biāo)識(shí)在組件的實(shí)例中設(shè)置一個(gè)屬性的值
67、;</p><p> Jsp:getProperty這個(gè)標(biāo)識(shí)獲取一個(gè)組件的實(shí)例的屬性值,將其轉(zhuǎn)化為字</p><p> 符串,并且將它放入隱含對(duì)象out中;</p><p> Jsp:include和Jsp:forward </p><p> 標(biāo)識(shí)的好處在于它們易于在應(yīng)用程序中使用和共享基于標(biāo)識(shí)的語(yǔ)法的真正威力來(lái)自標(biāo)識(shí)庫(kù)的開(kāi)發(fā),使得工
68、具供應(yīng)商或其他人員能夠?yàn)樘囟ǖ囊髣?chuàng)建和分派標(biāo)識(shí)。</p><p><b> (3) JSP指示</b></p><p> JSP頁(yè)面可以在頁(yè)面中包含小的腳本,小腳本是一個(gè)代碼片段,在請(qǐng)求</p><p> 的出處理過(guò)程中被執(zhí)行,小腳本可以和頁(yè)面中的靜態(tài)元件組合起來(lái)創(chuàng)建動(dòng)態(tài)生</p><p> 成的頁(yè)面。腳本在標(biāo)
69、志中被描述,在這對(duì)標(biāo)志中的所有的東西都會(huì)被腳本描述</p><p> 語(yǔ)言容器執(zhí)行,JSP規(guī)范支持所有常用的腳本元件,包括聲明和表達(dá)式。</p><p> (4) JSP頁(yè)面應(yīng)用模型</p><p> JSP頁(yè)面由JSP容器執(zhí)行,容器安裝在Web服務(wù)器或者JSP的引用服務(wù)器上,JSP容器接受客戶端的請(qǐng)求,并且生成JSP頁(yè)面給客戶端的響應(yīng)。</p>
70、<p> 2.7 關(guān)于JavaScript 腳本語(yǔ)言的應(yīng)用</p><p> JavaScript語(yǔ)言是web增強(qiáng)型技術(shù),當(dāng)在客戶計(jì)算機(jī)上使用時(shí),該語(yǔ)言有助于把內(nèi)容的靜態(tài)頁(yè)面轉(zhuǎn)換為動(dòng)人的、交互式的、智能的體驗(yàn)。應(yīng)用程序可以做得非常微妙,例如如果客戶計(jì)算機(jī)所在的時(shí)區(qū)是早晨,即使此時(shí)服務(wù)器處在晚飯時(shí)間,應(yīng)用程序也將會(huì)向網(wǎng)站訪問(wèn)音問(wèn)候“早上好”;或者還可實(shí)現(xiàn)更加顯眼的效果,比如在頁(yè)面下載時(shí)傳遞幻燈片內(nèi)容
71、,而在整個(gè)演示過(guò)程中JavaScript控制隱藏、顯示和幻燈片的轉(zhuǎn)換。</p><p> 應(yīng)用JavaScript,可以彌補(bǔ)程序運(yùn)行速度上的缺陷(盡可能在客戶端完成,不一定每次都提交給服務(wù)器),同時(shí)它也擴(kuò)展了WEB頁(yè)面的功能。</p><p> 使用JavaScript可以完成表單的驗(yàn)證,不用強(qiáng)迫服務(wù)器或數(shù)據(jù)庫(kù)來(lái)進(jìn)行數(shù)據(jù)的確認(rèn),直接在客戶端就完成了任務(wù),大大提高了運(yùn)行效率。利用用戶的計(jì)
72、算機(jī)去處理一些問(wèn)題,分擔(dān)了數(shù)據(jù)庫(kù)的工作量。隨著新的W3C標(biāo)準(zhǔn)出臺(tái),利用內(nèi)置對(duì)象的document.getElementById(id)方法可以取到頁(yè)面中的任意元素(前提是各個(gè)元素的屬性id已經(jīng)設(shè)置初值)。利用這種方法可以獲得表單中文本框或按鈕上的值,然后再對(duì)它們加以分析、對(duì)比、判斷數(shù)據(jù)格式。通過(guò)返回的真假值來(lái)決定是否提交給應(yīng)用服務(wù)器。</p><p> 其次,使用JavaScript可以提供用戶更為豐富的使用體
73、驗(yàn),不用刷新就可以改變頁(yè)面上的內(nèi)容,和JSP技術(shù)相互配合,符合當(dāng)今IT技術(shù)中的WEB方向發(fā)展的潮流。</p><p> 在本次的程序中使用了一些JavaScript腳本語(yǔ)言作為一些特效的應(yīng)用,其實(shí)在JS腳本來(lái)說(shuō)就是在做一些前臺(tái)的驗(yàn)證和特效的功能。</p><p> 2.8 MyEclipse開(kāi)發(fā)工具的簡(jiǎn)要介紹</p><p> 計(jì)算機(jī)軟件編程行業(yè)已經(jīng)逐步走入成
74、熟對(duì)于編程人員的要求就越來(lái)越高了,當(dāng)然作為一名軟件開(kāi)發(fā)人員選擇一個(gè)合適的開(kāi)發(fā)工具也就能夠幫助其更快更好更穩(wěn)定地進(jìn)行開(kāi)發(fā),這一點(diǎn)在時(shí)下顯得越來(lái)越重要。MyEclipse絕對(duì)就是一個(gè)不錯(cuò)的選擇,不論是單機(jī)應(yīng)用還是網(wǎng)絡(luò)開(kāi)發(fā),它都提供了很好的支持,特別是對(duì)JSP和Tomcat服務(wù)器的支持,使軟件開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中感覺(jué)便于操作,可以很好的實(shí)現(xiàn)功能很快的看到效果,節(jié)省了開(kāi)發(fā)人員很多的時(shí)間。</p><p> MyEcli
75、pse 6.0以后有了很大的革新,在原來(lái)的版本中一般是用到的Eclipse然后在其中安裝相應(yīng)的MyEclipse一些相應(yīng)的插件,在很大程序上,這樣的一種組合形式對(duì)開(kāi)發(fā)人員來(lái)講過(guò)于復(fù)雜,不便于操作。針對(duì)這一原因在MyEclipse在版本的研發(fā)上著重了解決了這一點(diǎn)缺陷,他們以MyEclipse完全整合了Ecplise,換句話也就是說(shuō)開(kāi)發(fā)人員只需要安裝MyEclipse它其中就會(huì)自動(dòng)給你安裝Eclipse,無(wú)須你再說(shuō)安裝在這一點(diǎn)上就我本人來(lái)講
76、是相當(dāng)?shù)母惺艿搅吮憷膶I(yè)上來(lái)講它是替代IBM Visual Age for Java(以下簡(jiǎn)稱IVJ)的下一代IDE開(kāi)發(fā)環(huán)境,但它未來(lái)的目標(biāo)不僅僅是成為專門(mén)開(kāi)發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過(guò)開(kāi)發(fā)插件,它能擴(kuò)展到任何語(yǔ)言的開(kāi)發(fā),甚至能成為圖片繪制的工具。目前,MyEclipse已經(jīng)開(kāi)始提供一些語(yǔ)言開(kāi)發(fā)的功能插件,例如C語(yǔ)言等。更值得一提的是,MyEclipse是一個(gè)開(kāi)放源代碼的項(xiàng)目,任何人都可以下載MyE
77、clipse的源代碼,并且在此基礎(chǔ)上開(kāi)發(fā)一些自己的功能插件。也就是說(shuō)未來(lái)只要有人需要,就會(huì)有建立在MyEcl</p><p> 利用它可以更好地掌握軟件開(kāi)發(fā)周期,進(jìn)一步提升了Web Services的開(kāi)發(fā)效率。它支持包括SOAP、WSDL、UDDI和WSIL等最新的Web Services技術(shù),并且可以通過(guò)拖放方式更快捷地實(shí)現(xiàn)創(chuàng)建、驗(yàn)證、輸入和輸出Web服務(wù),同時(shí)利用MyEclipse提供的多種可視化插件,可以
78、快速地開(kāi)發(fā)Web應(yīng)用程序。MyEclipse允許將現(xiàn)在的HTML或是JSP轉(zhuǎn)換為特有的Structs標(biāo)簽,并且提供了JSP標(biāo)簽函數(shù)庫(kù)功能,大大提高了編碼的效率。通過(guò)它提供的實(shí)時(shí)代碼語(yǔ)法檢查,我可以隨時(shí)找到語(yǔ)法上的編寫(xiě)錯(cuò)誤,以不同顏色標(biāo)注代碼的變量和語(yǔ)句,使程序變得很清晰,可讀性也提高了。本系統(tǒng)采用的是Myeclipse7.0。</p><p> 2.9 WEB服務(wù)器Tomcat6.0</p>&l
79、t;p> 在WEB工具的選擇上我所選擇的是Tomcat6.0,</p><p> Tomcat是一個(gè)免費(fèi)的開(kāi)源的Serlvet容器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache,Sun和其它一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的
80、java產(chǎn)品,可見(jiàn)其在業(yè)界的地位。</p><p> Tomcat的介紹是Web服務(wù)器一種,是開(kāi)源的web服務(wù)器。</p><p> 2.9.1 Tomcat Server的組成部分</p><p> (1) Server :A Server element represents the entire Catalina servlet container. (
81、Singleton) </p><p> (2) Service :A Service element represents the combination of o-ne or more Connector components that share a single Engine。Service是這樣一個(gè)集合:它由一個(gè)或者多個(gè)Connector組成,以及一個(gè)Engine,負(fù)責(zé)處理所有Connector所獲得
82、的客戶請(qǐng)求</p><p> (3) Connector </p><p> 一個(gè)Connector將在某個(gè)指定端口上偵聽(tīng)客戶請(qǐng)求,并將獲得的請(qǐng)求交給Engine來(lái)處理,從Engine處獲得回應(yīng)并返回客戶。TOMCAT有兩個(gè)典型的Connector,一個(gè)直接偵聽(tīng)來(lái)自browser的http請(qǐng)求,一個(gè)偵聽(tīng)來(lái)自其它WebServer的請(qǐng)求。Coyote Http/1.1 Connector
83、 在端口8080處偵聽(tīng)來(lái)自客戶browser的http請(qǐng)求。Coyote JK2 Connector 在端口8009處偵聽(tīng)來(lái)自其它WebServer(Apache)的servlet/jsp代理請(qǐng)求</p><p> (4) Engine </p><p> Engine下可以配置多個(gè)虛擬主機(jī)Virtual Host,每個(gè)虛擬主機(jī)都有一個(gè)域名。當(dāng)Engine獲得一個(gè)請(qǐng)求時(shí),它把該請(qǐng)求匹配
84、到某個(gè)Host上,然后把該請(qǐng)求交給該Host來(lái)處理。Engine有一個(gè)默認(rèn)虛擬主機(jī),當(dāng)請(qǐng)求無(wú)法匹配到任何一個(gè)Host上的時(shí)候,將交給該默認(rèn)Host來(lái)處理</p><p><b> (5) Host </b></p><p> 代表一個(gè)Virtual Host,虛擬主機(jī),每個(gè)虛擬主機(jī)和某個(gè)網(wǎng)絡(luò)域名Domain Name相匹配。每個(gè)虛擬主機(jī)下都可以部署(deploy)
85、一個(gè)或者多個(gè)Web App,每個(gè)Web App對(duì)應(yīng)于一個(gè)Context,有一個(gè)Context path。當(dāng)Host獲得一個(gè)請(qǐng)求時(shí),將把該請(qǐng)求匹配到某個(gè)Context上,然后把該請(qǐng)求交給該Context來(lái)處理。匹配的方法是“最長(zhǎng)匹配”,所以一個(gè)path==""的Context將成為該Host的默認(rèn)Context所有無(wú)法和其它Context的路徑名匹配的請(qǐng)求都將最終和該默認(rèn)Context匹配</p><
86、;p> (6) Context </p><p> 一個(gè)Context對(duì)應(yīng)于一個(gè)Web Application,一個(gè)Web Application由一個(gè)或者多個(gè)Servlet組成。Context在創(chuàng)建的時(shí)候?qū)⒏鶕?jù)配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml載入Servlet類。當(dāng)Context獲得請(qǐng)求時(shí),將在自己的映射表(map
87、ping table)中尋找相匹配的Servlet類。如果找到,則執(zhí)行該類,獲得請(qǐng)求的回應(yīng),并返回</p><p> 2.9.2 Tomcat Server處理一個(gè)http請(qǐng)求的過(guò)程</p><p> 假設(shè)來(lái)自客戶的請(qǐng)求為:</p><p> http://localhost:8080/web/wsota_index.jsp</p><p&
88、gt; (1) 請(qǐng)求被發(fā)送到本機(jī)端口8080,被在那里偵聽(tīng)的Coyote HTTP/1.1 Connector獲得</p><p> (2) Connector把該請(qǐng)求交給它所在的Service的Engine來(lái)處理,并等待來(lái)自Engine的回應(yīng)</p><p> (3) Engine獲得請(qǐng)求localhost/web/wsota_index.jsp,匹配它所擁有的所有虛擬主機(jī)Host
89、</p><p> (4) Engine匹配到名為localhost的Host(即使匹配不到也把請(qǐng)求交給該Host處理,因?yàn)樵揌ost被定義為該Engine的默認(rèn)主機(jī))</p><p> (5) localhost Host獲得請(qǐng)求/web/wsota_index.jsp,匹配它所擁有的所有Context</p><p> (6) Host匹配到路徑為/web
90、的Context(如果匹配不到就把該請(qǐng)求交給路徑名為""的Context去處理)</p><p> (7) path="/web"的Context獲得請(qǐng)求/wsota_index.jsp,在它的mapping table中尋找對(duì)應(yīng)的servlet</p><p> (8) Context匹配到URL PATTERN為*.jsp的servlet,對(duì)
91、應(yīng)于JspServlet類</p><p> (9) 構(gòu)造HttpServletRequest對(duì)象和HttpServletResponse對(duì)象,作為參數(shù)調(diào)用JspServlet的doGet或doPost方法</p><p> (10)Context把執(zhí)行完了之后的HttpServletResponse對(duì)象返回給Host</p><p> (11)Host把Ht
92、tpServletResponse對(duì)象返回給Engine</p><p> (12)Engine把HttpServletResponse對(duì)象返回給Connector</p><p> (13)Connector把HttpServletResponse對(duì)象返回給客戶browser</p><p><b> 2.10 本章小結(jié)</b><
93、/p><p> 在本章中主要介紹了軟件開(kāi)發(fā)時(shí)所用的開(kāi)發(fā)工具和相關(guān)的技術(shù),重點(diǎn)介紹了Java、J2EE平臺(tái)和MVC結(jié)構(gòu)等相關(guān)知識(shí)以及JAVA三框架Hibernate、Spring、Struts的工作機(jī)制。同時(shí)也詳細(xì)介紹了JSP的相關(guān)技術(shù),運(yùn)行環(huán)境及其開(kāi)發(fā)工具。</p><p> 第3章 電子相冊(cè)系統(tǒng)需求分析</p><p><b> 3.1可行性分析<
94、;/b></p><p> 3.1.1系統(tǒng)總體目標(biāo)</p><p> 本系統(tǒng)主要是為了給那些對(duì)照片管理感興趣的朋友提供一個(gè)交流的平臺(tái),對(duì)有很多照片需要管理的朋友,你在這里可以進(jìn)行注冊(cè)成為會(huì)員,上傳自己的照片,也可以著瀏覽別人的相冊(cè),還可以修改個(gè)人資料。非注冊(cè)會(huì)員你可以瀏覽電子相冊(cè)里別人的相片。對(duì)于管理員登陸,可以添加相冊(cè)分類。</p><p> 3.1.
95、2技術(shù)可行性分析</p><p> 這個(gè)電子相冊(cè)是基于web來(lái)開(kāi)發(fā)的,主要運(yùn)用jsp技術(shù)、Hibernate、Spring、Struts框架等相關(guān)技術(shù),以My sql為后臺(tái)數(shù)據(jù)庫(kù)、Tomcat6.0為應(yīng)用服務(wù)器。這些應(yīng)用軟件(如JDK、tomcat6.0、Myeclipse7.0、Dreamweaver等都可以在網(wǎng)絡(luò)上免費(fèi)下載得來(lái)),并且這些軟件都是些最常用的網(wǎng)頁(yè)開(kāi)發(fā)工具,都能夠快和好的掌握,并且也學(xué)了有關(guān)網(wǎng)頁(yè)
96、開(kāi)發(fā)的課程,所以一些最常用的技術(shù)能夠比較好的實(shí)現(xiàn),所以對(duì)于本系統(tǒng)在技術(shù)上是可以達(dá)到的。</p><p><b> 3.1.3功能需求</b></p><p> 本系統(tǒng)應(yīng)該具有相片瀏覽、相片上傳、評(píng)論相片、編輯、刪除相片、用戶注冊(cè)、用戶管理、個(gè)人信息修改等功能。</p><p><b> 3.1.4性能需求</b>&l
97、t;/p><p> 設(shè)備需求:PC機(jī),Windows98/2000/xp操作系統(tǒng),PII以上,64MB RAM。服務(wù)器、采用My sql數(shù)據(jù)庫(kù)管理。</p><p><b> 3.2系統(tǒng)總體結(jié)構(gòu)</b></p><p> 本系統(tǒng)所研究的是從電子相冊(cè)的管理到相冊(cè)的生成等一系列的問(wèn)題,大致分為:</p><p> 相冊(cè)列
98、表:此模塊是注冊(cè)用戶所創(chuàng)建的相冊(cè)列表,其創(chuàng)建時(shí)要選擇所屬的相冊(cè)分類,相冊(cè)名字由注冊(cè)用戶所規(guī)定。相冊(cè)封皮也可以由用戶設(shè)定。</p><p> 新建相冊(cè):此功能是注冊(cè)用戶所擁有的,用戶可以自己創(chuàng)建想要的相冊(cè)。</p><p> 修改資料:注冊(cè)用戶注冊(cè)時(shí)填寫(xiě)的資料可以在再次登陸時(shí)修改。</p><p> 修改密碼:用戶可以修改自己的登錄密碼。</p>
99、<p> 技術(shù)支持:介紹了所用到的知識(shí)點(diǎn)。</p><p> 相冊(cè)分類管理:此功能是管理員登錄時(shí)擁有的權(quán)限,管理員可以添加相冊(cè)的分類。</p><p> 3.2.1 系統(tǒng)總體結(jié)構(gòu)</p><p> 圖 3-1 總體架構(gòu)</p><p><b> 3.2.2用例圖</b></p><
100、p> 用例圖就是把網(wǎng)站各個(gè)用戶的動(dòng)作分解一下,再用畫(huà)圖軟件把它畫(huà)出來(lái)。電子相冊(cè)系統(tǒng)的角色之一是注冊(cè)用戶</p><p> 用例名稱:用戶登錄 執(zhí)行者:用戶</p><p> 目的:完成注冊(cè)用戶登陸后的一系列操作的完整過(guò)程。</p><p> (1)用戶輸入登錄名,密碼,系統(tǒng)識(shí)別用戶信息的有效性;</p><p> ?。?)
101、對(duì)用戶信息進(jìn)行識(shí)別;</p><p> (3)用戶完成相冊(cè)列表,新建相冊(cè)修改資料等一系列操作;</p><p><b> ?。?)退出系統(tǒng)。</b></p><p><b> 圖 3-2 用例圖</b></p><p> 3.3系統(tǒng)功能模塊結(jié)構(gòu)</p><p> 相冊(cè)
102、管理系統(tǒng)分為五大模塊、相冊(cè)列表模塊、新建相冊(cè)模塊、修改資料模塊、修改密碼模塊、添加相冊(cè)模塊。注:前四大模塊是根據(jù)注冊(cè)用戶的提供的,而如果是未注冊(cè)用戶只能查看相冊(cè)中的內(nèi)容,沒(méi)有權(quán)力進(jìn)行相應(yīng)的修改。</p><p> 3.3.1相冊(cè)列表模塊</p><p> (1) 業(yè)務(wù)描述:管理相冊(cè)的相關(guān)圖片的上傳。</p><p> (2) 業(yè)務(wù)流程:用戶點(diǎn)擊相冊(cè)列表可以瀏覽
103、相關(guān)的相冊(cè),當(dāng)然點(diǎn)擊上傳圖片就可以進(jìn)入一個(gè)上傳圖片的頁(yè)面,在該頁(yè)面中用戶可以根據(jù)自己的需要上傳相應(yīng)的圖片,為圖片取名、分類,提交后返回相冊(cè)列表。</p><p> (3) 輸入數(shù)據(jù):記錄編號(hào)是自增列不顯示在前臺(tái)頁(yè)面;圖片名稱、文件簡(jiǎn)介分別以文本框的形式展示在前臺(tái)頁(yè)面中,由用戶輸入;圖片的上傳以一種數(shù)據(jù)流的形式出現(xiàn),出現(xiàn)在前臺(tái)的時(shí)候以一種需要用戶點(diǎn)擊選擇的形式出現(xiàn)。</p><p> (
104、4) 角色說(shuō)明:此功能主要由注冊(cè)用戶和非注冊(cè)用戶使用。</p><p> 3.3.2新建相冊(cè)模塊</p><p> (1) 業(yè)務(wù)描述:添加相冊(cè)即為用戶所處的相冊(cè)管理模塊加入一個(gè)新的相冊(cè)。</p><p> (2) 業(yè)務(wù)流程:點(diǎn)擊新建相冊(cè)的界面,進(jìn)入新建相冊(cè)的主界面根據(jù)提示輸入相關(guān)的信息后選擇提交,則可看到剛剛新添加的那個(gè)相冊(cè),然后可以根據(jù)自己的需要選擇是否加入
105、相片,如果加入的話點(diǎn)擊相冊(cè),然后點(diǎn)擊上傳相片,根據(jù)提示填寫(xiě)相關(guān)的信息,然后選擇上傳路徑單擊上傳,選擇提交,這樣系統(tǒng)會(huì)自動(dòng)的生成一個(gè)大圖片和一個(gè)小圖片,用來(lái)顯示封面等操作。</p><p> 圖 3-3 新建相冊(cè)流程圖</p><p> (3) 錯(cuò)誤處理:在填寫(xiě)信息的過(guò)程中不允許有不被填寫(xiě)的欄目,系統(tǒng)會(huì)給出相應(yīng)的提示。</p><p> (4) 輸入數(shù)據(jù):由用戶
106、輸入相應(yīng)的數(shù)據(jù)信息。</p><p> (5) 輸出結(jié)果:其輸出結(jié)果為在相冊(cè)列表中給予相應(yīng)的顯示。</p><p> (6) 角色說(shuō)明:此功能主要注冊(cè)用戶使用。</p><p> 3.3.3修改資料模塊</p><p> (1) 業(yè)務(wù)描述:對(duì)注冊(cè)用戶來(lái)講,將他們的資料從后臺(tái)數(shù)據(jù)庫(kù)中讀取出來(lái)然后根據(jù)用戶的需要進(jìn)行相應(yīng)的修改,根據(jù)用戶資料
107、采集界面來(lái)采集相應(yīng)的數(shù)據(jù),根據(jù)這些數(shù)據(jù)來(lái)更新數(shù)據(jù)庫(kù)中該用戶的相應(yīng)資料。如果是未注冊(cè)的用戶可根據(jù)提示進(jìn)行注冊(cè)。</p><p><b> (2) 業(yè)務(wù)流程</b></p><p> 圖3-4修改資料流程圖</p><p> (3) 錯(cuò)誤處理:在填寫(xiě)信息的過(guò)程中不允許有不被填寫(xiě)的欄目,系統(tǒng)會(huì)給出相應(yīng)的提示。</p><p&
108、gt; (4) 輸入數(shù)據(jù):由用戶輸入相應(yīng)的數(shù)據(jù)信息。</p><p> (5) 輸出結(jié)果:無(wú)</p><p> (6) 角色說(shuō)明:此功能主要注冊(cè)用戶使用。</p><p> 3.3.4修改密碼模塊</p><p> (1) 業(yè)務(wù)描述:對(duì)注冊(cè)用戶來(lái)講,該模塊是用于修改注冊(cè)用戶的登陸系統(tǒng)平臺(tái)的密碼,注冊(cè)用戶可以根據(jù)自己的需要來(lái)修改其密碼
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子相冊(cè)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----flash電子相冊(cè)設(shè)計(jì)
- 電子相冊(cè)制作軟件畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于.net電子相冊(cè)的開(kāi)發(fā)
- 記事本和電子相冊(cè)開(kāi)發(fā)畢業(yè)設(shè)計(jì)
- 畢業(yè)論文--電子相冊(cè)的設(shè)計(jì)
- 畢業(yè)論文---個(gè)人電子相冊(cè)設(shè)計(jì)
- 電子與計(jì)算機(jī)畢業(yè)設(shè)計(jì)周記
- 計(jì)算機(jī)遠(yuǎn)程維護(hù)畢業(yè)設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)站畢業(yè)設(shè)計(jì)
- 電子相冊(cè) 畢業(yè)論文
- 計(jì)算機(jī)學(xué)院網(wǎng)站畢業(yè)設(shè)計(jì)
- 計(jì)算機(jī)電源設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)97基于cs結(jié)構(gòu)的餐飲管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)97基于cs結(jié)構(gòu)的餐飲管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)外文翻譯
- 班級(jí)電子相冊(cè)畢業(yè)論文
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)--網(wǎng)絡(luò)設(shè)計(jì)方案
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)97基于CS結(jié)構(gòu)的餐飲管理系統(tǒng)畢業(yè)設(shè)計(jì).doc
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)97基于CS結(jié)構(gòu)的餐飲管理系統(tǒng)畢業(yè)設(shè)計(jì).doc
評(píng)論
0/150
提交評(píng)論