汪君宇
摘 要:隨著我國(guó)科學(xué)技術(shù)的發(fā)展和進(jìn)步,這讓Java Server Pages(JSP)技術(shù)也得到了進(jìn)一步大的發(fā)展和應(yīng)用,其的應(yīng)用不但為構(gòu)建動(dòng)態(tài)網(wǎng)頁(yè),提供了一種便利的方法,同時(shí)還在很大程度上對(duì)Web應(yīng)用軟件,還有開(kāi)發(fā)其系統(tǒng)的工作進(jìn)行了有效的簡(jiǎn)化。實(shí)施JSP技術(shù),可以在開(kāi)發(fā)Web應(yīng)用軟件系統(tǒng)上,非常的便捷,而且還可以將有著強(qiáng)大功能的動(dòng)態(tài)交至Web站點(diǎn)得到有效的構(gòu)建。文章重點(diǎn)分析了JSP技術(shù)的特征,及其在Web應(yīng)用軟件開(kāi)發(fā)中的實(shí)際應(yīng)用,旨在為開(kāi)發(fā)Web應(yīng)用系統(tǒng)提供相應(yīng)的參考。
關(guān)鍵詞:JSP 技術(shù);Web 應(yīng)用軟件;開(kāi)發(fā);應(yīng)用
中圖分類(lèi)號(hào):TP319 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2018)16-0158-03
Abstract: With the development and progress of science and technology in China, the technology of Java Server Pages (JSP) has been further developed and applied. Its application not only provides a convenient method for building dynamic Web pages, and at the same time, to a large extent, the Web application software, as well as the development of its system has been effectively simplified. The implementation of JSP technology can be in the development of Web application software system, very convenient, but also has a powerful function of the dynamic hand over to the Web site to get effective construction. This paper mainly analyzes the characteristics and characteristics of JSP technology and its practical application in the development of Web application software, in order to provide the corresponding reference for the development of Web application system.
Keywords: JSP technology; Web application software; development; application
從最近幾年來(lái)發(fā)展的趨勢(shì)來(lái)看,計(jì)算機(jī)還有網(wǎng)絡(luò)技術(shù)得到了明顯的發(fā)展,而且已經(jīng)得到了廣泛的普及,在計(jì)算機(jī)軟件使用規(guī)模越來(lái)越大的背景下,這讓傳統(tǒng)的生產(chǎn)還有生活方式都發(fā)生了翻天覆地的變化?;诰W(wǎng)絡(luò)通信的Web應(yīng)用軟件,開(kāi)始滲透在人們生活的方方面面,并為人們帶來(lái)了便捷。隨著日趨成熟的JSP技術(shù),其在Web開(kāi)發(fā)軟件中也開(kāi)始有了非常多的應(yīng)用。根據(jù)實(shí)踐結(jié)果顯示,通過(guò)對(duì)JSP技術(shù)的使用,然后達(dá)到開(kāi)發(fā)Web應(yīng)用軟件系統(tǒng)的目的,已然成為了以后有關(guān)領(lǐng)域主要的發(fā)展方向。
1 JSP技術(shù)概述
1.1 JSP技術(shù)簡(jiǎn)介
JSP主要是由Sun公司開(kāi)發(fā)的,動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)的開(kāi)發(fā)主要是基于Java語(yǔ)言上實(shí)現(xiàn)的,它許可在HTML和XML文檔中,將Java代碼邏輯嵌入到其中,可以這樣說(shuō),在一定程度上,為動(dòng)態(tài)網(wǎng)頁(yè)的內(nèi)容創(chuàng)建和管理,帶來(lái)了非常極大的便利。和PHP還有ASP工作機(jī)制對(duì)比存在一定的差異,在頁(yè)面執(zhí)行的過(guò)程中,JSP頁(yè)面并不是解釋式的,而是編譯式的。第一次對(duì)JSP文件進(jìn)行調(diào)用,事實(shí)上是一個(gè)對(duì)編譯Java Servlet執(zhí)行的過(guò)程。當(dāng)瀏覽器將JSP文件這一請(qǐng)求發(fā)給服務(wù)器時(shí),這個(gè)時(shí)候的服務(wù)器,直接采用相對(duì)應(yīng)的Servlet結(jié)果作為應(yīng)答。
JSP所提供的腳本語(yǔ)言和ASP技術(shù)有所不同的是,其更多的是以Java語(yǔ)言為主。除此之外,JSP還可以非常便利地對(duì)Java Bean進(jìn)行存取重用。同時(shí)對(duì)于Web頁(yè)面內(nèi)容的生成和表現(xiàn),JSP還可以進(jìn)行徹底的分離。這樣不但將HTML所具有的強(qiáng)大功能得到了充分的發(fā)揮,還能夠防止重復(fù)勞動(dòng)的情況發(fā)生,將整體效率得到顯著的提高。
1.2 JSP運(yùn)行模型
在HTML文檔中,JSP是可以將腳本語(yǔ)言嵌入到其中的??蛻舳嗽诮邮盏絺魉偷腤eb頁(yè)面之前,可以在服務(wù)器端上得到對(duì)JSP語(yǔ)法的分析,并且被當(dāng)成一個(gè)Servlet實(shí)施處理。JSP形式的后綴,將體現(xiàn)在擁有腳本語(yǔ)言的HTML文件中。通過(guò)對(duì)Java語(yǔ)言的使用,JSP將被作為缺省腳本語(yǔ)言。這就表示能夠通過(guò)對(duì)Java所提供的強(qiáng)大功能進(jìn)行利用,從而實(shí)現(xiàn)對(duì)腳本編寫(xiě)的目的。
1.2.1 請(qǐng)求一個(gè)JSP
對(duì)于事先已經(jīng)定義好的任務(wù),比如存取數(shù)據(jù)庫(kù)等,就可以通過(guò)JSP對(duì)可重用的Java Bean進(jìn)行調(diào)用,然后將獲取到的結(jié)果設(shè)置屬性為Bean。通過(guò)對(duì)這些Java Bean的使用,JSP可以生成狀態(tài),同時(shí)并將其返回至客戶端。開(kāi)發(fā)JSP者只關(guān)注Java Bean的接口。
1.2.2 請(qǐng)求一個(gè)Servlet
它生成響應(yīng)所要包括的動(dòng)態(tài)信息。此 Servlet通過(guò)對(duì)一個(gè) JSP的激活,從而用來(lái)對(duì)Servlet所生成的內(nèi)容進(jìn)行表示。
動(dòng)態(tài)內(nèi)容在JSP的第一種存取模型中,其生成的實(shí)現(xiàn)主要是基于頁(yè)面文件中的Java Bean而實(shí)現(xiàn)的,并且由JSP負(fù)責(zé)完成內(nèi)容的表示。
客戶端在JSP請(qǐng)求模型中,向其發(fā)出一個(gè)請(qǐng)求。由特定的Java Bean組件接收J(rèn)SP轉(zhuǎn)交的請(qǐng)求,并將請(qǐng)求參數(shù)自動(dòng)地通過(guò)Java Bean的introspection類(lèi),向Java Bean組件進(jìn)行傳遞。通過(guò)對(duì)Java Bean組件的詢問(wèn),然后JSP獲取結(jié)果。假如Java Bean組件正好將Servlet接口目標(biāo)實(shí)現(xiàn),那么Servlet的service方法就可以被任何一個(gè)請(qǐng)求調(diào)用。對(duì)于Java Bean組件的屬性,如果JSP每次進(jìn)行詢問(wèn)時(shí),Java Bean組件都能夠?qū)嵤﹦?dòng)態(tài)的計(jì)算處理,同時(shí)返回計(jì)算的結(jié)果。借助標(biāo)準(zhǔn)的Java Bean屬性,JSP獲取其讀取器上的處理結(jié)果。并將所獲取到的結(jié)果,借助HTML文件形式展現(xiàn)出來(lái)。
另外一種模型如下圖所示:
在顯示的JSP請(qǐng)求模型當(dāng)中,這個(gè)時(shí)候Servlet會(huì)接收到客戶端發(fā)出的一個(gè)請(qǐng)求,而對(duì)于HTML頁(yè)面上的內(nèi)容,則是通過(guò)Servlet負(fù)責(zé)生成并進(jìn)行顯示。Servlet在模型中,通過(guò)JDBC操作數(shù)據(jù)庫(kù),從而得到需要的數(shù)據(jù)。在Java Bean中對(duì)結(jié)果數(shù)據(jù)進(jìn)行封裝,然后由JSP負(fù)責(zé)接收所傳遞的Java Bean。在HTML文件中,由JSP將Servlet生成的數(shù)據(jù)顯示在其文件上。在這個(gè)例中,數(shù)據(jù)的產(chǎn)生由Servlet完全負(fù)責(zé),而數(shù)據(jù)的表示則是由JSP完全負(fù)責(zé)。
1.3 JSP技術(shù)的優(yōu)越性
對(duì)于開(kāi)發(fā)和設(shè)計(jì)人員來(lái)講,通過(guò)對(duì)此技術(shù)的利用,能夠較好的創(chuàng)建和維護(hù)動(dòng)態(tài)網(wǎng)頁(yè),特別是Web應(yīng)用軟件系統(tǒng)。在Java技術(shù)中,可以說(shuō)JSP技術(shù)是不可或缺的一部分,其能夠?qū)⑼脚_(tái)相獨(dú)立的Web應(yīng)用程序,以較快的速度開(kāi)發(fā)出來(lái),并分離出系統(tǒng)內(nèi)容中的用戶界面,這樣,在底層動(dòng)態(tài)內(nèi)容未有任何變化的情況下,開(kāi)發(fā)和設(shè)計(jì)人員,可以改變網(wǎng)頁(yè)的整體布局。
1.4 平臺(tái)和服務(wù)器之間的獨(dú)立性
所建立的JSP,是基于服務(wù)器和平臺(tái)之間互相獨(dú)立的基礎(chǔ)上,其所具有的輸入支持,主要是各種工具包進(jìn)行提供的,而對(duì)于數(shù)據(jù)庫(kù)產(chǎn)品,還有服務(wù)器組件等都是由開(kāi)發(fā)商負(fù)責(zé)提供的,寫(xiě)入1次后,可以在任何和Java語(yǔ)法結(jié)構(gòu)相滿足的環(huán)境中運(yùn)行。事實(shí)上,不管在何種Web服務(wù)器上,JSP技術(shù)都可以運(yùn)行,而且對(duì)于不同的開(kāi)發(fā)商所提供的各種類(lèi)型的工具包,都可以提供相應(yīng)的支持,可以這樣說(shuō),此技術(shù)可以將傳統(tǒng)單純對(duì)某一平臺(tái),或者是開(kāi)發(fā)商依附的情況得到較為顯著的改善。
1.5 JSP技術(shù)擁有標(biāo)簽擴(kuò)展性
此技術(shù)的應(yīng)用,能夠讓開(kāi)發(fā)者擴(kuò)展,或者是應(yīng)用JSP標(biāo)簽,開(kāi)發(fā)人員可以定制標(biāo)簽庫(kù),因此,對(duì)于同XML相兼容的標(biāo)簽技術(shù),作為網(wǎng)頁(yè)制作人員來(lái)講,是可以對(duì)其進(jìn)行最大化利用的,因而這就在較大程度上,降低了依賴腳本語(yǔ)言的程度。在網(wǎng)頁(yè)制作人員制作期間等,也因?yàn)槠渌鶕碛械臉?biāo)簽定制技術(shù),而大大的降低了工作的復(fù)雜性。
1.6 JSP組件擁有跨平臺(tái)可重用性
JSP的所有組件,均擁有跨越平臺(tái)可重用性,此組件可以訪問(wèn)傳統(tǒng)數(shù)據(jù)庫(kù),并能夠根據(jù)分布式系統(tǒng)模式,實(shí)現(xiàn)在Unix等平臺(tái)上運(yùn)行的目的。對(duì)于Web應(yīng)用軟件的開(kāi)發(fā)而言,將JSP組件作為基礎(chǔ)的方法,可以將其的開(kāi)發(fā)過(guò)程速度得到顯著的提高,在其已有技能還有開(kāi)發(fā)中,保障各組織可以獲取平衡。
2 Web應(yīng)用軟件體系架構(gòu)
對(duì)比以往,Internet的瀏覽需求有著明顯的提高,因此C/S架構(gòu)明顯已經(jīng)不符合開(kāi)發(fā)的需求,由此瀏覽器/服務(wù)器(B/S),作為一種新穎的軟件體系架構(gòu),其正好在這一期間出現(xiàn),可以說(shuō),很短的時(shí)間內(nèi)就獲取了非常大的發(fā)展。B/S體系結(jié)構(gòu),通過(guò)對(duì)客戶端工作的簡(jiǎn)化,然后達(dá)到了對(duì)客戶端的優(yōu)化,即只需要對(duì)極少的客戶端應(yīng)用軟件進(jìn)行安裝和配置,而服務(wù)器將需要承擔(dān)大多數(shù)的工作,對(duì)于請(qǐng)求執(zhí)行應(yīng)用程序,還有訪問(wèn)數(shù)據(jù)庫(kù)方面,全部交給服務(wù)器完成即可。
2.1 訪問(wèn)層
訪問(wèn)層主要是位于客戶端,功能是某種請(qǐng)求的發(fā)出,即從Web瀏覽器Internet的Web服務(wù)器發(fā)出,由Web服務(wù)器處理之后,并將結(jié)果向?yàn)g覽器反饋。
2.2 Web服務(wù)器層
Web服務(wù)器層主要是位于Web服務(wù)器端,功能是對(duì)應(yīng)用程序所發(fā)出的請(qǐng)求進(jìn)行接收,和通過(guò)連接數(shù)據(jù)庫(kù),然后將操作數(shù)據(jù)的申請(qǐng),發(fā)送給數(shù)據(jù)庫(kù)服務(wù)器,等待處理數(shù)據(jù)的結(jié)果。
2.3 數(shù)據(jù)庫(kù)層
數(shù)據(jù)庫(kù)層主要是位于數(shù)據(jù)庫(kù)服務(wù)器端,功能是對(duì)于Web服務(wù)器,往數(shù)據(jù)庫(kù)發(fā)送的事務(wù)處理請(qǐng)求進(jìn)行接收,實(shí)現(xiàn)一系列更新數(shù)據(jù)的操作,比如,查詢數(shù)據(jù)庫(kù)、插入和刪除等,并且提交到Web服務(wù)器,最終運(yùn)行的結(jié)果。
B/S結(jié)構(gòu)有效減輕了客戶機(jī)的負(fù)擔(dān),將整個(gè)系統(tǒng)的性能得到了顯著的提高,這樣對(duì)于維護(hù)人員來(lái)講,不用每天奔波于維護(hù)和升級(jí)的繁重工作中,同時(shí)也無(wú)需在每個(gè)客戶機(jī)之間,勞累于每個(gè)程序的維護(hù)工作,而是將更多的精力,放在更新Web服務(wù)器上的程序工作中。B/S架構(gòu)中層和層之間有著獨(dú)立的邏輯,互相不會(huì)產(chǎn)生干擾,也即任何一層的變化,都會(huì)對(duì)其它兩層的功能產(chǎn)生影響,從根本上將兩層C/S架構(gòu)的缺陷得到了改善,可以說(shuō)在應(yīng)用系統(tǒng)體系架構(gòu)中,有一次非常重要的變革。
3 基于JSP技術(shù)的Web應(yīng)用軟件開(kāi)發(fā)技術(shù)分析
由于是基于Java語(yǔ)言基礎(chǔ),才得以實(shí)現(xiàn)JSP技術(shù)的,因此其有著非常好的適應(yīng)能力,同時(shí),通過(guò)和JAVA Enterprise API的有效結(jié)合,可以將Web應(yīng)用軟件得到較好的創(chuàng)建,而且還可以保障Web應(yīng)用軟件的性能。作為Web的開(kāi)發(fā)還有設(shè)計(jì)人員來(lái)講,通過(guò)對(duì)JSP技術(shù)的利用,可以將更多的精力放在處理應(yīng)用邏輯方面,因而可以較大程度的簡(jiǎn)化底層邏輯的復(fù)雜性,將所開(kāi)發(fā)的 Web應(yīng)用軟件的質(zhì)量得到顯著的提高,而且這對(duì)于設(shè)計(jì)人員也是很大的福利,即降低了其開(kāi)發(fā)的難度。因此,同Web應(yīng)用軟件的其他開(kāi)發(fā)技術(shù)相比較,如ASP開(kāi)發(fā)技術(shù),JSP技術(shù)在這方面有著比較顯著的優(yōu)勢(shì)。
根據(jù)JSP技術(shù)為基礎(chǔ)的Web應(yīng)用體系結(jié)構(gòu)可以得知,Web應(yīng)用軟件在以JSP技術(shù)為基礎(chǔ)開(kāi)發(fā)期間,各個(gè)部分之間的關(guān)系、還有整個(gè)體系中的功能等,如JSP技術(shù)及JDBC等都非常的清楚。
本文將著手于技術(shù)層面進(jìn)行分析,對(duì)三層Web應(yīng)用軟件開(kāi)發(fā),以JSP技術(shù)為技術(shù)所需要的部件,還有所需要的基本技術(shù)實(shí)施了分析。其中,JDBC技術(shù)可以便捷的將已有的數(shù)據(jù)庫(kù)作為基礎(chǔ),從而創(chuàng)建Web接口,JDBC技術(shù)等,可以將一個(gè)方便交互擁有各種信息含量的大型Web應(yīng)用體系進(jìn)行較好的構(gòu)建。經(jīng)過(guò)實(shí)踐證明,此Web應(yīng)用軟件體系,擁有著較好的使用效果,基于此,不管是在推廣還是應(yīng)用方面,都有著重要的現(xiàn)實(shí)意義。
4 應(yīng)用實(shí)例
基于本文模型的JSP技術(shù),我們?cè)赑rism報(bào)表管理系統(tǒng)中進(jìn)行了采用。此系統(tǒng)主要針對(duì)Internet系統(tǒng),將Unix作為服務(wù)器平臺(tái),客戶機(jī)平臺(tái)則采用Windows NT。對(duì)于Internet上實(shí)施報(bào)表的瀏覽、編輯還有查詢等,此系統(tǒng)提供了充分的支持。
4.1 系統(tǒng)概述
此系統(tǒng)的體系結(jié)構(gòu)主要以集中式為主,實(shí)施基于Internet的服務(wù)器/客戶機(jī)結(jié)構(gòu),服務(wù)器和客戶機(jī)之前在實(shí)現(xiàn)連接和數(shù)據(jù)通信上,以TCP/IP協(xié)議作為前提,從而達(dá)到此目標(biāo)的實(shí)現(xiàn)。
系統(tǒng)主要包括服務(wù)器端上的服務(wù)程序(Servlet和JSP),還有客戶機(jī)上的報(bào)表程序的操作。每個(gè)客戶機(jī)上各自運(yùn)行的報(bào)表操作程序,都是無(wú)差異的,對(duì)于服務(wù)器上的表格和數(shù)據(jù),負(fù)責(zé)從實(shí)時(shí)的獲取并且進(jìn)行顯示。用戶能夠編輯、修改報(bào)表??蛻魴C(jī)發(fā)出請(qǐng)求后,服務(wù)器在接收到請(qǐng)求之后,首先需要對(duì)相應(yīng)的Servlet進(jìn)行啟動(dòng),借助JDBC,對(duì)報(bào)表式樣文件數(shù)據(jù)庫(kù)等進(jìn)行查詢,并在Java Bean的屬性中,將所查詢到的結(jié)果進(jìn)行封裝。JSP借助get property方法,最終獲取到Java Bean的屬性值,在相應(yīng)的格式文件中,寫(xiě)入結(jié)果數(shù)據(jù),并往客戶端發(fā)送進(jìn)行顯示。
4.2 系統(tǒng)的設(shè)計(jì)思想
在對(duì)此系統(tǒng)進(jìn)行設(shè)計(jì)時(shí),為了可以將數(shù)據(jù)內(nèi)容的操作等最大可能性的區(qū)分開(kāi)來(lái),我們對(duì)本文中提到的第2種模型實(shí)施了選擇,并進(jìn)行了細(xì)微的改善。在第1種模型中,因?yàn)榫枰狫SP文件來(lái)對(duì)響應(yīng)和請(qǐng)求進(jìn)行回應(yīng),因此非常有必要將眾多的Jawa代碼加入到其中,負(fù)責(zé)對(duì)響應(yīng)和請(qǐng)求進(jìn)行處理。雖然數(shù)據(jù)的處理在此模型中,主要負(fù)責(zé)是以Java Bean為主的,但是因?yàn)閷⒎浅6嗟哪_本代碼,加入到了JSP文件中,造成JSP文件在對(duì)數(shù)據(jù)內(nèi)容表示進(jìn)行負(fù)責(zé)的同時(shí),還要對(duì)Java Bean的調(diào)用進(jìn)行負(fù)責(zé),這就在一定程度上,造成未有清晰的邏輯結(jié)構(gòu),增加了維護(hù)的復(fù)雜程序?;诖宋覀冃枰梢赃x擇第2種模型。改善之處,就在于我們對(duì)于第2種模型Servlet,直接參與處理數(shù)據(jù)的做法進(jìn)行了改善,而是借助一個(gè)Java Bean組件負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行處理,由Servlet負(fù)責(zé)對(duì)此Java Bean進(jìn)行調(diào)用,為了對(duì)JSP文件所調(diào)用的Java Bean進(jìn)行有效地區(qū)別,我們稱其組件為數(shù)據(jù)處理Bean。在此系統(tǒng)中作為一個(gè)控制程序,Servlet負(fù)責(zé)對(duì)于來(lái)自客戶端的全部請(qǐng)求進(jìn)行接收,調(diào)用數(shù)據(jù)對(duì)Bean進(jìn)行處理,從而對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢索,獲得報(bào)表的數(shù)據(jù)等,并在相應(yīng)的Java Bean屬性中,對(duì)生成的數(shù)據(jù)進(jìn)行封裝。Servlet還負(fù)責(zé)適當(dāng)?shù)恼{(diào)用JSP文件,以及打印處理報(bào)表。Servlet將控制模塊得到了有效的構(gòu)成。因此,此模型可以將數(shù)據(jù)進(jìn)行嚴(yán)格的表示和生成,讓系統(tǒng)更具有清楚的邏輯結(jié)構(gòu)。
5 結(jié)束語(yǔ)
實(shí)際在開(kāi)發(fā)Web應(yīng)用軟件的過(guò)程中,應(yīng)該將現(xiàn)實(shí)的需求作為主要的參考依據(jù),通過(guò)和系統(tǒng)開(kāi)發(fā)的具體情況相結(jié)合,系統(tǒng)的設(shè)計(jì)和建模Web應(yīng)用軟件。實(shí)施Java編程語(yǔ)言,和JSP開(kāi)發(fā)技術(shù),所構(gòu)建的三層Web應(yīng)用軟件系統(tǒng)進(jìn)行密切的結(jié)合,這已經(jīng)成為未來(lái)WWB軟件應(yīng)用軟件開(kāi)發(fā)的主要方向。
參考文獻(xiàn):
[1]潘國(guó)榮.基于JSP技術(shù)的常用開(kāi)發(fā)模式分析及運(yùn)用[J].電腦知識(shí)與技術(shù),2016,12(16):124-126.
[2]張睿涵.基于經(jīng)典MVC架構(gòu)的實(shí)現(xiàn)Web應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)碼世界,2017(4):17-18.
[3]卜慶禹.基于Spring的MVC框架實(shí)現(xiàn)Web應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)碼世界,2017(4):21-22.
[4]高祖彥.軟件工程思想在JSP程序設(shè)計(jì)教學(xué)中的應(yīng)用[J].時(shí)代教育,2017(09):211.
[5]蔣丹.淺談Web應(yīng)用軟件測(cè)試技術(shù)的發(fā)展[J].西部皮革,2017,39(02):13.
[6]王文東.基于B/S架構(gòu)的Web軟件系統(tǒng)測(cè)試應(yīng)用分析[J].軟件導(dǎo)刊,2016,15(08):137-139.
[7]鐘國(guó)輝.基于Web應(yīng)用系統(tǒng)的軟件測(cè)試研究[J].電腦迷,2016(02):77-78.