第四部分 DWRServlet類分析
org.directwebremoting.servlet.DwrServlet主要分為三部分,也就是三個主要方法:init;doGet;doPost;
1,init,初始化。
DWR對于Servelet容器內部設一個配置容器,該容器裝載dwr映射相關信息。











































比較細致的環節:
init()調用
createAndSetupDefaultContainer()
調用
setupDefaultContainer(defaultContainer, servletConfig)
調用如下步驟
1)setupDefaults(container);
包括:
容器相關管理工具配置集,也就是要實現的一些接口。這種方式蠻好,當容器需要具備很多接口功能時,把這些接口全部做成隱射,并設置成可配置的實現
container.addImplementation(AccessControl.class, DefaultAccessControl.class);
// Mapping handlers to URLs,路徑配置
createUrlMapping(container, "/index.html", IndexHandler.class, "indexHandlerUrl");
//讀取servlet配置屬性
2)setupFromServletConfig(container, servletConfig);
額外處理1)中多選類型
3)resolveMultipleImplementations(container, servletConfig);
里面使用了通用yui型壓縮器
【使用 YUI Compressor 壓縮 Javascript 和 CSS
工具下載: http://www.julienlecomte.net/yuicompressor/
英文介紹: http://com3.devnet.re3.yahoo.com/yui/compressor/
YUI Compressor是使用Java編寫的工具,需要Java版本大于等于1.4。
工作原理簡介:
主要是去掉冗余的空白,主要包括空格,換行符、制表符。
對于 Javascript,還采用縮短變量名的方法壓縮文件,就是在保證代碼正確性的情況下將變量名用只有1個字符的字符串代替,或者2個、3個字符,總之盡量短。
對于 CSS,還有采用優化0值屬性值的表示,優化顏色值的方法壓縮文件。
CSS的優化比 CSSTidy 功能弱。CSSTidy還能支持一些相關屬性的合并。】
//工具配置集 加載,顯現,檢查
4)container.setupFinished();
容器內容bean初始化 ,包括系統默認???
initContainerBeans
實際調用doPost,看到這里最好溫習下servlet的doGet方法和doPost的區別




3,doPost
在工程中,有個樣例Dynamically Text,地址是http://localhost:5050/dwr/simpletext/index.html,當點擊按鈕時,實際上就是觸發了org.directwebremoting.servlet.DwrServlet的下面的方法。














posted on 2008-03-28 01:41 滿店香 閱讀(1603) 評論(0) 編輯 收藏 所屬分類: dwr源碼分析