欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入了解Java中的過濾器Filter和監(jiān)聽器Listener

 更新時間:2022年06月28日 16:50:07   作者:共飲一杯無  
這篇文章主要為大家詳細(xì)介紹了Java中的過濾器Filter和監(jiān)聽器Listener的使用以及二者的區(qū)別,文中的示例代碼講解詳細(xì),需要的可以參考一下

Filter:過濾器

概念

生活中的過濾器:凈水器,空氣凈化器,土匪、 web中的過濾器:當(dāng)訪問服務(wù)器的資源時,過濾器可以將請求攔截下來,完成一些特殊的功能。 過濾器的作用:

一般用于完成通用的操作。如:登錄驗(yàn)證、統(tǒng)一編碼處理、敏感字符過濾...

快速入門

步驟

1.定義一個類,實(shí)現(xiàn)接口Filter

2.復(fù)寫方法

3.配置攔截路徑

  • web.xml
  • 注解

代碼

@WebFilter("/*")//訪問所有資源之前,都會執(zhí)行該過濾器
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被執(zhí)行了....");


		//放行
		filterChain.doFilter(servletRequest,servletResponse);

	}

	@Override
	public void destroy() {

	}
}

過濾器細(xì)節(jié)

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>

過濾器執(zhí)行流程

  • 執(zhí)行過濾器
  • 執(zhí)行放行后的資源
  • 回來執(zhí)行過濾器放行代碼下邊的代碼

過濾器生命周期方法

  • init:在服務(wù)器啟動后,會創(chuàng)建Filter對象,然后調(diào)用init方法。只執(zhí)行一次。用于加載資源
  • doFilter:每一次請求被攔截資源時,會執(zhí)行。執(zhí)行多次
  • destroy:在服務(wù)器關(guān)閉后,F(xiàn)ilter對象被銷毀。如果服務(wù)器是正常關(guān)閉,則會執(zhí)行destroy方法。只執(zhí)行一次。用于釋放資源

過濾器配置詳解

