導航:首頁 > 凈水問答 > 過濾器不過濾靜態資源

過濾器不過濾靜態資源

發布時間:2025-08-18 11:29:08

『壹』 springMvc+shiro做許可權管理,頁面上的靜態資源,樣式圖片等沒有出現,用幾種方式過濾試過,還是不行

正常情況是不會出現這樣的,shiro對於靜態資源的處理,不用特殊配置。

只需要在shiroFilter過濾器filterChainDefinitions項中增加一個靜態資源處理規則就可以,例如允許/css/開頭的資源匿名訪問,只需要這樣一句配置就足矣。

/css/** = anon

配置完成後,未登錄就可以在瀏覽器中直接訪問css下的資源,新項目用的shiro,簡單而又實用的許可權框架。

『貳』 spring過濾器和攔截器的區別

(1)過濾器:

依賴於servlet容器,是JavaEE標准,是在請求進入容器之後,還未進入Servlet之前進行預處理,並且在請求結束返回給前端這之間進行後期處理。在實現上基於函數回調,可以對幾乎所有請求進行過濾,但是缺點是一個過濾器實例只能在容器初始化時調用一次。使用過濾器的目的是用來做一些過濾操作,獲取我們想要獲取的數據,比如:在過濾器中修改字元編碼;在過濾器中修改HttpServletRequest的一些參數,包括:過濾低俗文字、危險字元等

關於過濾器的一些用法可以參考我寫過的這些文章:

『叄』 struts2 Filterdispatch作用原理

struts2 Filterdispatch是Struts2的主要的Filter,負責四個方面的功能:
(1)執行Actions
(2)清除ActionContext
(3)維護靜態內容
(4)清除request生命周期內的XWork的interceptors
另註:該過濾器應該過濾所有的請求URL。一般被設置為/*.
具體:
(1)執行Actions
過濾器通過ActionMapper對象,來判斷是否應該被映射到Action.如果mapper對象指示他應該被映射,過濾鏈將會被終止,
然後Action被調用。這一點非常重要,如果同時使用SiteMesh filter,則SiteMesh filter應該放到該過濾器前,否則
Action的輸出將不會被裝飾。
(2)清除ActionContext
過濾器為了確保內存溢出,會自動的清除ActionContext。這可能會存在一些問題,在和其它的框架集成時,例如SiteMesh。
ActionContextCleanUp提供了怎麼處理這些問題的一些信息。
(3)維護靜態內容
過濾器也會維護在Struts2中使用的一些公共的靜態的內容,例如Javascript文件,CSS文件等。搜索/struts/*范圍內的
請求,然後將/struts/後面的值映射到一些struts的公共包中,也可以在你的類路徑中搜索。默認情況下會去查找以下
包:
org.apache.struts2.static
template
這樣你只用請求/struts/xhtml/styles.css,XHTML UI主題默認的樣式表將會被返回。同樣,AJAX UI組件需要的
Javascript文件,也可以在org.apache.struts2.static包中被找到。如果你想加入其它被搜索的包,在web.xml中
設置filter時,通過給"actionPackages"初始參數一個逗號隔開的包列表值來設定。
需注意的是:他會暴露一些比較敏感的信息例如,properites文件中的資料庫連接信息。
註:過濾器支持以下初始參數:
config - 被調入的逗號隔開的XML文件列表。
actionPackages - 被actions掃描的逗號隔開的packages列表。
configProviders - 逗號分隔的實現了ConfigurationProvider介面(建造Configuration時被使用)的實現類。
* - 任意的struts常量。
通過重載createDispatcher()方法,可以自定義dispather。

屬性列表:
(1)actionMapper:通過注入,提供一個ActionMapper實例。
(2)dispatcher:暴露給子類一個Dispatcher實例。
(3)encoding:存儲StrutsConstants.STRUTS_I18N_ENCODING的設置。
(4)filterConfig:通過初始參數,提供一個FilterConfig實例。
(5)lastModifiedCal:在緩存靜態content,提供一個格化的日期用於設定頭信息。
(6)log:提供一個logging實例。
(7)patchPrefixs:存儲靜態資源的路徑前綴信息。
(8)serveStatic:存儲StrutsConstants.STRUTS_SERVE_STATIC_CONTENT的設置。
(9)serveStaticBrowserCache:存儲StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE的設置。
方法列表:
(1)(InputStream input, OutputStream output):從input復制數據到output。
(2)createDispatcher(FilterConfig filterConfig):創建默認的dispatcher對象,如果需要的話,子類可以重載此方法,
自定義一個dispatcher對象。
(3)destory():調用dispatcher.cleanup(),依次釋放本地線程,銷毀dispatcher對象。
(4)doFilter(ServletRequest request, ServeltResponse response, FilterChain chain):處理一個action或處理一個請求
的靜態內容。
(5)findInputStream(String name, String packagePrefix):搜索類路徑下的靜態資源。
(6)findStaticResoruce(String name, HttpServletRequest request, HttpServletResponse response):搜索靜態的資源,
直接復制到相應response的頭信息中。
(7)getContentType(String name):獲取指定資源的contentType。
(8)getFilterConfig():獲取FilterConfig實例。
(9)getServletContext():給WebLogic的一些版本提供一個工作區。
(9)init(FilterConfig filterCongfig):創建默認的dispatcher對象和設置靜態資源的默認包信息來初始化filter。
(10)parse(String packages):返回一個數組通過解析一個指定逗號分隔的packages列表。
(11)(HttpServletRequest request, HttpServletResponse response):對給定的request
對象進行封裝返回一個封裝HttpServletRequest對象。例如顯示的處理multipart數據。
(12)setMapper(ActionMapper actionMapper)
(13)setEncoding(String val)
(14)setServeStaticContent(String val)
(15)setServeStaticBrowserCache(String val)

『肆』 攔截器(Interceptor)和過濾器(Filter)的執行順序和區別

一、引言


探討攔截器(Interceptor)與過濾器(Filter)的執行順序及區別,以解決用戶登陸與許可權管理、菜單管理問題。本文將先關注過濾器的使用,而後深入攔截器的特性,並簡述各自應用場景。


二、區別


過濾器(Filter)


過濾器通常用於web.xml配置中,主要目的為解決字元編碼問題,防止亂碼。它在所有請求前執行,用於過濾、處理數據,如字元編碼修改、參數過濾等。


攔截器(Interceptor)


攔截器依賴SpringMVC框架,基於Java反射機制實現面向切面編程(AOP)。它對控制器請求進行攔截,可執行前置、後置操作,甚至異常處理,但僅限於控制器請求,不包括靜態資源訪問。


三、代碼示例


展示項目中同時配置過濾器與攔截器的執行流程,包括過濾器與攔截器的具體配置與測試。


四、總結


總結過濾器與攔截器的區別與特性,強調它們在web開發中的不同用途與執行順序。

閱讀全文

與過濾器不過濾靜態資源相關的資料

熱點內容
商鋪碰到污水管堵塞找哪裡 瀏覽:866
等離子去皺 瀏覽:800
金屬瓦和樹脂瓦的區別嗎 瀏覽:925
樹脂1068 瀏覽:216
反滲透膜用久了 瀏覽:719
揚子ro60凈水機怎麼換濾芯 瀏覽:782
耐300度聚酯樹脂 瀏覽:789
市場最好的純凈水哪個品牌 瀏覽:699
廢水什麼意思網路用語 瀏覽:76
飲水機的溫控什麼原理 瀏覽:289
柴油車手油泵上的是什麼濾芯 瀏覽:545
反滲透投加保護劑作用 瀏覽:381
薯片加工廢水如何處理 瀏覽:273
滅菌鍋如何排廢水 瀏覽:840
要獲得純凈水常用什麼方法 瀏覽:771
凈水器活性炭好還是超濾膜好 瀏覽:632
飲水機冷熱40度水溫怎麼調 瀏覽:938
小區污水冷卻塔哪裡有賣 瀏覽:566
飲水機下置為什麼這么貴 瀏覽:984
飲水機下面第二格滴水怎麼辦 瀏覽:758