祝浩杰
摘 要: Web技術(shù)在全球各領(lǐng)域成為研究熱點(diǎn),越來(lái)越多的研究者將Java技術(shù)運(yùn)用到Web應(yīng)用開(kāi)發(fā)中,并且力圖科學(xué)有效地分析學(xué)習(xí)過(guò)程中出現(xiàn)的問(wèn)題。本文章對(duì)Java技術(shù)在Web開(kāi)發(fā)中的應(yīng)用現(xiàn)狀進(jìn)行了分析,提出研究問(wèn)題:Java的MVC設(shè)計(jì)模式在Web開(kāi)發(fā)中的應(yīng)用和基Java的Web開(kāi)發(fā)技術(shù)的應(yīng)用。最后,提出在JavaWeb開(kāi)發(fā)過(guò)程中存在的問(wèn)題及解決思路。
關(guān)鍵詞: JAVA技術(shù);Web應(yīng)用開(kāi)發(fā)
1 JAVA技術(shù)Web開(kāi)發(fā)現(xiàn)狀及研究方向
1.1 JAVA技術(shù)在Web開(kāi)發(fā)中的應(yīng)用現(xiàn)狀
目前,JAVA已被廣泛應(yīng)用,這個(gè)詞可以用在許多與網(wǎng)絡(luò)有關(guān)的功能上。現(xiàn)在可以用JAVA的形式進(jìn)行很多網(wǎng)絡(luò)上的服務(wù)功能開(kāi)發(fā),比如電子郵件的收發(fā),文件的上傳與下載,進(jìn)行BBS討論等。雖然使用WEB的形貌瀏覽網(wǎng)頁(yè)還存在著一定的弊病,比如傳輸效率的問(wèn)題,但是用軟件的開(kāi)發(fā)者還是習(xí)慣使用,他們會(huì)將所有的應(yīng)用功能統(tǒng)一起來(lái),用戶可以使用熟悉的方式并利用原有的工具進(jìn)行深層次的開(kāi)發(fā)。JAVA有許多的用戶,在軟件業(yè)內(nèi)比較流行,JAVA與網(wǎng)絡(luò)中的WEB一起使用,可以取得很大的效果。JAVA語(yǔ)言可以獨(dú)立于平臺(tái)之外,向用戶、分散式,多線性及安全功能有保證,這些都是JAVA獨(dú)有的功能,因此,它可以作為作息平臺(tái)開(kāi)發(fā)的優(yōu)良工作,可以保證運(yùn)行環(huán)境的穩(wěn)定。JAVA的使用性能非常適合用于網(wǎng)絡(luò)上的開(kāi)發(fā)。用戶瀏覽網(wǎng)頁(yè)是通過(guò)客戶端與服務(wù)器的共同作用完成的??蛻舳伺c服務(wù)器的組合已廣泛用于網(wǎng)絡(luò)上的服務(wù)開(kāi)發(fā)。比如,一臺(tái)計(jì)算機(jī)在上網(wǎng)時(shí)需要與另一臺(tái)建立聯(lián)系時(shí),需要向這臺(tái)計(jì)算機(jī)發(fā)出指令,這個(gè)指令是通過(guò)發(fā)過(guò)去的網(wǎng)頁(yè)實(shí)現(xiàn)的。
1.2 研究方向
本研究聚焦的問(wèn)題是在WEB應(yīng)用開(kāi)發(fā)過(guò)程中, MVC設(shè)計(jì)模式在Web開(kāi)發(fā)中的應(yīng)用以及基于Java的Web開(kāi)發(fā)技術(shù)的應(yīng)用,本文對(duì)其都進(jìn)行了相應(yīng)的研究。
2 MVC設(shè)計(jì)模式在Web開(kāi)發(fā)中的應(yīng)用
2.1 MVC設(shè)計(jì)模式概述
對(duì)于Web應(yīng)用程序來(lái)說(shuō),MVC設(shè)計(jì)模式就是將應(yīng)用程序抽象為輸入、處理、輸出三個(gè)部分.在這三個(gè)部分中,模型層可以看做是應(yīng)用程序的業(yè)務(wù)流程層,這一層主要處理的是應(yīng)用程序的業(yè)務(wù)流程和業(yè)務(wù)數(shù)據(jù),它對(duì)用戶是不可見(jiàn)的,用戶只在視圖層請(qǐng)求并得到應(yīng)用程序返回的結(jié)果,這一操作是怎么處理的,用戶并不用知道,由此不難看出,模型層是MVC設(shè)計(jì)模式的核心,它可以為多個(gè)視圖提供所需要的數(shù)據(jù),這也間接的說(shuō)明了模型具有重用性.視圖層是用戶交互的界面,是用戶和應(yīng)用程序之間信息、數(shù)據(jù)交流的媒介,在Web應(yīng)用程序中它的界面主要是HTML,視圖層也可以進(jìn)行數(shù)據(jù)的收集和處理,但僅限于在視圖本身層面上來(lái)進(jìn)行,它不能像模型層那樣對(duì)業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)流程進(jìn)行操作,但是它可以查看業(yè)務(wù)流程層中的數(shù)據(jù),不能修改.控制器層主要是將模型和視圖進(jìn)行選擇和連接,它的作用相當(dāng)于一個(gè)分發(fā)器,就是根據(jù)接收到的用戶的請(qǐng)求信息,將不同類型的模型和視圖進(jìn)行連接,完成用戶的請(qǐng)求,在這里值得注意的是,模型與視圖間的關(guān)系是多對(duì)多的,如圖1所示。
2.2 MVC設(shè)計(jì)模式的分析
大部分Web應(yīng)用程序都是用像ASP、PHP或者CFML這樣的過(guò)程化語(yǔ)言來(lái)創(chuàng)建的。它們將像數(shù)據(jù)庫(kù)查詢語(yǔ)句這樣的數(shù)據(jù)層代碼和像HTML這樣的表示層代碼混在一起,開(kāi)發(fā)速度往往比較快,經(jīng)驗(yàn)比較豐富的開(kāi)發(fā)者會(huì)將數(shù)據(jù)從表示層分離開(kāi)來(lái),但這通常不是很容易做到的,因而很難體現(xiàn)出業(yè)務(wù)模型的樣子或者模型的重用性。產(chǎn)品設(shè)計(jì)彈性力度很小,很難滿足用戶的變化性需求,MVC從根本上強(qiáng)制性地將它們分開(kāi)。盡管構(gòu)造MVC應(yīng)用程序需要一些額外的工作,但產(chǎn)品的結(jié)構(gòu)清晰,產(chǎn)品的應(yīng)用通過(guò)模型可以得到更好地體現(xiàn)。
2.3 在Web開(kāi)發(fā)中MVC設(shè)計(jì)模式的應(yīng)用
對(duì)于開(kāi)發(fā)Web應(yīng)用,要從頭設(shè)計(jì)并開(kāi)發(fā)出一個(gè)可靠、穩(wěn)定的框架不是一件容易的事情。隨著Web開(kāi)發(fā)技術(shù)的日趨成熟,Struts就是一種優(yōu)秀的框架,它是基于MVC的Web應(yīng)用框架,其實(shí)質(zhì)就是在JSP Modle 2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè)MVC框架。在Struts框架中,模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的JavaBen或EJB組件構(gòu)成,控制器由ActionServlet和Action來(lái)實(shí)現(xiàn)。
視圖是一組JSP文件,在這些JSP文件中沒(méi)有業(yè)務(wù)邏輯,也沒(méi)有模型信息,只有標(biāo)簽,這些標(biāo)簽可以是標(biāo)準(zhǔn)的JSP標(biāo)簽或客戶化標(biāo)簽,如Struts標(biāo)簽庫(kù)中的標(biāo)簽,通常把Struts框架中的ActionForm Bean也劃分到視圖模塊中,ActionForm Bean也是一種Java Bean,除了具有一些Java Bean的常規(guī)方法,還包含一些特殊的方法,用于驗(yàn)證HTML表單數(shù)據(jù)以及將其屬性重新設(shè)置為默認(rèn)值。模型表示應(yīng)用程序的狀態(tài)和業(yè)務(wù)邏輯,對(duì)于大型應(yīng)用,業(yè)務(wù)邏輯通常由Java Bean或EJB組件來(lái)實(shí)現(xiàn)。控制器由Action Servlet類和Action類來(lái)實(shí)現(xiàn)。Action Servlet類是Struts框架中的核心組件,它繼承javax.servlet.http.HttpServlet類,在MVC模型中扮演中央處理器的角色。Action類負(fù)責(zé)調(diào)用模型的方法,更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。
3 基于Java的Web開(kāi)發(fā)技術(shù)的應(yīng)用
3.1 JavaAnnotation
JavaAnnotation是程序的主接口,可以直接獲取相關(guān)目標(biāo)與元素。將JavaAnnotation應(yīng)用在Web技術(shù)開(kāi)發(fā)中,一般是為了排除文檔中出現(xiàn)的依賴性因素。JavaAnnotation能夠?qū)⒊绦蛑谐霈F(xiàn)的內(nèi)容進(jìn)行分類與調(diào)整,最后建立完整的操作流程。通過(guò)發(fā)揮JavaAnnotation中一個(gè)獨(dú)立的系統(tǒng)的控制作用,并大范圍的應(yīng)用在Web技術(shù)的開(kāi)發(fā)中,能夠創(chuàng)造全新的頁(yè)面,且頁(yè)面上承載的內(nèi)容與數(shù)據(jù)和現(xiàn)實(shí)存在是具有一定的關(guān)聯(lián)度的。于是,就可以通JavaAnnotation,對(duì)現(xiàn)實(shí)存在的不同內(nèi)容進(jìn)行不同的層級(jí)和屬性類別劃分。此外,JavaAnnotation的最大優(yōu)勢(shì),就是其控制系統(tǒng)可以進(jìn)行獨(dú)立運(yùn)作,保證Web技術(shù)開(kāi)發(fā)的工作環(huán)境能夠達(dá)到一定的安全等級(jí),從而保證其功能的完整性和可用性。
3.2 JavaDatabaseConnectivity
想要使連接的數(shù)據(jù)庫(kù)能夠隨時(shí)進(jìn)行訪問(wèn),就需JavaDatabaseConnectivity技術(shù)進(jìn)行支持。在Web技術(shù)的開(kāi)發(fā)過(guò)程中,需要對(duì)程序進(jìn)行反復(fù)性的調(diào)節(jié)和測(cè)試,從而保證程序能夠克服自身不足并逐漸成為完善的程序,進(jìn)而不斷提升客戶的使用體驗(yàn)。通過(guò)JavaDatabaseConnectivity技術(shù)進(jìn)行程序的修改,可以避免數(shù)據(jù)庫(kù)連接中斷的問(wèn)題發(fā)生,保證Web技術(shù)開(kāi)發(fā)能夠穩(wěn)步進(jìn)行。根據(jù)現(xiàn)在的發(fā)展?fàn)顩r來(lái)看,想要確保程序中數(shù)據(jù)庫(kù)的持續(xù)、穩(wěn)定連接,就需要運(yùn)用Java的特定接口,實(shí)現(xiàn)工具的連接和數(shù)據(jù)庫(kù)的訪問(wèn),如圖2所示。
3.3 Java技術(shù)在Web開(kāi)發(fā)技術(shù)設(shè)計(jì)的應(yīng)用
Web技術(shù)的發(fā)展離不開(kāi)Java技術(shù)的幫助。Java Annotation作為程序中的主接口,可以將需要的目標(biāo)和相關(guān)元素直接獲取出來(lái)。Web技術(shù)在發(fā)展過(guò)程中如果運(yùn)用了Java Annotation,可以幫助其將文檔中的一些依賴的元素進(jìn)行排除掉。將程序當(dāng)中的內(nèi)容進(jìn)行調(diào)整和分類處理,最終實(shí)現(xiàn)完整的操作流程的建立。通過(guò)Java Annotation的應(yīng)用幫助Web在數(shù)據(jù)的處理上減少了依賴性的元素,能夠盡快的實(shí)現(xiàn)整個(gè)操作流程的建立。同時(shí),由于對(duì)于Java Annotation的應(yīng)用,實(shí)現(xiàn)了對(duì)于獨(dú)立系統(tǒng)的控制,并且這種技術(shù)在Web技術(shù)中的廣泛推廣,也可以建立一個(gè)全新的頁(yè)面,并且實(shí)現(xiàn)頁(yè)面中的各種內(nèi)容與各種數(shù)據(jù)和現(xiàn)實(shí)都是緊密相關(guān)的。然后,我們就可以繼續(xù)利用Java Annotation對(duì)頁(yè)面中的內(nèi)容進(jìn)行種類和層次的劃分。并且Java Annotation的運(yùn)用,不僅可以實(shí)現(xiàn)數(shù)據(jù)的劃分和提高操作流程,還能夠幫助整個(gè)系統(tǒng)進(jìn)行獨(dú)立的運(yùn)轉(zhuǎn),當(dāng)系統(tǒng)進(jìn)行獨(dú)立運(yùn)轉(zhuǎn)時(shí),也在一定程度上幫助Web技術(shù)實(shí)現(xiàn)了相對(duì)環(huán)境下的運(yùn)行安全,保障了其自身的可用性和完整性。
為了保障對(duì)于連接的數(shù)據(jù)庫(kù)進(jìn)行隨時(shí)的訪問(wèn),方便數(shù)據(jù)的處理。這就需要Java Database Connectivity進(jìn)行提供技術(shù)的支持。Java Database Connectivity是Java數(shù)據(jù)庫(kù)連接技術(shù)的簡(jiǎn)稱。主要功能是幫助提供連接各類的常用數(shù)據(jù)庫(kù)、處理結(jié)果和執(zhí)行SQL語(yǔ)句。由于Web技術(shù)的開(kāi)發(fā)過(guò)程不是一蹴而就的,是需要在對(duì)程序不停的進(jìn)行測(cè)試、調(diào)試和試驗(yàn)過(guò)程中實(shí)現(xiàn)最終的創(chuàng)新結(jié)果。在Web技術(shù)中應(yīng)用Java Database Connectivity就可以真正的避免的數(shù)據(jù)庫(kù)連接中斷這一問(wèn)題的出現(xiàn),也可以保證Web技術(shù)在進(jìn)行開(kāi)發(fā)和研究時(shí)能夠毫無(wú)顧慮的進(jìn)行深入而又反復(fù)的探索。當(dāng)Java Database Connectivity利用技術(shù)手段幫助Web技術(shù)在進(jìn)行技術(shù)研發(fā)的過(guò)程中,減少了數(shù)據(jù)庫(kù)的連接中斷現(xiàn)象,也就大大的提高了Web新技術(shù)的研發(fā)和創(chuàng)新。在當(dāng)今社會(huì)飛速發(fā)展的過(guò)程中,對(duì)于互聯(lián)網(wǎng)技術(shù)要求也就越來(lái)越高,使得互聯(lián)網(wǎng)技術(shù)的發(fā)展在世界上也十分迅速,人們對(duì)于互聯(lián)網(wǎng)技術(shù)的要求越來(lái)越高,這就需要Web技術(shù)不斷的更新?lián)Q代,創(chuàng)造出更適合時(shí)代需要的技術(shù)水平,以滿足社會(huì)發(fā)展的需要
4 JavaWeb開(kāi)發(fā)過(guò)程中存在的問(wèn)題及解決思路
現(xiàn)階段,開(kāi)發(fā)者在進(jìn)行JavaWeb開(kāi)發(fā)的過(guò)程中,受到的限制較少,缺少相對(duì)系統(tǒng)且科學(xué)的體系來(lái)對(duì)開(kāi)發(fā)者或管理開(kāi)發(fā)人員進(jìn)行控制,這將直接會(huì)影響到JavaWeb的開(kāi)發(fā)質(zhì)量。一般情況下,由于JavaWeb開(kāi)發(fā)初期的目的相對(duì)模糊,使得在后面的開(kāi)發(fā)過(guò)程中,與原始的設(shè)計(jì)理想漸行漸遠(yuǎn),再加上開(kāi)發(fā)者對(duì)JavaWeb開(kāi)發(fā)結(jié)果缺少一定程度的前瞻性,所以往往會(huì)出現(xiàn)資源浪費(fèi)的情況。與此同時(shí),伴隨著JavaWeb開(kāi)發(fā)的難度與復(fù)雜程度逐漸變大,再加上上述問(wèn)題的存在,則會(huì)使得JavaWeb系統(tǒng)發(fā)展停滯不前,這也將直接導(dǎo)致開(kāi)發(fā)者的開(kāi)發(fā)興趣與工作熱情直線降低。針對(duì)這一情況,迫切需要科學(xué)、系統(tǒng)的組織管理體系。一般來(lái)講,伴 隨著JavaWeb開(kāi)發(fā)技術(shù)的不斷發(fā)展與進(jìn)步,其規(guī)模也在不斷變大,應(yīng)用頻率也越來(lái)越多。我們應(yīng)該看到,與過(guò)去相比較,JavaWeb開(kāi)發(fā)已經(jīng)越來(lái)越復(fù)雜,難度系數(shù)也不斷增加。針對(duì)JavaWeb開(kāi)發(fā)的復(fù)雜程度,甚至有人將其看作是一個(gè)普通的工程項(xiàng)目。之所以稱其為工程,其重點(diǎn)在于強(qiáng)調(diào)項(xiàng)目的工程性,否則很容易在后期開(kāi)發(fā)的過(guò)程中,與原先預(yù)設(shè)的目標(biāo)越來(lái)越遠(yuǎn),甚至相背離。作為一個(gè)系統(tǒng)的工程,JavaWeb開(kāi)發(fā)不是一個(gè)人的事情,它更多的是要借助大家的力量才能從概念變?yōu)楝F(xiàn)實(shí)。而且在這個(gè)里面,每個(gè)人都是獨(dú)立又互相依靠的,大家各司其職,在同一個(gè)目標(biāo)的促動(dòng)下工作。
5結(jié)語(yǔ)
本研究對(duì)JAVA技術(shù)Web開(kāi)發(fā)現(xiàn)狀及研究方向進(jìn)行了調(diào)研,探討了MVC設(shè)計(jì)模式概述、JAVA的MVC設(shè)計(jì)模式的分析和在Web開(kāi)發(fā)中JAVA的MVC設(shè)計(jì)模式的應(yīng)用。選取了JavaAnnotation、JavaDatabaseConnectivity兩個(gè)基于Java的web開(kāi)發(fā)技術(shù)中的應(yīng)用,提出了Java技術(shù)在Web開(kāi)發(fā)技術(shù)設(shè)計(jì)的應(yīng)用,最后總結(jié)了JavaWeb開(kāi)發(fā)過(guò)程中存在的問(wèn)題及解決思路。
隨著社會(huì)的不斷發(fā)展,互聯(lián)網(wǎng)技術(shù)也在影響著人類社會(huì)的發(fā)展和變革。由于互聯(lián)網(wǎng)技術(shù)的普遍應(yīng)用,人類對(duì)于互聯(lián)網(wǎng)技術(shù)的要求也就越來(lái)越高,這就要求Web技術(shù)要不斷的創(chuàng)新和發(fā)展以適應(yīng)新時(shí)代的要求。
參考文獻(xiàn)
[1]張曦.基于Java的主流Web開(kāi)發(fā)框架的研究和整合[D].北京工業(yè)大學(xué)碩士學(xué)位論文,2008.
[2]王歡.基于J2EE的Web應(yīng)用架構(gòu)研究與設(shè)計(jì)[J].中國(guó)管理信息化,2012.
[3]王海濤,賈宗璞.基于Struts和Hibernate的Web應(yīng)用開(kāi)發(fā)[J].計(jì)算機(jī)工程,2011.
[4]王保羅.Java面向?qū)ο蟪绦蛟O(shè)計(jì)[M].北京:清華大學(xué)出版社,2003.