攔截路徑配置:

  • 具體資源路徑: /index.jsp   只有訪問index.jsp資源時,過濾器才會被執(zhí)行
  • 攔截目錄: /user/* 訪問/user下的所有資源時,過濾器都會被執(zhí)行
  • 后綴名攔截: *.jsp 訪問所有后綴名為jsp資源時,過濾器都會被執(zhí)行
  • 攔截所有資源:/* 訪問所有資源時,過濾器都會被執(zhí)行

攔截方式配置:資源被訪問的方式

注解配置:

  • 設(shè)置dispatcherTypes屬性
  • REQUEST:默認(rèn)值。瀏覽器直接請求資源
  • FORWARD:轉(zhuǎn)發(fā)訪問資源
  • INCLUDE:包含訪問資源
  • ERROR:錯誤跳轉(zhuǎn)資源
  • ASYNC:異步訪問資源

web.xml配置 設(shè)置標(biāo)簽即可

過濾器鏈(配置多個過濾器)

執(zhí)行順序:如果有兩個過濾器:過濾器1和過濾器2

  • 過濾器1
  • 過濾器2
  • 資源執(zhí)行
  • 過濾器2
  • 過濾器1

過濾器先后順序問題:

  • 注解配置:按照類名的字符串比較規(guī)則比較,值小的先執(zhí)行

如: AFilter 和 BFilter,AFilter就先執(zhí)行了。 2. web.xml配置: 誰定義在上邊,誰先執(zhí)行

Listener:監(jiān)聽器

概念:web的三大組件之一。 事件監(jiān)聽機(jī)制

  • 事件:一件事情
  • 事件源 :事件發(fā)生的地方
  • 監(jiān)聽器 :一個對象
  • 注冊監(jiān)聽:將事件、事件源、監(jiān)聽器綁定在一起。 當(dāng)事件源上發(fā)生某個事件后,執(zhí)行監(jiān)聽器代碼

ServletContextListener:監(jiān)聽ServletContext對象的創(chuàng)建和銷毀 方法: void contextDestroyed(ServletContextEvent sce) :ServletContext對象被銷毀之前會調(diào)用該方法 void contextInitialized(ServletContextEvent sce) :ServletContext對象創(chuàng)建后會調(diào)用該方法 步驟:

  • 定義一個類,實(shí)現(xiàn)ServletContextListener接口
  • 復(fù)寫方法
  • 配置

web.xml

<listener>
  <listener-class>cn.zjq.web.listener.ContextLoaderListener</listener-class>
</listener>

指定初始化參數(shù)

注解:

@WebListener

到此這篇關(guān)于深入了解Java中的過濾器Filter和監(jiān)聽器Listener的文章就介紹到這了,更多相關(guān)Java過濾器 監(jiān)聽器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 最詳細(xì)的文件上傳下載實(shí)例詳解(推薦)

    最詳細(xì)的文件上傳下載實(shí)例詳解(推薦)

    在Web應(yīng)用系統(tǒng)開發(fā)中,文件上傳和下載功能是非常常用的功能,今天來講一下JavaWeb中的文件上傳和下載功能的實(shí)現(xiàn)。非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07
  • 如何解決Could not transfer artifact org.springframework.boot問題

    如何解決Could not transfer artifact org.spri

    在Maven更新過程中遇到“Could not transfer artifact org.springframework.boot”錯誤通常是由于網(wǎng)絡(luò)問題,解決方法是在Maven的設(shè)置中忽略HTTPS,添加特定語句后,可以正常下載依賴,但下載速度可能較慢,這是一種常見的解決方案,希望對遇到相同問題的人有所幫助
    2024-09-09
  • Java中Mono類的一些基本方法和示例代碼

    Java中Mono類的一些基本方法和示例代碼

    在Java編程中,我們經(jīng)常會遇到需要創(chuàng)建單例(singleton)對象的情況,單例模式是一種常見的設(shè)計模式,它保證一個類只有一個實(shí)例,并提供一個全局訪問點(diǎn),這篇文章主要給大家介紹了關(guān)于Java中Mono類的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • Java中scheduleAtFixedRate的用法

    Java中scheduleAtFixedRate的用法

    如何正確使用Java中的scheduleAtFixedRate是一篇介紹Java中定時任務(wù)調(diào)度器的文章。它詳細(xì)介紹了scheduleAtFixedRate方法的用法、參數(shù)及作用,并給出了一些實(shí)例以幫助讀者更好地理解其使用。本文為Java開發(fā)人員提供了一些實(shí)用的技巧,幫助他們更好地管理和控制定時任務(wù)
    2023-04-04
  • jdbc和mybatis的流式查詢使用方法

    jdbc和mybatis的流式查詢使用方法

    有些時候我們所需要查詢的數(shù)據(jù)量比較大,但是jvm內(nèi)存又是有限制的,數(shù)據(jù)量過大會導(dǎo)致內(nèi)存溢出。這個時候就可以使用流式查詢,本文就主要介紹了jdbc和mybatis的流式查詢,感興趣的可以了解一下
    2021-11-11
  • Kotlin 與 Java基本語法對比

    Kotlin 與 Java基本語法對比

    這篇文章主要介紹了Kotlin 與 Java基本語法對比的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 動態(tài)修改spring?aop?切面信息提升自動日志輸出框架效率

    動態(tài)修改spring?aop?切面信息提升自動日志輸出框架效率

    這篇文章主要為大家介紹了動態(tài)修改spring?aop切面信息提升自動日志輸出框架效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 詳解Java中字符流與字節(jié)流的區(qū)別

    詳解Java中字符流與字節(jié)流的區(qū)別

    這篇文章主要為大家詳細(xì)介紹了Java中字符流與字節(jié)流的區(qū)別,這兩個的概念易混淆,今天就為大家進(jìn)行詳細(xì)區(qū)分,感興趣的小伙伴們可以參考一下
    2016-04-04
  • java8?Stream大數(shù)據(jù)量List分批處理切割方式

    java8?Stream大數(shù)據(jù)量List分批處理切割方式

    這篇文章主要介紹了java8?Stream大數(shù)據(jù)量List分批處理切割方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 淺談Java并發(fā)編程之Lock鎖和條件變量

    淺談Java并發(fā)編程之Lock鎖和條件變量

    這篇文章主要介紹了淺談Java并發(fā)編程之Lock鎖和條件變量,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評論