譚弘岷
摘? 要:隨著互聯(lián)網(wǎng)技術(shù)飛速發(fā)展,各個領域開始大規(guī)模應用基于Itnternet的WWW應用模式,傳遞信息的同時實現(xiàn)信息共享。Java是常用的計算機編程語言,推動web領域發(fā)展,但是隨著科技水平提高逐漸暴露出一些新的應用問題,美工設計界面無法直接應用,需要采取一些其他手段統(tǒng)一程序與網(wǎng)頁界面,這就涉及到了基于Java-Web開發(fā)的后臺程序與界面分離技術(shù),可以降低程序代碼與Html代碼之間的影響,達到協(xié)調(diào)程序人員和美工人員的目的,提高整體的開發(fā)效率。
關(guān)鍵詞:Java-Web;后臺程序;界面分離技術(shù)
Java語言主要分為兩種類型,一種為JavaApplication,另一種為JavaApplet,前者屬于非嵌入式程序,需要安裝解釋器,后者屬于飛獨立軟件,內(nèi)部解釋器就可以滿足運行需求。在開發(fā)過程中,編程和美工人員容易在協(xié)調(diào)方面出現(xiàn)問題,這時候就要采用JTemplate類表現(xiàn),分離網(wǎng)頁界面和后臺程序,在完成分離工作后,美工和編程人員擁有足夠的時間完成自身工作,減少協(xié)調(diào)時間。JTemplate類主要發(fā)揮分離功能,可以將Html和Java代碼分離開,應用時利用Java語言更新改進Htrd元素及內(nèi)容。
1 后臺程序與界面分離關(guān)鍵技術(shù)
后臺程序與界面分離的關(guān)鍵是JTemplale類,在開發(fā)和實現(xiàn)的過程中,通過對正則表達式的合理運用,才能得到需要的知識,正則表達式主要負責處理文本內(nèi)容,同時匹配對應的運行模式。正常情況下,正則表達式需要遵循一定的表達規(guī)則,將字符科學串聯(lián),同時還會針對串聯(lián)護的字符定義出特定的搜索模式,為了表達出字符匹配的次數(shù),還需要合理運用各類的符號,包括字符串、普通字符、標點字符等,在加入不同類型的符號后,就可以按照實際需求匹配搜索需要的字符,完成JTemplale的開發(fā)工作。一些正則表達式相對較為常用,開發(fā)時需要科學記憶,才能快速完成開發(fā)工作,例如*代表星號前字符經(jīng)過零次或者多次匹配,+代表星號前字符經(jīng)過零次或者多次匹配。
在出現(xiàn)JDK1.4版本以后,后續(xù)開始利用java、util、regex包,同時提供兩個類處理正則表達式,一個為Pattern類,另一個為Matcher類,在處理正則表達式時,Pattern類有著明確的處理規(guī)定,如果正則表達式為字符串,則要優(yōu)先編譯Pattern類,接下來可以得到處理模式,這時候就涉及到Matcher類,可以利用前期構(gòu)建出來的模式創(chuàng)建出Matcher對象,在創(chuàng)建完對象后,遵循正則表達式操作,可以匹配任意字符序列。在執(zhí)行匹配的過程中,會涉及到大量不同的狀態(tài),這時候需要保留所有狀態(tài),將其駐留在匹配其內(nèi),同時共享同一模式,基于上述工作原理,要遵循一定的調(diào)用順序。
JTemplate類的主要功能是:分離Java代碼(如Servlet或Jp)和Hml文件。JTemplate類的主要特點是:以Java語言為基礎,通過設置“文件”可以由Java代碼解析靜態(tài)的Hml模板,通過設置“塊”可以實現(xiàn)數(shù)據(jù)的動態(tài)循環(huán)列表顯示,通過設置“塊”并根據(jù)條件可以實現(xiàn)Html元素的動態(tài)隱藏和顯示,通過設置“變量”可以實現(xiàn)Hml元素和內(nèi)容的動態(tài)更新。
2 Jtemplate類的基本思想概述
Jtemplate類的基本思想主要體現(xiàn)在Map接口上,主要分為兩大類,一個為哈西表類,另一個為鏈接列表類,由這兩個大類相互形成映射效果,主要包括四個映射:第一,fileName映射。在程序運行時,該集合主要體現(xiàn)在模板文件上,而fileName則是文件中出現(xiàn)的映射。第二,values映射。Jtemplate類開發(fā)時產(chǎn)生的大量變量數(shù)據(jù),采取映射的方式實現(xiàn)。第三keys映射。變量存在大量的關(guān)鍵字詞,開發(fā)時需要計算分析,這也就是keys映射。第四,error映射。在開發(fā)Jtemplate類時,如果出現(xiàn)錯誤信息時,通過error映射出錯誤問題。在開發(fā)Jtemplate類時,四種映射發(fā)揮不同的作用,相互之間存在較強的聯(lián)系,要注意開發(fā)過程中始終借助正則表達式,直到達到開發(fā)的最終環(huán)節(jié),可以進入到文件分析處理環(huán)節(jié),主要流的方式,輸入文件后合理設置塊及變量,得到處理后的字符流。
3 Jtemplate類的實現(xiàn)研究
通過分析當前主流的基于B/S模式的軟件構(gòu)架視圖,我們發(fā)現(xiàn),無論后臺的處理邏輯多么復雜,實現(xiàn)細節(jié)的部分設計得多么精巧,最終提交給用戶使用的前臺界面基本上都是由以下三種頁面組合而成的:普通的用戶瀏覽界面、需要用戶提交參數(shù)的界面、通過查詢后臺數(shù)據(jù)庫顯示給用戶的信息列表。前兩種界面我們又可以綜合成一種:既有動態(tài)信息的瀏覽,又需要用戶提交參數(shù)。
基于以上分析,我們考慮首先在模板文件中設置需要動態(tài)顯示的內(nèi)容的映射,然后利用Java中字符流的操作類(BufferedReader)把模板文件讀人內(nèi)存,再利用正則表達式解析在模板文件流中設置的映射,最終以從Servlet中計算得到的動態(tài)信息取代那些映射,輸出給用戶動態(tài)的顯示效果。在JSP接收到Servlet傳送的數(shù)據(jù)以后,它就要生成Jtemplate類的一個實例,同時設置模板文件的映射,這個過程的實現(xiàn)如下:
//設置模板文件的映射Public-void-setfile(string - handle.string - filename string-tmpfilename=this - getfilename( filename)if (this.haserrwrO){return;}//如果出錯,則退出This.filename. put(handle.tmpfilename);// getFileName方法判斷給定名稱的模板文件是否存在private String getFideName(Sring fleName) {File file = new File( fleName);f(! file. exists() | 1/如果文件未找到,設置setFile的出錯信息this. setEror( “setFile”,“File ”+ fleNaume +“does notex-ist.”);reburmfileName;
如果顯示頁面包含數(shù)據(jù)庫列表,同時無法提前預支數(shù)據(jù)條數(shù),這時候就要科學設置塊變量,將其設置在Html模板上,設置結(jié)束后還要從JSP文件上設置變量映射,選擇setBlock的設置方法。如果顯示頁面上需要動態(tài)顯示一些內(nèi)容,這時候也需要設置變量,在普通模板文件上設置即可,接下來按照同樣的方法設置出變量的映射。在完成上述操作以后,就可以輸出結(jié)果,這部分操作需要借助多個方法。
4 Jtemplate類運作流程研究
Jtemplate類運作流程如下:首先主要開展兩大工作,一個是Sevllet處理內(nèi)部邏輯,另一個則是在Html字符模板上設置變量,完成上述兩項工作后,可以進入到處理環(huán)節(jié),通過處理數(shù)據(jù)讀入Html字符模板,接下來要根據(jù)實際開發(fā)需求設置模板文件映射、塊變量以及變量映射,最后可以通過JSP解析處理模板文件,得到最終的輸出解析結(jié)果,該過程主要體現(xiàn)在用戶界面上。
5 Jtemplate類存在的弊端
雖然Jtemplate類解決了美工和程序員之間的工作沖突,提高了工作效率。但是也引入了新的問題,即在服務器端由servlet解析Html頁面花費的時間相應增多,主要是由于在解析工作中發(fā)生了很多字符串的連接操作,犧牲了效率,解決這個問題的方案是可以使用字符串緩沖區(qū)來代替簡單的字符串相加。如何在解決沖突和系統(tǒng)開銷之間取得平衡,設計更加實用的算法需要進一步研究。
6 結(jié)束語
隨著互聯(lián)網(wǎng)逐漸普及,軟件應用范圍逐漸擴大,為各個領域提供核心技術(shù)支持,同時還可以協(xié)調(diào)編碼人員及美工,大幅度提高工作效率。Java語言可以提供大量的應用類庫,通過解釋器得到特定的編譯代碼,擁有跨越平臺的特點,迅速推動web領域發(fā)展。在開展Java-Web開發(fā)活動時,要科學協(xié)調(diào)問題,美工和編碼人員要加強溝通協(xié)調(diào),才能更順暢的完成開發(fā)工作,而界面分離技術(shù)的合理運用,大幅度提高工作效率,從根本上解決一些協(xié)調(diào)性問題。
參考文獻
[1]蔡金華.基于Java的Web開發(fā)技術(shù)[J].電子技術(shù)與軟件工程,2019,000(006):P.53-54.
[2]王歸航.基于Java的Web開發(fā)技術(shù)的探討[J].信息系統(tǒng)工程,2018.
[3]何晶.以SSH框架與jQuery技術(shù)為基礎的Java-Web開發(fā)應用探討[J].計算機產(chǎn)品與流通,2019,000(011):P.104-105.