您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Java中的過濾器Filter和監聽器Listener怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Java中的過濾器Filter和監聽器Listener怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
生活中的過濾器:凈水器,空氣凈化器,土匪、 web中的過濾器:當訪問服務器的資源時,過濾器可以將請求攔截下來,完成一些特殊的功能。 過濾器的作用:
一般用于完成通用的操作。如:登錄驗證、統一編碼處理、敏感字符過濾...
步驟
1.定義一個類,實現接口Filter
2.復寫方法
3.配置攔截路徑
web.xml
注解
代碼
@WebFilter("/*")//訪問所有資源之前,都會執行該過濾器 public class FilterDemo1 implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("filterDemo1被執行了...."); //放行 filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }
web.xml配置
<filter> <filter-name>demo1</filter-name> <filter-class>cn.zjq.web.filter.FilterDemo1</filter-class> </filter> <filter-mapping> <filter-name>demo1</filter-name> <!-- 攔截路徑 --> <url-pattern>/*</url-pattern> </filter-mapping>
過濾器執行流程
執行過濾器
執行放行后的資源
回來執行過濾器放行代碼下邊的代碼
過濾器生命周期方法
init:在服務器啟動后,會創建Filter對象,然后調用init方法。只執行一次。用于加載資源
doFilter:每一次請求被攔截資源時,會執行。執行多次
destroy:在服務器關閉后,Filter對象被銷毀。如果服務器是正常關閉,則會執行destroy方法。只執行一次。用于釋放資源
過濾器配置詳解
攔截路徑配置:
具體資源路徑: /index.jsp 只有訪問index.jsp資源時,過濾器才會被執行
攔截目錄: /user/* 訪問/user下的所有資源時,過濾器都會被執行
后綴名攔截: *.jsp 訪問所有后綴名為jsp資源時,過濾器都會被執行
攔截所有資源:/* 訪問所有資源時,過濾器都會被執行
攔截方式配置:資源被訪問的方式
注解配置:
設置dispatcherTypes屬性
REQUEST:默認值。瀏覽器直接請求資源
FORWARD:轉發訪問資源
INCLUDE:包含訪問資源
ERROR:錯誤跳轉資源
ASYNC:異步訪問資源
web.xml配置 設置標簽即可
過濾器鏈(配置多個過濾器)
執行順序:如果有兩個過濾器:過濾器1和過濾器2
過濾器1
過濾器2
資源執行
過濾器2
過濾器1
過濾器先后順序問題:
注解配置:按照類名的字符串比較規則比較,值小的先執行
如: AFilter 和 BFilter,AFilter就先執行了。 2. web.xml配置: 誰定義在上邊,誰先執行
概念:web的三大組件之一。 事件監聽機制
事件:一件事情
事件源 :事件發生的地方
監聽器 :一個對象
注冊監聽:將事件、事件源、監聽器綁定在一起。 當事件源上發生某個事件后,執行監聽器代碼
ServletContextListener:監聽ServletContext對象的創建和銷毀 方法: void contextDestroyed(ServletContextEvent sce)
:ServletContext對象被銷毀之前會調用該方法 void contextInitialized(ServletContextEvent sce)
:ServletContext對象創建后會調用該方法 步驟:
定義一個類,實現ServletContextListener接口
復寫方法
配置
web.xml
<listener> <listener-class>cn.zjq.web.listener.ContextLoaderListener</listener-class> </listener>
指定初始化參數
注解:
@WebListener
讀到這里,這篇“Java中的過濾器Filter和監聽器Listener怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。