JSP HTTP服務(wù)器系統(tǒng)分析
系統(tǒng)分析
通過以上的分析和說明,讀者基本上已經(jīng)了解如何定制自己所需要的JSP HTTP服務(wù)器。但是對(duì)這套JSP HTTP服務(wù)器體系特性的認(rèn)識(shí)可能還存在一定模糊。這里我們?cè)購(gòu)囊韵聨讉€(gè)方面分析該JSP HTTP服務(wù)器的特性。
1.穩(wěn)定性
該JSP HTTP服務(wù)器很大程序上借助了java體系的代碼健壯性和穩(wěn)定性,對(duì)異常(Exception)的處理和異步請(qǐng)求的處理都較為合理。程序的穩(wěn)定性得到一定保障。
提示:雖然java的異常機(jī)制有時(shí)候用起來可能確實(shí)讓人感覺有些繁瑣,但是對(duì)系統(tǒng)的穩(wěn)定性起到的作用是舉足輕重的。
2.?dāng)U展性
由于該系統(tǒng)利用java開發(fā),使得該JSP HTTP服務(wù)器系統(tǒng)轉(zhuǎn)移到其他平臺(tái)(MS Windows,Linux,Solaris)的工作變得較為簡(jiǎn)單。筆者嘗過將該代碼轉(zhuǎn)移到Solaris 8系統(tǒng)中,只是修改了文件路徑分割符。
對(duì)于功能而言,用戶可以任意擴(kuò)展服務(wù)文件類型。擴(kuò)展用戶特有的JSP語法和命令。使得服務(wù)形式更符合用戶使用特征。
提示:當(dāng)前SUN公司發(fā)布的最新jdk版本為1.6.0,支持MS Windows,Linux,Solaris。
3.執(zhí)行效率的合理性和優(yōu)化
(1)巧妙地結(jié)合了Java體系的Class Loader技術(shù),遵照“先載入,后使用”的原則,真正做到了“一次載入,多次重用”,從而大大較少了磁盤訪問,提高了服務(wù)器端的執(zhí)行效率。
(2)客戶端請(qǐng)求處理的多線程構(gòu)架,可以支持多客戶端同時(shí)訪問JSP HTTP服務(wù)器。如果使用線程池(Thread Pool)構(gòu)建,可以更進(jìn)一步提高客戶端請(qǐng)求處理的效率。
4.易用性
通過系統(tǒng)介紹我們可以看出,該JSP HTTP服務(wù)器系統(tǒng)的設(shè)置比較簡(jiǎn)單。
(1)系統(tǒng)的設(shè)置(例如:服務(wù)頁的目錄,默認(rèn)頁,系統(tǒng)路徑分隔符等)縮減為最簡(jiǎn)單化。
(2)自定義的JSP語法也是比較簡(jiǎn)單,易于普通用戶使用。只要用戶了解一定的java語法就可以編寫jsp語法,就如同寫java源文件一樣簡(jiǎn)單,甚至比寫Java Application要更為簡(jiǎn)單。一下是一個(gè)簡(jiǎn)單的jsp源文件的內(nèi)容:
5.對(duì)原有系統(tǒng)的支持
本系統(tǒng)對(duì)CGI的支持也比較靈活,可以擴(kuò)展為通過多種方式將參數(shù)傳遞給CGI進(jìn)程。這樣可以維持用戶原有的CGI服務(wù)體系不變的基礎(chǔ)上進(jìn)行系統(tǒng)升級(jí)。
總結(jié)及補(bǔ)充
1.技術(shù)點(diǎn)總結(jié)
對(duì)于開發(fā)本JSP HTTP服務(wù)器,結(jié)合了很多知識(shí),不僅要兼顧舊的標(biāo)準(zhǔn)(例如CGI,HTTP,MIME),而且也要兼顧新的技術(shù)(Class Loader,多線程),知識(shí)面涉及到很多。筆者認(rèn)為主要包括如下幾點(diǎn):
(1)要具備一定的網(wǎng)絡(luò)知識(shí)。例如對(duì)HTTP標(biāo)準(zhǔn)(RFC2680),MIME標(biāo)準(zhǔn)(RFC2046),CGI標(biāo)準(zhǔn)等。
(2)多線程技術(shù),實(shí)時(shí)處理客戶端請(qǐng)求,合理處理請(qǐng)求的并發(fā)。
(3)Java技術(shù),包括進(jìn)程間通信技術(shù),Class Loader技術(shù),編碼解碼等。
(4)對(duì)系統(tǒng)跨平臺(tái)要有一定認(rèn)識(shí)和經(jīng)驗(yàn)。例如,筆者具有熟練的Windows平臺(tái)和Solaris平臺(tái)的開發(fā)經(jīng)驗(yàn)。
(5)善于學(xué)習(xí)和分析其他類似系統(tǒng)。例如,筆者曾經(jīng)對(duì)HTML,ISAPI,IIS,CGI,PHP,Apache,Tomcat和JSP進(jìn)行過深入學(xué)習(xí)和分析。找出各個(gè)系統(tǒng)的有缺點(diǎn),并嘗試出解決方案。
2.不足之處
作為非商業(yè)設(shè)計(jì),該JSP HTTP服務(wù)器體系設(shè)計(jì)還存在很多不足之處,出于時(shí)間的原因,筆者不可能近期對(duì)該系統(tǒng)進(jìn)行完善。筆者認(rèn)為需要改善的地方主要有:
(1)設(shè)計(jì)中沒有考慮多語言的情況,雖然Java體系已經(jīng)可以很方便地支持多語言系統(tǒng)。
(2)對(duì)于MIME的考慮不夠完整,本JSP HTTP服務(wù)器系統(tǒng)中處理的MIME類型太過有限。
(3)自定義的JSP語法過于簡(jiǎn)單,很多硬性定義可能造成用戶使用不方便。例如:對(duì)于JSP表達(dá)式一行只能存在一個(gè)表達(dá)式的規(guī)定。另外,提供給服務(wù)頁的公共函數(shù)過于缺乏,可以提供很多功能函數(shù)給服務(wù)頁面使用,這樣就可以簡(jiǎn)化服務(wù)頁的代碼編寫。
(4)直接在jsp文件目錄中創(chuàng)建java,class等文件的做法比較危險(xiǎn),容易暴露服務(wù)器內(nèi)容,應(yīng)該考慮使用cache的構(gòu)架,將中間文件和源文件隔離開來。
【編輯推薦】