國產(chǎn)Ajax實(shí)現(xiàn)-buffalo
早上剛發(fā)現(xiàn)的國產(chǎn)Ajax實(shí)現(xiàn),現(xiàn)在版本是1.2,其網(wǎng)址是:http://www.amowa.net/buffalo。
當(dāng)下buffalo-1.2.zip 4,770KB ,
解開,發(fā)現(xiàn)項(xiàng)目配置文件是eclipse(切喜!eclipse,my love。),
導(dǎo)入eclipse中,紅色的報錯:三個類庫變量沒找到,是web服務(wù)要的三個包servlet-api.jar、jsp-api.jar、jasper-runtime.jar,在tomcat對應(yīng)目錄可以找到。其實(shí)還有第四個類庫變量--junit.jar,只不過eclipse中自帶的有,如果不用eclipse,找到這四個jar包引入。
項(xiàng)目是以java文件為主的,有一個war目錄是演示用的web應(yīng)用代碼目錄,web應(yīng)用項(xiàng)目得自己建,這個感覺不爽,雖然它有一個build.xml文件可以打web應(yīng)用包,但想調(diào)試跟蹤,還是缺一步(我站在研究的角度,如果應(yīng)用的話,加入那幾個包,看看使用方法就可以了)。
首先研究了一下ApplicationServlet.java
1.這個Servlet初始化時,創(chuàng)建/獲取了一個服務(wù)倉庫(ServiceRepository);
2.所有的請求、響應(yīng)都封裝成一個自定義的請求上下文本(RequestContext);
3.根據(jù)請求的路徑調(diào)用不同的RequestWorker;(這一點(diǎn)好,又不好)
4.剩下的就是worker開始工作了,初始化、校驗(yàn)、處理。
重要的也是“處理”,現(xiàn)在看看worker的結(jié)構(gòu)。
接口類:interface RequestWorker 定義三個基本方法。
抽象類:abstract class AbstractRequestWorker 實(shí)現(xiàn)初始化和校驗(yàn)這兩個基本方法,另實(shí)現(xiàn)一些其它方法。
具體實(shí)現(xiàn)類:ViewWorker、BuffaloWorker、UploadWorker 當(dāng)然,你也可以寫自己的worker
當(dāng)?shù)捻?xiàng)目源碼中,ViewWorker、UploadWorker的處理方法中都是拋出UnsupportedOperationException,想處理的話,你也可以加。現(xiàn)在重要的講講BuffaloWorker的處理。
1.通過封裝的請求上下文件(RequestContext),獲取服務(wù)倉庫(ServiceRepository);
2.通過請求的相對路徑(此方法感覺欠妥),獲取相應(yīng)的服務(wù);
3.有了“業(yè)務(wù)處理方法”、“業(yè)務(wù)請求”后,就是調(diào)用“粗麻布調(diào)用(BurlapInvoker)”處理余下的工作了。
前面寫的是一些流程,沒什么復(fù)雜的東西,這最后的 invoker,是比較核心,也很經(jīng)典的處理。在這里,我也不多寫了,再寫下去,大家也一路的看下去,沒什么感覺。相信看完了 invoker的實(shí)現(xiàn),一定能學(xué)到不少東西。
下次看看前端是怎么實(shí)現(xiàn)的,今天到此為止,休息一會!
posted on 2006-03-16 13:45 junctioner 閱讀(377) 評論(0) 編輯 收藏 所屬分類: 技術(shù)之路