web.xml中定義的過(guò)濾器:
(注:Appfuse的構建網(wǎng)上有豐富的資料,在此不再贅述)
1、securityFilter
< filter >
< filter-name > securityFilter </ filter-name >
< filter-class >
org.acegisecurity.util.FilterToBeanProxy
</ filter-class >
< init-param >
< param-name > targetClass </ param-name >
< param-value >
org.acegisecurity.util.FilterChainProxy
</ param-value >
</ init-param >
</ filter > 此過(guò)濾器定義Acegi Security 應用。Acegi Security 被廣泛應用于Spring社區,在基于Spring的項目中提供全面的安全服務(wù)。它包含了一組接口和類(lèi),可以直接在Spring IoC容器中進(jìn)行配置。Acegi Security 完全基于接口設計實(shí)現,為用戶(hù)定制和擴展提供了極大的空間?;赟pringAOP,Acegi Security 可以完成方法級的權限管理。
( 文檔 下載)
2、cacheFilter
< filter >
< filter-name > cacheFilter </ filter-name >
< filter-class >
com.opensymphony.oscache.web.filter.CacheFilter
</ filter-class >
</ filter > OSCache是一個(gè)基于javaEE架構的緩存解決方案,主要針對頁(yè)面緩存。由OpenSymphony設計,它是一種開(kāi)創(chuàng )性的JSP定制標記應用,提供了在現有JSP頁(yè)面之內實(shí)現高速緩存的機制。 其提供了內存和磁盤(pán)緩存兩種機制,這種緩存機制使你的Web應用具備了一定程度的容錯性,比如當數據庫因某些原因當掉時(shí),遠程用戶(hù)仍能訪(fǎng)問(wèn)緩存中的內容。
但有意思的是,Appfuse并沒(méi)用使用這個(gè)頁(yè)面緩存機制。這個(gè)過(guò)濾器的filter-mapping被注釋掉了。如下:
<!-- Commented out for 2 reasons:
1 ) it ' s a pain when developing JSPs, and
2 ) it causes the Signup webtest to fail
大意是說(shuō)這東西使開(kāi)發(fā)Jsp頁(yè)面變得很痛苦,并且無(wú)法測試(英文水平有限 ^_^)。
-->
<!-- filter - mapping >
< filter - name > cacheFilter </ filter - name >
< url - pattern >* .jsp </ url - pattern >
</ filter - mapping --> ( 文檔與下載 )
3、clickstream
< filter >
< filter - name > clickstream </ filter - name >
< filter - class > com.opensymphony.clickstream.ClickstreamFilter </ filter - class >
</ filter >
< filter - mapping >
< filter - name > clickstream </ filter - name >
< url - pattern >* .jsp </ url - pattern >
</ filter - mapping >
< filter - mapping >
< filter - name > clickstream </ filter - name >
< url - pattern >* .html </ url - pattern >
</ filter - mapping >
< listener >
< listener - class > com.opensymphony.clickstream.ClickstreamListener </ listener - class >
</ listener >
又是opensymphony的東西,clickstream用來(lái)跟蹤用戶(hù)的頁(yè)面操作。其功能非常強大,通過(guò)過(guò)濾器我們可以跟蹤用戶(hù)的每一次點(diǎn)擊信息。并且在用戶(hù)的Session結束時(shí),可以將用戶(hù)的跟蹤信息輸出到文件或形成一個(gè)輸出流以便處理。當用戶(hù)的Session開(kāi)始時(shí)listener開(kāi)始一次跟蹤,filter捕捉每一次請求。
( 文檔與下載 )
4、hibernateFilter
< filter >
< filter-name > hibernateFilter </ filter-name >
< filter-class >
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</ filter-class >
</ filter >
或
< filter >
< filter-name > opensession </ filter-name >
< filter-class > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </ filter-class >
< init-param >
< param-name > singleSession </ param-name >
< param-value > false </ param-value >
</ init-param >
</ filter > 當使用hibernate的延遲加載時(shí),你必須保證是在同一個(gè)Session中使用結果集,否則會(huì )拋出異常。而HibernateTemplate試圖每次執行時(shí)打開(kāi)和關(guān)閉Session。這時(shí)就應該采用 OpenSessionInViewFilter模式。
( 相關(guān)文檔 )
5、UrlRewriteFilter
< filter >
< filter-name > rewriteFilter </ filter-name >
< filter-class >
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</ filter-class >
< init-param >
< param-name > logLevel </ param-name >
< param-value > commons </ param-value >
</ init-param >
</ filter >
< filter-mapping >
< filter-name > rewriteFilter </ filter-name >
< url-pattern > /* </ url-pattern >
<!-- dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher -->
</ filter-mapping > Url重寫(xiě),通過(guò)配置文件改寫(xiě)你的URL,將輸入的URL映射到真實(shí)的URL地址來(lái)達到URL美化的作用。
( 文檔與下載 )
6、sitemesh
< filter >
< filter-name > sitemesh </ filter-name >
< filter-class >
com.opensymphony.module.sitemesh.filter.PageFilter
</ filter-class >
</ filter > sitemesh是由一個(gè)基于web頁(yè)面布局、裝飾以及與現存web應用整合的框架。它能幫助我們在由大量頁(yè)面構成的項目中創(chuàng )建一致的頁(yè)面布局和外觀(guān), 如一致的導航條,一致的banner,一致的版權,等等。它不僅僅能處理動(dòng)態(tài)的內容,如jsp,php,asp等產(chǎn)生的內容,它也能處理靜態(tài)的內容, 如htm的內容,使得它的內容也符合你的頁(yè)面結構的要求。甚至于它能將html文件象include那樣將該文件作為一個(gè)面板的形式嵌入到別的文件中去。
( 文檔與下載 )( 學(xué)習 )
7、Display Tag Lib標簽庫
< filter >
< filter-name > exportFilter </ filter-name >
< filter-class >
org.displaytag.filter.ResponseOverrideFilter
</ filter-class >
</ filter > Display Tag Lib是一個(gè)標簽庫,用來(lái)處理jsp網(wǎng)頁(yè)上的Table,功能非常強,可以對的Table進(jìn)行分頁(yè)、數據導出、分組、對列排序等等, 而且使用起來(lái)非常的方便。能夠大大減少代碼量。
( 文檔與下載 )
8、GZIPFilter
< filter >
< filter-name > compressionFilter </ filter-name >
< filter-class > com.lady.webapp.filter.GZIPFilter </ filter-class >
</ filter > 將輸出流壓縮為GZIP格式,據說(shuō)壓縮比率可達70%-80%,這樣輸出到客戶(hù)端的數據量大大減少,可以顯著(zhù)的提高性能。這是一個(gè)Appfuse自定義的過(guò)濾器,詳情見(jiàn)下面鏈接。
( 文檔 )
最后一個(gè)是I18N應用的過(guò)濾器,不多說(shuō)了。
還有一個(gè)監聽(tīng)器非常重要,即IntrospectorCleanupListener:
< listener >
< listener-class >
org.springframework.web.util.IntrospectorCleanupListener
</ listener-class >
</ listener > 有現成的資料,COPY過(guò)來(lái):
spring中的提供了一個(gè)名為org.springframework.web.util.IntrospectorCleanupListener的監聽(tīng)器。它主要負責處理由 JavaBeans Introspector的使用而引起的緩沖泄露。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。