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