最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解JavaWeb中過(guò)濾器與監(jiān)聽(tīng)器的應(yīng)用

 更新時(shí)間:2023年05月15日 09:43:08   作者:春哥的魔法書(shū)  
這篇文章主要介紹了JavaWeb中過(guò)濾器與監(jiān)聽(tīng)器的應(yīng)用,過(guò)濾器能夠?qū)ζヅ涞恼?qǐng)求到達(dá)目標(biāo)之前或返回響應(yīng)之后增加一些處理代碼,監(jiān)聽(tīng)器是一個(gè)接口內(nèi)容由我們實(shí)現(xiàn),會(huì)在特定時(shí)間被調(diào)用,感興趣想要詳細(xì)了解可以參考下文

過(guò)濾器Filter

Filter過(guò)濾器能夠?qū)ζヅ涞恼?qǐng)求到達(dá)目標(biāo)之前或返回響應(yīng)之后增加一些處理代碼

常用來(lái)做 全局轉(zhuǎn)碼 ,session有效性判斷

過(guò)濾器聲明

在 web.xml 中聲明Filter的匹配過(guò)濾特征及對(duì)應(yīng)的類(lèi)路徑 , 3.0版本后可以在類(lèi)上使用 @WebFilter 注解來(lái)聲明

filter-class : 內(nèi)部地址路徑

url-pattern : 匹配過(guò)濾的特征, 實(shí)際開(kāi)發(fā)中匹配規(guī)則的準(zhǔn)確性非常重要

filter-name : 兩者的對(duì)應(yīng)

<filter>
    <filter-name>myfilter</filter-name>
    <filter-class>com.yuan.filter.MyFilter</filter-class>
 </filter>
 <filter-mapping>
    <filter-name>myfilter</filter-name>
    <url-pattern>*.do</url-pattern>
 </filter-mapping>

過(guò)濾器生命周期

加載 : 在web.xml中聲明Filter相關(guān)信息

實(shí)例化 : 由WebServer( 如 : Tomcat )根據(jù)web.xml中聲明信息進(jìn)行實(shí)例化, 實(shí)例化后才能調(diào)用方法

初始化 : 在init() 方法中,進(jìn)行初始屬性設(shè)置

過(guò)濾 : 用戶發(fā)請(qǐng)求到達(dá)目標(biāo)之前, 或者完成服務(wù)產(chǎn)生響應(yīng)之后, 在 doFilter()方法中增加處理代碼

銷(xiāo)毀 : 當(dāng)servlet被銷(xiāo)毀時(shí), 調(diào)用destroy()方法, 可以在這個(gè)方法中釋放一些資源

垃圾回收 : 被JVM進(jìn)行垃圾回收時(shí), 調(diào)用 finalize() 方法

package com.yuan.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 初始化方法
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        // 對(duì)請(qǐng)求進(jìn)行加工
        filterChain.doFilter(servletRequest, servletResponse);
    }
    @Override
    public void destroy() {
        // 銷(xiāo)毀方法
    }
}

監(jiān)聽(tīng)器Listener

Java Servlet的Listener是一種特殊的Java類(lèi),它可以監(jiān)聽(tīng)Web應(yīng)用程序中發(fā)生的事件,例如Servlet的生命周期事件、HTTP會(huì)話事件等。

它可以在Servlet容器啟動(dòng)時(shí)注冊(cè),當(dāng)Web應(yīng)用程序中發(fā)生事件時(shí),容器會(huì)調(diào)用Listener的相應(yīng)方法來(lái)處理它。

監(jiān)聽(tīng)器Listener 用于監(jiān)聽(tīng)web應(yīng)用中某些對(duì)象、信息的創(chuàng)建、銷(xiāo)毀、增加,修改,刪除等動(dòng)作的發(fā)生,然后作出相應(yīng)的響應(yīng)處理。

當(dāng)范圍對(duì)象的狀態(tài)發(fā)生變化的時(shí)候,服務(wù)器自動(dòng)調(diào)用監(jiān)聽(tīng)器對(duì)象中的方法。

常見(jiàn)的Java Servlet Listener包括:

  1. ServletContextListener:用于監(jiān)聽(tīng)Servlet上下文初始化和銷(xiāo)毀事件。
  2. HttpSessionListener:用于監(jiān)聽(tīng)HTTP會(huì)話的創(chuàng)建和銷(xiāo)毀事件。
  3. ServletRequestListener:用于監(jiān)聽(tīng)Servlet請(qǐng)求的創(chuàng)建和銷(xiāo)毀事件。
  4. ServletRequestAttributeListener:用于監(jiān)聽(tīng)Servlet請(qǐng)求屬性的增刪改事件。
  5. HttpSessionAttributeListener:用于監(jiān)聽(tīng)HTTP會(huì)話屬性的增刪改事件。

通過(guò)監(jiān)聽(tīng)這些事件,我們可以在應(yīng)用程序初始化、銷(xiāo)毀、或者在每個(gè)請(qǐng)求和會(huì)話之間共享信息、修改請(qǐng)求或響應(yīng)、改變應(yīng)用程序行為以及跟蹤應(yīng)用程序的狀態(tài)等。

