Appfuse1.9.3 for springMVC源碼解讀(1)-- 從web.xml開始
Posted on 2006-08-29 13:48 zeroblue 閱讀(1915) 評(píng)論(0) 編輯 收藏 所屬分類: Appfuse
web.xml中定義的過濾器:
??????? (注:Appfuse的構(gòu)建網(wǎng)上有豐富的資料,在此不再贅述)
1、securityFilter












此過濾器定義Acegi Security 應(yīng)用。Acegi Security 被廣泛應(yīng)用于Spring社區(qū),在基于Spring的項(xiàng)目中提供全面的安全服務(wù)。它包含了一組接口和類,可以直接在Spring IoC容器中進(jìn)行配置。Acegi Security 完全基于接口設(shè)計(jì)實(shí)現(xiàn),為用戶定制和擴(kuò)展提供了極大的空間。基于SpringAOP,Acegi Security 可以完成方法級(jí)的權(quán)限管理。
(
文檔
?下載)
2、cacheFilter






OSCache是一個(gè)基于javaEE架構(gòu)的緩存解決方案,主要針對(duì)頁面緩存。由OpenSymphony設(shè)計(jì),它是一種開創(chuàng)性的JSP定制標(biāo)記應(yīng)用,提供了在現(xiàn)有JSP頁面之內(nèi)實(shí)現(xiàn)高速緩存的機(jī)制。
其提供了內(nèi)存和磁盤緩存兩種機(jī)制,這種緩存機(jī)制使你的Web應(yīng)用具備了一定程度的容錯(cuò)性,比如當(dāng)數(shù)據(jù)庫因某些原因當(dāng)?shù)魰r(shí),遠(yuǎn)程用戶仍能訪問緩存中的內(nèi)容。
???
但有意思的是,Appfuse并沒用使用這個(gè)頁面緩存機(jī)制。這個(gè)過濾器的filter-mapping被注釋掉了。如下:

??????????????????????????????????????????1 )?it ' s?a?pain?when?developing?JSPs,?and

???????????????????????????????????????? 大意是說這東西使開發(fā)Jsp頁面變得很痛苦,并且無法測(cè)試(英文水平有限 ^_^)。
??????-->




(
文檔與下載?
?)
3、clickstream



















又是opensymphony的東西,clickstream用來跟蹤用戶的頁面操作。其功能非常強(qiáng)大,通過過濾器我們可以跟蹤用戶的每一次點(diǎn)擊信息。并且在用戶的Session結(jié)束時(shí),可以將用戶的跟蹤信息輸出到文件或形成一個(gè)輸出流以便處理。當(dāng)用戶的Session開始時(shí)listener開始一次跟蹤,filter捕捉每一次請(qǐng)求。
(
文檔與下載
)
4、hibernateFilter















當(dāng)使用hibernate的延遲加載時(shí),你必須保證是在同一個(gè)Session中使用結(jié)果集,否則會(huì)拋出異常。而HibernateTemplate試圖每次執(zhí)行時(shí)打開和關(guān)閉Session。這時(shí)就應(yīng)該采用
OpenSessionInViewFilter模式。
(
相關(guān)文檔
)
5、UrlRewriteFilter
















Url重寫,通過配置文件改寫你的URL,將輸入的URL映射到真實(shí)的URL地址來達(dá)到URL美化的作用。
(
文檔與下載
)
6、sitemesh






sitemesh是由一個(gè)基于web頁面布局、裝飾以及與現(xiàn)存web應(yīng)用整合的框架。它能幫助我們?cè)谟纱罅宽撁鏄?gòu)成的項(xiàng)目中創(chuàng)建一致的頁面布局和外觀,?如一致的導(dǎo)航條,一致的banner,一致的版權(quán),等等。它不僅僅能處理動(dòng)態(tài)的內(nèi)容,如jsp,php,asp等產(chǎn)生的內(nèi)容,它也能處理靜態(tài)的內(nèi)容,?如htm的內(nèi)容,使得它的內(nèi)容也符合你的頁面結(jié)構(gòu)的要求。甚至于它能將html文件象include那樣將該文件作為一個(gè)面板的形式嵌入到別的文件中去。
(
文檔與下載
)(
學(xué)習(xí)
)
7、Display Tag Lib標(biāo)簽庫






Display Tag Lib是一個(gè)標(biāo)簽庫,用來處理jsp網(wǎng)頁上的Table,功能非常強(qiáng),可以對(duì)的Table進(jìn)行分頁、數(shù)據(jù)導(dǎo)出、分組、對(duì)列排序等等,??而且使用起來非常的方便。能夠大大減少代碼量。
(
文檔與下載
)
8、GZIPFilter




將輸出流壓縮為GZIP格式,據(jù)說壓縮比率可達(dá)70%-80%,這樣輸出到客戶端的數(shù)據(jù)量大大減少,可以顯著的提高性能。這是一個(gè)Appfuse自定義的過濾器,詳情見下面鏈接。
(
文檔
)
最后一個(gè)是I18N應(yīng)用的過濾器,不多說了。
還有一個(gè)監(jiān)聽器非常重要,即IntrospectorCleanupListener:





有現(xiàn)成的資料,COPY過來:
spring中的提供了一個(gè)名為org.springframework.web.util.IntrospectorCleanupListener的監(jiān)聽器。它主要負(fù)責(zé)處理由??JavaBeans Introspector的使用而引起的緩沖泄露。
(引用:劉文濤的BLOG)