![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/85bcbd51-902b-4d5a-a439-b74bae07ecd4/85bcbd51-902b-4d5a-a439-b74bae07ecd4pic.jpg)
![畢業(yè)論文---ajax技術(shù)在信息發(fā)布系統(tǒng)中的應(yīng)用_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/85bcbd51-902b-4d5a-a439-b74bae07ecd4/85bcbd51-902b-4d5a-a439-b74bae07ecd41.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 1.選題背景1</b></p><p> 1.1背景以及課題目的和意義1</p><p> 1.2國內(nèi)外發(fā)展現(xiàn)狀1</p><p> 2.相關(guān)基礎(chǔ)及技術(shù)2</p><p> 2.1意義A
2、JAX概念和技術(shù)的出現(xiàn)以及AJAX關(guān)鍵技術(shù)2</p><p> 2.1.1JavaScript2</p><p> 2.1.2CSS2</p><p> 2.1.3文檔對象模型DOM2</p><p> 2.1.4XHTML2</p><p> 2.2AJAX與傳統(tǒng)Web服務(wù)的比較2</p&
3、gt;<p> 2.2.1傳統(tǒng)的Web應(yīng)用3</p><p> 2.2.2集成AJAX技術(shù)的Web應(yīng)用3</p><p> 2.2.3使用AJAX的優(yōu)勢3</p><p> 3.應(yīng)用實例設(shè)計與分析4</p><p><b> 3.1設(shè)計思想4</b></p><p&g
4、t; 3.2系統(tǒng)的開發(fā)測試環(huán)境4</p><p> 3.3系統(tǒng)功能設(shè)計4</p><p> 3.4系統(tǒng)總體Web框架5</p><p> 3.4.1系統(tǒng)的分層架構(gòu)設(shè)計5</p><p> 3.4.2結(jié)合AJAX的MVC模式5</p><p> 3.5系統(tǒng)動態(tài)模型分析6</p>&l
5、t;p> 3.5.1基于AJAX的操作協(xié)議圖6</p><p> 3.6 AJAX與Servlet交互代碼的主要實現(xiàn)7</p><p> 3.7系統(tǒng)類結(jié)構(gòu)設(shè)計9</p><p> 3.8系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計9</p><p> 3.9系統(tǒng)的主要功能實現(xiàn)10</p><p> 3.9.1基于AJ
6、AX技術(shù)的查詢?yōu)g覽模塊,即用戶模塊10</p><p> 3.9.2管理模塊10</p><p> 4.系統(tǒng)測試運行效果及結(jié)果分析11</p><p> 4.1管理模塊11</p><p> 4.2用戶瀏覽模塊12</p><p> 5.系統(tǒng)性能和安全分析13</p><p&g
7、t; 5.1性能問題13</p><p> 5.2解決方案14</p><p> 5.3安全性分析14</p><p><b> 參考文獻(xiàn):14</b></p><p> Ajax技術(shù)在信息發(fā)布系統(tǒng)中的應(yīng)用</p><p> 摘要: 信息的發(fā)布和傳播是指信息從發(fā)送者到接收者的傳
8、遞過程,這個過程有三個基本要素:發(fā)送者、接收者和傳播渠道。隨著網(wǎng)絡(luò)通信與計算機技術(shù)的飛速發(fā)展,將信息以網(wǎng)絡(luò)的形式進(jìn)行傳播已經(jīng)成為現(xiàn)代信息發(fā)布系統(tǒng)的主流模式,Web服務(wù)的形式也逐漸多樣化。傳統(tǒng)的Web技術(shù)由于互動性和實時性的缺陷,已經(jīng)無法滿足現(xiàn)實的需要。本文對傳統(tǒng)的Web應(yīng)用與Ajax模式的Web應(yīng)用進(jìn)行了比較,詳細(xì)分析了Ajax與綜合信息發(fā)布系統(tǒng)的集成設(shè)計模式。通過具體的設(shè)計說明了這種應(yīng)用的可行性以及更加強大的交互性。</p>
9、;<p> 關(guān)鍵詞: Ajax 異步傳輸 Web應(yīng)用 信息發(fā)布系統(tǒng) JavaScript</p><p><b> 1.選題背景</b></p><p> 1.1背景以及課題目的和意義</p><p> 從2003年多媒體信息發(fā)布系統(tǒng)出現(xiàn),到2007多媒體信息發(fā)布系統(tǒng)得到人們的認(rèn)可,發(fā)展到現(xiàn)在,其已經(jīng)成為建筑智能化
10、領(lǐng)域不可缺少的一個子系統(tǒng),多媒體信息發(fā)布系統(tǒng)在現(xiàn)代信息化社會應(yīng)用的行業(yè)和地點越來越廣泛。“多媒體”是指能夠同時獲取、處理、編輯、存儲和展示兩個以上不同類型信息媒體的技術(shù),也稱多媒體信息發(fā)布系統(tǒng)?,F(xiàn)在多媒體技術(shù)往往與計算機聯(lián)系起來,這是由于計算機的數(shù)字化及交互處理能力,極大地推動了多媒體技術(shù)的進(jìn)一步發(fā)展。通??梢园讯嗝襟w看成是先進(jìn)的計算機技術(shù)與視頻、音頻和通信等技術(shù)融為一體而形成的新技術(shù)或新產(chǎn)品。因此可以認(rèn)為多媒體是計算機綜合處理文本、圖
11、形、圖像、音頻、視頻等多媒體信息,使多種信息可以快速的綜合的發(fā)展。它是一種迅速發(fā)展的綜合性電子信息技術(shù),給人們的工作、生活、休閑和娛樂帶來了深刻的影響。利用AJAX來實現(xiàn)信息的實時更新,加強對系統(tǒng)數(shù)據(jù)庫的監(jiān)測,是得到最新信息的一種非常有效的方式。</p><p> 1.2國內(nèi)外發(fā)展現(xiàn)狀</p><p> AJAX作為一個技術(shù)組合,除了在瀏覽器中引入了XMLHttpRequest對象以外
12、,并沒有增加其他的新技術(shù)。但AJAX卻顛覆了傳統(tǒng)Web應(yīng)用的理論,模式和方法,AJAX技術(shù)的潛力還有待進(jìn)一步挖掘,AJAX應(yīng)用的理論,模式和方法還需要繼續(xù)發(fā)展和完善。AJAX技術(shù)目前還處于成長期,雖然AJAX技術(shù)得到越來越多的應(yīng)用,但像Google這樣把AJAX技術(shù)的使用發(fā)揮到極至的例子還是很少,AJAX在大多數(shù)情況下還是作為一種補充技術(shù)出現(xiàn),AJAX成為web應(yīng)用的主流技術(shù)還是需要一定時間的。</p><p>
13、 最有名的AJAX應(yīng)用幾乎都是Google的大作,包括Gmail, Google Suggest, Google Maps,可以說這是最廣為人知的幾個AJAX應(yīng)用,比如Google推出的Gmail服務(wù),Gmail最出色的地方是它的UI,它允許用戶一次打開多個郵件,并且即使用戶在編寫郵件時,郵件列表也能夠自動更新,與其他的傳統(tǒng)的Web郵件系統(tǒng)相比,這是一個巨大的進(jìn)步,再比如Google Suggest在提供更加豐富的交互性方面,Goog
14、le走得更遠(yuǎn),例如,當(dāng)用戶鍵入字符時,Google Suggest可以為用戶提供與輸入字符相符的提示,幫助他們完成想要鍵入的搜索字符串,Google Maps可以執(zhí)行交互式的,可動態(tài)縮放而不需要刷新整個頁面的搜索,如今,隨著Gmail, Google Maps的應(yīng)用和各種瀏覽器的支持,AJAX正逐漸壯大起來,使得人們更加關(guān)注于他。而這些應(yīng)用都只算是初步的嘗試,同時也表明,AJAX正在快速的壯大,因為像谷歌,雅虎和微軟這樣的IT界領(lǐng)軍人物
15、只有在看到了可觀的商業(yè)前景之后才會大量運用特定的新技術(shù) 。 </p><p><b> 2.相關(guān)基礎(chǔ)及技術(shù)</b></p><p> 2.1意義AJAX概念和技術(shù)的出現(xiàn)以及AJAX關(guān)鍵技術(shù)</p><p> 2.1.1JavaScript</p><p> JavaScript是一種基于對象和事件驅(qū)動并具有較高安
16、全性能的腳本語言,其目的是與HTML超文本標(biāo)記語言、Java腳本語言(Java小程序)一起實現(xiàn),并在一個Web頁面中連接多個對象,與Web客戶交互作用,從而可以開發(fā)客戶端的應(yīng)用程序等。JavaScript通過嵌入或調(diào)入到標(biāo)準(zhǔn)的HTML語言中實現(xiàn),它的出現(xiàn)彌補了HTML語言的缺陷,是Java與HTML折中的選擇。JavaScript曾一直被定位為客戶端腳本語言,應(yīng)用最多的地方是表單數(shù)據(jù)的校驗。</p><p>&l
17、t;b> 2.1.2CSS</b></p><p> 級聯(lián)樣式表(Cascading Style Sheets,CSS),是1996年作為把有關(guān)樣式屬性信息如字體和邊框加到HTML文檔中的標(biāo)準(zhǔn)方法而提出來的。但是CSS與XML結(jié)合的確比與HTML結(jié)合得更好,因為HTML承擔(dān)著CSS標(biāo)志和HTML標(biāo)志之間向后兼容的任務(wù)。例如,要正確地支持CSS和NOWRAP屬性,就要求廢除HTML中非標(biāo)準(zhǔn)的但
18、又是經(jīng)常使用的NOWRAP元素。由于XML元素沒有任何預(yù)定義的格式規(guī)定,所以不會限制何種CSS樣式只能用于何種元素。一個CSS樣式表就是一組規(guī)則。每個規(guī)則給出此規(guī)則所適用的元素的名稱,以及此規(guī)則要應(yīng)用于哪些元素的樣式。</p><p> 2.1.3文檔對象模型DOM</p><p> DOM(Document Object Model)是提供給HTML和XML使用的一組API,提供了文
19、件的表述結(jié)構(gòu),并可以利用它改變其中的內(nèi)容和可見物。腳本語言通過DOM才可以跟頁面進(jìn)行交互。Web開發(fā)人員可操作及建立文件的屬性、方法以及事件具都以對象來展現(xiàn),如document就代表頁面對象本身。</p><p> 2.1.4XHTML</p><p> 2000年底,國際W3C(World Wide Web Consortium)組織公布發(fā)行了XHTML1.0版本。XHTML1.0是
20、一種在HTML4.0基礎(chǔ)上優(yōu)化和改進(jìn)的新語言,目的是基于XML開發(fā)應(yīng)用。XHTML扮演著類似于HTML角色的XML。所以,本質(zhì)上講,XHTML是一種過渡技術(shù),結(jié)合了XML(有幾分)的強大功能及HTML(大多數(shù))的簡單特性,它的可擴展性和靈活性將適應(yīng)未來網(wǎng)絡(luò)應(yīng)用更多的需求。</p><p><b> 2.1.5XML </b></p><p> 通過XML(eXte
21、nsible Markup Language)可以規(guī)范地定義結(jié)構(gòu)化數(shù)據(jù),使網(wǎng)上傳輸?shù)臄?shù)據(jù)和文檔符合統(tǒng)一標(biāo)準(zhǔn)。用XML表述的數(shù)據(jù)和文檔,可以很容易地讓所有程序共享。DOM以分層次對象模型來訪問儲存在XML文檔中的信息,生成一棵節(jié)點樹(以XML文檔的結(jié)構(gòu)和信息為基礎(chǔ)),可以通過該樹來訪問所需信息。</p><p> 2.2AJAX與傳統(tǒng)Web服務(wù)的比較</p><p> AJAX確切地說,
22、不是一種新的技術(shù),而是一種技巧,這種技巧是以JavaScript為粘著劑,綜合XHTML,CSS,DOM,XML,XSTL,XMLHttpRequest等已存在的Web開發(fā)技術(shù)而形成的協(xié)作開發(fā)平臺。</p><p> 這個平臺主要是連接傳統(tǒng)的客戶端和Web服務(wù)器的一種引擎,上述的諸多技術(shù)都是為了保證這個引擎能夠?qū)崿F(xiàn)Web訪問時客戶端和服務(wù)器端的異步數(shù)據(jù)傳輸。AJAX技術(shù)在新的Web開發(fā)程序中所處的位置,如圖1所
23、示:</p><p> 圖1:AJAX與傳統(tǒng)Web服務(wù)的比較</p><p> 2.2.1傳統(tǒng)的Web應(yīng)用</p><p> 傳統(tǒng)的Web工作模式非常簡單,就是瀏覽器發(fā)送HTTP請求,然后服務(wù)器接收到請求之后進(jìn)行處理,處理完畢服務(wù)器再傳回一個HTML/XHTML頁面到客戶端瀏覽器上顯示給用戶,簡單的說,傳統(tǒng)Web的工作原理就是“提交請求——執(zhí)行操作——頁面重載
24、”的同步過程,這種工作方式難免會出現(xiàn)用戶等待的情況,得到返回結(jié)果前一直處于等待狀態(tài),無法滿足用戶對系統(tǒng)快速響應(yīng)的要求。</p><p> 2.2.2集成AJAX技術(shù)的Web應(yīng)用</p><p> AJAX與傳統(tǒng)Web的不同之處在于服務(wù)應(yīng)答的異步性,AJAX就是在客戶端的瀏覽器與Web服務(wù)器之間新增了一層引擎,將用戶操作與服務(wù)器響應(yīng)異步化,使客戶端 向服務(wù)器發(fā)出的部分請求不需要等待返回結(jié)
25、果就可以繼續(xù)向服務(wù)器發(fā)出請求,同時這個引擎是在瀏覽器第一次與服務(wù)器進(jìn)行通信時就下載到客戶端的瀏覽器中,直到客戶端與服務(wù)器端通信完畢。</p><p> 2.2.3使用AJAX的優(yōu)勢</p><p> AJAX全稱“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。借助于Ajax,可以在用戶單擊
26、按鈕時,使用JavaScript和DHTML立即更新界面,并向服務(wù)器發(fā)出異步請求,以執(zhí)行更新或查詢數(shù)據(jù)庫。當(dāng)請求返回時,就可以使用JavaScript和CSS來相應(yīng)地更新界面,而不是刷新整個界面。最重要的是,用戶甚至不知道瀏覽器正在與服務(wù)器通信,看起來就像是即時響應(yīng)的。</p><p> 3.應(yīng)用實例設(shè)計與分析</p><p><b> 3.1設(shè)計思想</b>&l
27、t;/p><p> AJAX 不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強的 Web 應(yīng)用程序的技術(shù)。通過JavaScript 中的XMLHttpRequest 對象就可以直接與服務(wù)器進(jìn)行通信。通過這個對象,可在不重載頁面的情況下與 Web 服務(wù)器交換數(shù)據(jù)。AJAX 在瀏覽器與 Web 服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP 請求),這樣就可使網(wǎng)頁從服務(wù)器請求少量的信息,而不是整個頁面。本系統(tǒng)只抽取了
28、多媒體信息中的圖片,音樂,文本,視頻來模擬AJAX在信息發(fā)布系統(tǒng)中是如何對信息進(jìn)行異步刷新,而實現(xiàn)對信息的實時更新。</p><p> 3.2系統(tǒng)的開發(fā)測試環(huán)境</p><p> 系統(tǒng)開發(fā)采用目前流行的AJAX技術(shù)。JavaScript具有跨平臺的特性,能確保系統(tǒng)在各種操作系統(tǒng)上運行,具體開發(fā)環(huán)境如下:</p><p> 開發(fā)平臺:MyEclipse8.6,D
29、reamweaver CS4</p><p> Web服務(wù)器:Tomcat6.0.35</p><p> 編程語言:JavaScript,Java</p><p> 數(shù)據(jù)庫:Oracle11g</p><p> 瀏覽器:IE8.0,firefox</p><p><b> 3.3系統(tǒng)功能設(shè)計<
30、/b></p><p> 系統(tǒng)的主要功能是在于用Ajax實現(xiàn)對信息的實時刷新,使得客戶端能夠隨時得到更新的數(shù)據(jù)。為實現(xiàn)此功能,系統(tǒng)設(shè)計了兩大模塊,即用戶和管理員模塊,管理員可以向數(shù)據(jù)庫上傳數(shù)據(jù),刪除數(shù)據(jù),用戶模塊主要是用來瀏覽系統(tǒng)的數(shù)據(jù),對由管理員上傳到數(shù)據(jù)庫的數(shù)據(jù)可以做到隨時更新隨時查看。這主要是通過在主頁面上注冊onclick事件來向后臺發(fā)送AJAX請求得到數(shù)據(jù)。系統(tǒng)功能模塊如圖2所示:</p&
31、gt;<p><b> 圖2:系統(tǒng)功能模塊</b></p><p> 3.4系統(tǒng)總體Web框架</p><p> 3.4.1系統(tǒng)的分層架構(gòu)設(shè)計</p><p> 系統(tǒng)層次采用三層結(jié)構(gòu),這三個結(jié)構(gòu)相互獨立且又緊密聯(lián)系:</p><p> 第一層表示層:Web瀏覽器</p><p&
32、gt; 在表示層中包含系統(tǒng)的顯示邏輯,位于客戶端。它的任務(wù)是由Web瀏覽器向網(wǎng)絡(luò)上的Web服務(wù)器提出服務(wù)請求,Web服務(wù)器對用戶身份進(jìn)行驗證后用HTTP協(xié)議把所需的主頁傳給客戶端,客戶機接受傳過來的主頁文件,并把它顯示在瀏覽器上。</p><p> 第二層業(yè)務(wù)邏輯層:具有應(yīng)用程序擴展功能的Web服務(wù)器</p><p> 在功能層中包含系統(tǒng)的事務(wù)處理邏輯,位于Web服務(wù)器端,它的任務(wù)是
33、接受用戶的請求,首先需要執(zhí)行相應(yīng)的擴展應(yīng)用程序與數(shù)據(jù)庫進(jìn)行連接,通過SQL等方式向數(shù)據(jù)庫服務(wù)器提出數(shù)據(jù)處理申請,而后等數(shù)據(jù)庫服務(wù)器將數(shù)據(jù)處理的結(jié)果提交給Web服務(wù)器,再由Web服務(wù)器傳回客戶端,在業(yè)務(wù)層運用MVC設(shè)計模式,具有松散的耦合、并行的開發(fā),可擴展性和可重用性良好等眾多優(yōu)點。</p><p> 第三層數(shù)據(jù)訪問層:數(shù)據(jù)庫服務(wù)器</p><p> 在數(shù)據(jù)層中包含系統(tǒng)的數(shù)據(jù)處理邏輯,
34、位于數(shù)據(jù)庫服務(wù)器端,它的任務(wù)是接受Web服務(wù)器對數(shù)據(jù)庫操縱的請求,實現(xiàn)對數(shù)據(jù)庫查詢,修改,更新等功能,把運行結(jié)果提交給Web服務(wù)器。</p><p> 系統(tǒng)整體交互圖,如圖3所示:</p><p> 圖3:系統(tǒng)整體交互圖</p><p> 3.4.2結(jié)合AJAX的MVC模式</p><p> MVC(Model—View—Contro
35、ler,模型—視圖—控制器)至今已經(jīng)被廣泛使用,并被推薦為SUN公司J2EE平臺的設(shè)計模式,其為開發(fā)交互式應(yīng)用系統(tǒng)提供了一個優(yōu)秀的設(shè)計模式,受到越來越多開發(fā)者的歡迎。 MVC結(jié)構(gòu)框架的組成部分包括以下的內(nèi)容:</p><p> ?。?)模型(Model)</p><p> 模型包含了應(yīng)用程序的核心,它封裝了應(yīng)用程序的數(shù)據(jù)結(jié)構(gòu)和事務(wù)邏輯,集中體現(xiàn)了應(yīng)用程序的狀態(tài)。有時候僅包含狀態(tài)信息,因為
36、它并不了解視圖或控制器的信息。JavaBean很適合扮演這個角色,因為其能夠處理絕大部分事務(wù)邏輯和數(shù)據(jù)結(jié)構(gòu),還能與數(shù)據(jù)庫或文件系統(tǒng)進(jìn)行交到,承擔(dān)維護(hù)應(yīng)用程序數(shù)據(jù)的責(zé)任。</p><p> ?。?)視圖(View)</p><p> 視圖實現(xiàn)模塊的外觀,它是應(yīng)用程序的外在表現(xiàn)。它可以訪問模型的數(shù)據(jù),卻不了解模型的情況,同時它也不了解控制的情況 。當(dāng)模型發(fā)生改變時,視圖會得到通知,它可以訪問
37、模型的數(shù)據(jù),但不能改變這些數(shù)據(jù)。</p><p> (3)控制(Controller)</p><p> 可以理解為從用戶接收請求,將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。AJAX在視圖中通過Onreadystatechange事件監(jiān)
38、聽來自模型或控制器的數(shù)據(jù)更新。</p><p> 3.5系統(tǒng)動態(tài)模型分析</p><p> 3.5.1基于AJAX的操作協(xié)議</p><p> AJAX操作協(xié)議如圖4所示:</p><p> 圖4:基于AJAX的操作協(xié)議圖</p><p> 3.6 AJAX與Servlet交互代碼的主要實現(xiàn)</p>
39、;<p> ?。?)AJAX對象的創(chuàng)建:</p><p> //創(chuàng)建AJAX對象,主要把瀏覽器分成兩種,IE和非IE瀏覽器</p><p> createXMLHttpRequest : function() {</p><p> var xmlHttp = null; //http請求對象</p><p><b&g
40、t; try {</b></p><p> if (window.ActiveXObject) {</p><p> //IE提供xmlhttprequest對象的應(yīng)用程序</p><p> var versions = [ "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0"
41、;,</p><p> "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp" ];</p><p> for ( var i = 0; i < versions.length; i++) {</p><p><b> t
42、ry {</b></p><p> xmlHttp = new ActiveXObject(versions[i]);</p><p><b> break;</b></p><p> } catch (onError) {</p><p> //此處什么也不做,繼續(xù)循環(huán)</p><
43、;p><b> }</b></p><p><b> }</b></p><p> //表示當(dāng)前瀏覽器不是IE,如ns,firefox,xmlHttp是內(nèi)置對象</p><p> } else if (window.XMLHttpRequest) {</p><p> xmlHttp
44、 = new XMLHttpRequest();</p><p><b> }</b></p><p> } catch (er) {</p><p> throw new Error("XMLHttp object could not be created.");</p><p><b&
45、gt; }</b></p><p> return xmlHttp;</p><p><b> }</b></p><p> ?。?)發(fā)送AJAX請求:</p><p> AJAX請求發(fā)送的方式有兩種GET和POST,與POST相比,GET更簡單也更快,并具在大部分情況下都能用。但有些情況卻是不能使用
46、GET來發(fā)送請求,如下所示:</p><p> ?、贌o法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)</p><p> ?、谙蚍?wù)器發(fā)送大量數(shù)據(jù)(POST沒有數(shù)據(jù)量的限制)</p><p> ③發(fā)送包含未知字符的用戶輸入時,POST比GET更穩(wěn)定也更可靠</p><p> xmlHttp.open(“get”,url,true);</
47、p><p> xmlHttp.send(null);</p><p> open(method,url,async)中的參數(shù)method為請求的類型,GET或POST,url為文件在服務(wù)器上的位置,即要請求的目的地。Async是設(shè)置請求是異步或是同步,true(異步)或false(同步),一般情況下都會將async設(shè)置為true,因為AJAX的目的就是異步請求數(shù)據(jù),如果設(shè)置為false,那
48、么AJAX也就失去了他的特性。</p><p> Send(string)將請求發(fā)送到服務(wù)器,string僅用于POST請求。</p><p> ?。?)設(shè)置回調(diào)函數(shù):</p><p> xmlHttp.onreadystatechange = function(){</p><p> if (xmlHttp.readyState ==
49、 4) {</p><p><b> //處理正確</b></p><p> if (xmlHttp.status == 200) {</p><p> //用responseText拿到響應(yīng)回來的數(shù)據(jù)</p><p> process(xmlHttp.responseText); </p><
50、;p><b> }</b></p><p><b> } else {</b></p><p> //如果沒有得到響應(yīng),則返回一個null值。</p><p> process(null);</p><p><b> }</b></p><p
51、><b> }</b></p><p> readyState用來描述XMLHttpRequest的請求狀態(tài),總共有5種狀態(tài)(0-4)。</p><p> 0:表示請求未初始化</p><p> 1:服務(wù)器連接已建立</p><p><b> 2:請求已接收</b></p>
52、;<p><b> 3:請求處理中</b></p><p> 4:請求已完成,且響應(yīng)已就緒</p><p> Status用來描述響應(yīng)的狀態(tài),總共有2種結(jié)果。202:表示“OK”,404:表示未找到頁面。</p><p> (4)利用JSON實現(xiàn)對數(shù)據(jù)的操作:</p><p> //為respon
53、se設(shè)置輸出對象</p><p> PrintWriter out = response.getWriter();</p><p> //創(chuàng)建JSON數(shù)組,并且將查詢得到的fileInforList放入數(shù)組中</p><p> JSONArray array = JSONArray.fromObject(fileInforList);</p>&
54、lt;p> //創(chuàng)建JSON對象</p><p> JSONObject obj_json = new JSONObject();</p><p> obj_json.put("showFilesPath", array);</p><p> //將包裝好的JSON對象響應(yīng)到前臺</p><p> out.
55、write(obj_json.toString());</p><p> ?。?)處理從后臺得到的數(shù)據(jù):</p><p> //調(diào)用已經(jīng)包裝好的doGet方法 doGetText(url,queryObj,process)</p><p> url: 表示請求地址</p><p> queryObj:表示請求時需要傳遞的參數(shù)</p
56、><p> process:表示一個用來處理響應(yīng)回來的數(shù)據(jù)的方法</p><p> $Ajax.doGetText("AjaxServlet", {path :path,method : "selectList"}, function(data){</p><p> if(data!=null){</p>&l
57、t;p> var obj_text = eval('('+data+')');</p><p> var objs_filePath=obj_text.showFilesPath;</p><p> var div_text = document.getElementById("content");</p>&l
58、t;p> //判斷div塊中是否已有結(jié)點,如果有,則移除。</p><p> while(div_text.firstChild){</p><p> div_text.removeChild(div_text.firstChild);</p><p><b> } </b></p><p> //循環(huán)響
59、應(yīng)回來的數(shù)據(jù),并且加入到div塊中。</p><p> for(var i=0;i<objs_filePath.length;i++){</p><p> var pNode = document.createElement("p");</p><p> pNode.setAttribute("class",&qu
60、ot;p_pos");</p><p> div_text.appendChild(pNode);</p><p> //alert(objs_filePath[i].fileName);</p><p> var textNode = document.createTextNode(objs_filePath[i].file_name);</
61、p><p> div_text.appendChild(textNode);</p><p><b> } </b></p><p><b> }</b></p><p><b> })</b></p><p> 3.7系統(tǒng)類結(jié)構(gòu)設(shè)計</p&
62、gt;<p> 類圖用來顯示系統(tǒng)類的關(guān)系(如繼承、聚合、關(guān)聯(lián))。對于一個系統(tǒng),如何從問題域中抽象出類,定義類的操作和屬性,并描述類與類之間的關(guān)系,是整個建模過程的關(guān)鍵。系統(tǒng)總體類圖如圖5所示:</p><p> 圖5:系統(tǒng)總功能類圖</p><p> 3.8系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p> 數(shù)據(jù)庫的設(shè)計是整個系統(tǒng)中不可缺少的關(guān)鍵部分,系統(tǒng)各
63、項功能的實現(xiàn),最終通過對數(shù)據(jù)庫進(jìn)行各項操作來完成,因此要實現(xiàn)系統(tǒng)的所有功能,就必須合理的構(gòu)建一個功能完善的數(shù)據(jù)庫。設(shè)計數(shù)據(jù)表的時候充分考慮到系統(tǒng)的特點,使表與表之間的結(jié)構(gòu)清晰而合理。</p><p> 表1:文件保存信息表</p><p><b> 表2:用戶信息表</b></p><p> 3.9系統(tǒng)的主要功能實現(xiàn)</p>
64、<p> 整個系統(tǒng)分為兩大子系統(tǒng),用戶操作系統(tǒng),管理員管理系統(tǒng)。</p><p> 3.9.1基于AJAX技術(shù)的查詢?yōu)g覽模塊,即用戶模塊</p><p> 客戶端是一個公共的信息輸出模塊,即使用戶不注冊也能瀏覽一些網(wǎng)頁的基本信息,數(shù)據(jù)庫的每次更新,客戶端都可以實時接收到來自于服務(wù)端最新數(shù)據(jù),使用用戶可以在最短的時間內(nèi)瀏覽更多的信息,這也是AJAX的最主要的功能,即異步刷新
65、,無需用戶手動刷新整個頁面即可達(dá)到更新的效果。用戶界面的登錄后顯示的用戶名是在整個session共享的一個數(shù)據(jù),如果用戶想離開這個頁面,即點擊右上角的退出注銷掉登錄信息。</p><p><b> 3.9.2管理模塊</b></p><p> 管理模塊由管理員進(jìn)行管理,這里只使用了普通的Servlet技術(shù),用來的數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行增冊改查的功能,是管理員達(dá)到管理數(shù)據(jù)
66、的一個模塊。因為對文檔的管理只建了一張表,所有的信息都是保存在這張表中,對于不同的媒體信息主要是采用保存在不同的文件夾來實現(xiàn)管理的,同時也實現(xiàn)了分布查詢的功能,使用信息更加易于管理。在用戶模塊也是采取路徑來對不同的信息進(jìn)行查詢的。因為這個系統(tǒng)的主要目的是在研究AJAX技術(shù),所以管理員沒有進(jìn)行建表,只是通過簡單的已給定的用戶名和密碼來進(jìn)行登錄驗證。對于管理模塊中除登錄頁面之外的其它頁面采取了保護(hù)措施,通過過濾器來實現(xiàn)對其內(nèi)容的保護(hù)。<
67、;/p><p> 實現(xiàn)了對信息的分頁查詢:</p><p> 對分頁功能實現(xiàn)的截圖如圖6所示:</p><p> 圖6:信息查詢分布圖</p><p> (2)對上傳文件進(jìn)行歸檔處理</p><p> 根據(jù)提交的表單數(shù)據(jù)來獲得并截取文件后綴來判斷文件所屬類別,然后設(shè)置文件存儲徑,使得上傳的文件井井有條,目錄設(shè)置如
68、圖7所示:</p><p><b> 圖7:文檔存放目錄</b></p><p> (3)對文件進(jìn)行刪除</p><p> 在MVC的業(yè)務(wù)層,用事務(wù)來控制數(shù)據(jù)庫和文件進(jìn)行級聯(lián)刪除,如果在進(jìn)行數(shù)據(jù)刪除時,發(fā)生異常,則事務(wù)中止,即文件不會被刪除,達(dá)到了事務(wù)的一致性。</p><p> 4.系統(tǒng)測試運行效果及結(jié)果分析&
69、lt;/p><p> 下面主要給出一些實際運行效果圖并有一些相關(guān)的簡單描述。</p><p><b> 4.1管理模塊</b></p><p> 管理員登錄頁面如圖8所示:</p><p> 圖8:管理員登錄頁面 </p><p> 管理員操作主頁面如圖9所示: </p>&l
70、t;p> 圖9:管理員操作主頁面</p><p> 上傳文檔頁面如圖10所示:</p><p> 圖10:上傳文檔頁面</p><p><b> 4.2用戶瀏覽模塊</b></p><p> 用戶注冊和登錄頁面如圖11所示:</p><p> 圖11:用戶注冊、登錄頁面</
71、p><p> 登錄后主頁面如圖12所示:</p><p> 圖10:登錄后主頁面</p><p> 5.系統(tǒng)性能和安全分析</p><p> 在使用AJAX的過程中,我們不僅需要解決由于引入AJAX可能對原有一些操作產(chǎn)生的影響問題,同時還要考慮AJAX自身可能會出現(xiàn)的一些問題。</p><p><b>
72、 5.1性能問題</b></p><p> 由于AJAX應(yīng)用將大量的運算轉(zhuǎn)移到了客戶端,這就能客戶端帶來了很大的壓力,主要體現(xiàn)在以下幾個方面: </p><p> ?。?)JavaScript是一門解釋型的語言,效率不是很高。它不同于高級編程語言,如Java,C++,C#等。</p><p> ?。?)一次加載數(shù)據(jù)過多顯然會導(dǎo)致頁面打開速度變慢。用戶每
73、次打開AJAX應(yīng)用程序時都需要下載相關(guān)的JavaScript代碼,如果應(yīng)用比較復(fù)雜,這些代碼的體積可能非常龐大,勢必會影響頁面的打開速度,降低用戶體驗。</p><p> ?。?)頻繁的服務(wù)器端調(diào)用也可能帶來服務(wù)器端的性能問題。在AJAX應(yīng)用中,由于其交互特點AJAX需要更多的服務(wù)器調(diào)用,盡管每次調(diào)用的代價比較小,但如果數(shù)量很大,同樣會影響服務(wù)器端的效率。</p><p><b>
74、; 5.2解決方案</b></p><p> JavaScript是一種解釋型語言,其所有的源代碼會被提交到客戶端瀏覽器,因此源代碼的體積會影響下載速度。要改善這種情況,一種方案就是壓縮JavaScript代碼,經(jīng)過良好的壓縮后,一段JavaScript代碼可以有效的減少其大小。刪除無用的注釋和無用空白字符,這點比較好理解,就是減少代碼空間體積。還可以通過設(shè)計良好的代碼格式來使得瀏覽器第一次載入時
75、的負(fù)擔(dān)。很顯然,如果一次載入所有需要的JavaScript代碼會使初始網(wǎng)頁打開速度慢。事實上,有很載入并不是必須的,因此應(yīng)避免這種性能上的浪費,采用動態(tài)載入JavaScript代碼可以解決這一問題。</p><p><b> 5.3安全性分析</b></p><p> 關(guān)于系統(tǒng)的安全問題可能涉及的方面會很多,尤其是在Web應(yīng)用中安全問題顯得更為突出。從本質(zhì)上講,A
76、JAX應(yīng)用程序和傳統(tǒng)Web應(yīng)用程序一樣也會面臨很多的安全問題,許多Web應(yīng)用中可能出現(xiàn)的問題在AJAX應(yīng)用中同樣不可避免,比如服務(wù)器程序編寫不當(dāng)導(dǎo)致的運程代碼執(zhí)行、權(quán)限提升、信息泄漏、內(nèi)容修改等等。這里主要圍繞AJAX的安全性問題進(jìn)行分析,與傳統(tǒng)的Web應(yīng)用不同,AJAX很好的平衡了客戶端和服務(wù)器端的任務(wù),但也正由于此,AJAX程序中更多的控制都被帶到了客戶端,因此可能帶來的安全隱患也更大。這里充當(dāng)分擔(dān)服務(wù)器端任務(wù)的就是在AJAX中大量
77、使用的JavaScript。</p><p><b> 參考文獻(xiàn):</b></p><p> [1]Dave Crane,Eric Pascarello,Darren James.Ajax實戰(zhàn) ajaxcn.org 譯。人民郵電出版社</p><p> [2]Tom Negrino,Dori Smith。JavaScript基礎(chǔ)教程(第7
78、版)陳劍甌 譯。人民郵電出版社</p><p> [3]Ryan Asleson,Nathaniel T.Schutta.Ajax基礎(chǔ)教程 金靈 譯。人民郵電出版社</p><p> [4]Jeremy Keith.JavaScript DOM編程藝術(shù)。王建橋,楊曉云 譯。人民郵電出版社</p><p> [5]Nicholas C.Zakas. JavaSc
79、ript高級程序設(shè)計。李松峰,曹力 譯。人民郵電出版社</p><p> [6]Ben Forta.SQL必知必會(第3版)。鐘銘,劉曉霞 譯。人民郵電出版社</p><p> [7]陳鋒敏。Ajax原理與系統(tǒng)開發(fā)。2009年8月第1次印刷。清華大學(xué)出版社</p><p> [8]柯昌正,黃厚寬。AJAX技術(shù)的原理與應(yīng)用[J]。鐵路計算機應(yīng)用,2007,16(
80、1):27-29 </p><p> [9]馬騎麗。Ajax技術(shù)原理及應(yīng)用[J],計算機光盤軟件與應(yīng)用,2010(10):69-70</p><p> [10]譚力,楊宗源,謝瑾奎。Ajax技術(shù)的數(shù)據(jù)響應(yīng)優(yōu)化[J]。計算機工程,2010,36(7):52-54</p><p> [11]馬綺麗. Ajax技術(shù)原理及就用[期刊論文]-計算機光盤軟件與應(yīng)用2010
81、(10)</p><p> [12]邢永峰.Dreamweaver網(wǎng)頁設(shè)計[M].北京:中國水利水電出版社,2007.</p><p> [13]劉曉化.JSP應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2007.</p><p> [14]趙池龍.軟件工程實踐教程[M].北京:電子工業(yè)出版社,2006.</p><p> [15]王沛
82、.征服AJAX web2.0開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2007</p><p> The Ajax application about Web Information System</p><p> Abstract:Information dissemination and transmission refers to the process which the in
83、formation transmitted from a sender to a receiver.This process includes three basic elements:the sender,the receiver and the transmission channels.With the rapid development of network communication and the computer tech
84、nology,the information transmission in the form of network communication has become a mainstream mode of modern information publishing system and the form of Web services has gradually diversifi</p><p> Key
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- AJAX技術(shù)在金融綜合信息發(fā)布系統(tǒng)中的應(yīng)用.pdf
- ajax技術(shù)在電子商務(wù)分銷平臺中的應(yīng)用[畢業(yè)論文]
- 信息發(fā)布系統(tǒng)中后臺管理業(yè)務(wù)設(shè)計-畢業(yè)論文
- Ajax技術(shù)在地理信息系統(tǒng)中的應(yīng)用.pdf
- Ajax技術(shù)在博客系統(tǒng)中的應(yīng)用.pdf
- 畢業(yè)論文信息技術(shù)在物流管理中的應(yīng)用
- 畢業(yè)論文——軟件信息發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文——軟件信息發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文-地方app信息發(fā)布后臺管理系統(tǒng)
- 基于ajax的信息發(fā)布與反饋系統(tǒng)的設(shè)計_學(xué)位論文
- 畢業(yè)論文——信息技術(shù)在特殊教育中的應(yīng)用初探
- 教學(xué)評價在信息技術(shù)教學(xué)中的應(yīng)用畢業(yè)論文
- 信息技術(shù)在電子商務(wù)中的應(yīng)用畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 畢業(yè)論文信息技術(shù)在物流管理中的應(yīng)用探討
- 畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)——畢業(yè)論文
- 新聞發(fā)布系統(tǒng)(畢業(yè)論文)
- 畢業(yè)論文——新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
評論
0/150
提交評論