常用于 統(tǒng)計(jì)在線人數(shù)和在線用戶,系統(tǒng)加載時(shí)進(jìn)行信息初始化,統(tǒng)計(jì)網(wǎng)站的訪問(wèn)量等等。

Listener聲明

在web.xml中聲明

listener-class : 內(nèi)部地址路徑

  <listener>
    <listener-class>com.yuan.listener.MyListener</listener-class>
  </listener>

實(shí)例

package com.yuan.listener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
public class MyListener implements HttpSessionAttributeListener {
    @Override
    public void attributeAdded(HttpSessionBindingEvent se) {
        // 向session加入信息時(shí)執(zhí)行的方法
    }
    @Override
    public void attributeRemoved(HttpSessionBindingEvent se) {
        // 從session中移除信息時(shí)執(zhí)行的方法
    }
    @Override
    public void attributeReplaced(HttpSessionBindingEvent se) {
        // session中的信息被替換時(shí)執(zhí)行的方法
    }
}

到此這篇關(guān)于深入理解JavaWeb中過(guò)濾器與監(jiān)聽(tīng)器的應(yīng)用的文章就介紹到這了,更多相關(guān)JavaWeb過(guò)濾器與監(jiān)聽(tīng)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java如何實(shí)現(xiàn)N叉樹(shù)數(shù)據(jù)結(jié)構(gòu)

    Java如何實(shí)現(xiàn)N叉樹(shù)數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了Java如何實(shí)現(xiàn)N叉樹(shù)數(shù)據(jù)結(jié)構(gòu)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Spark隨機(jī)森林實(shí)現(xiàn)票房預(yù)測(cè)

    Spark隨機(jī)森林實(shí)現(xiàn)票房預(yù)測(cè)

    這篇文章主要為大家詳細(xì)介紹了Spark隨機(jī)森林實(shí)現(xiàn)票房預(yù)測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Java讀取其下所有文件夾與文件路徑的方法

    Java讀取其下所有文件夾與文件路徑的方法

    這篇文章主要為大家詳細(xì)介紹了Java讀取其下所有文件夾與文件路徑的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • SpringBoot3集成ElasticSearch的方法詳解

    SpringBoot3集成ElasticSearch的方法詳解

    Elasticsearch是一個(gè)分布式、RESTful風(fēng)格的搜索和數(shù)據(jù)分析引擎,適用于各種數(shù)據(jù)類(lèi)型,數(shù)字、文本、地理位置、結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù),本文給大家詳解介紹了SpringBoot3集成ElasticSearch的方法,需要的朋友可以參考下
    2023-08-08
  • Java實(shí)現(xiàn)藍(lán)橋杯數(shù)獨(dú)游戲的示例代碼

    Java實(shí)現(xiàn)藍(lán)橋杯數(shù)獨(dú)游戲的示例代碼

    這篇文章主要介紹了Java實(shí)現(xiàn)藍(lán)橋杯數(shù)獨(dú)游戲的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java spring AOP基礎(chǔ)

    Java spring AOP基礎(chǔ)

    本篇文章主要介紹了深入理解spring的AOP機(jī)制基礎(chǔ)原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-11-11
  • 詳解elasticsearch實(shí)現(xiàn)基于拼音搜索

    詳解elasticsearch實(shí)現(xiàn)基于拼音搜索

    這篇文章主要為大家介紹了詳解elasticsearch實(shí)現(xiàn)基于拼音搜索示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Spring中@Conditional注解的詳細(xì)講解及示例

    Spring中@Conditional注解的詳細(xì)講解及示例

    這篇文章主要介紹了Spring中@Conditional注解的詳細(xì)講解及示例,@Conditional是Spring4新提供的注解,它的作用是按照一定的條件進(jìn)行判斷,滿足條件給容器注冊(cè)bean,需要的朋友可以參考下
    2023-11-11
  • Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎

    Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎

    這篇文章主要為大家介紹了Spring AspectJ 實(shí)現(xiàn)AOP的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列的簡(jiǎn)單定義與使用方法

    Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列的簡(jiǎn)單定義與使用方法

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列的簡(jiǎn)單定義與使用方法,簡(jiǎn)單描述了隊(duì)列的功能、特點(diǎn),并結(jié)合java實(shí)例形式分析了隊(duì)列的簡(jiǎn)單定義與使用方法,需要的朋友可以參考下
    2017-10-10

最新評(píng)論

建湖县| 米林县| 高青县| 乌鲁木齐县| 清水河县| 屯昌县| 阜新| 平安县| 永德县| 宜宾县| 阜南县| 乐清市| 灵宝市| 容城县| 梅河口市| 广昌县| 当阳市| 海城市| 资中县| 井陉县| 阿荣旗| 永平县| 湖南省| 高陵县| 东平县| 富川| 许昌市| 金阳县| 宁都县| 邮箱| 哈密市| 六安市| 鄂托克前旗| 句容市| 长汀县| 瑞金市| 商城县| 怀仁县| 拜泉县| 萍乡市| 海安县|