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

JavaWeb之Filter與Listener使用解析

 更新時間:2024年01月12日 10:47:05   作者:咕咕貓_  
這篇文章主要介紹了JavaWeb之Filter與Listener使用解析,Filter表示過濾器,是JavaWeb三大組件(Servlet、Filter、Listener)之一,過濾器可以把對資源的請求攔截下來,從而實現一些特殊的功能,需要的朋友可以參考下

一、Filter

1.1 Filter概述

  • 概念:Filter表示過濾器,是JavaWeb三大組件 (Servlet、Filter、Listener) 之一
  • 過濾器可以把對資源的請求攔截下來,從而實現一些特殊的功能
  • 過濾器一般完成一些通用的操作,比如:權限控制、統一編碼處理、敏感字符處理等等

1.2 Filter快速入門

進行 Filter 開發(fā)分成以下三步實現

定義類,實現Filter接口,并重寫其所有方法

配置Filter攔截資源的路徑:在類上定義 @WebFilter 注解。而注解的value屬性值 /* 表示攔截所有的資源

在doFilter方法中輸出一句話,并放行

package com.learn.web.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
/**
 * @author 咕咕貓
 * @version 1.0
 */
@WebFilter("/*")
public class FilterDemo implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        //放行前,對request數據進行處理
        System.out.println("1. FilterDemo....");
        //放行
        filterChain.doFilter(servletRequest,servletResponse);
        //放行后,對response數據進行處理
        System.out.println("3. FilterDemo....");
    }
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    @Override
    public void destroy() {
    }
}

1.3 Filter執(zhí)行流程

Filter的執(zhí)行流程如下:

1.4 Filter攔截的路徑配置

攔截路徑表示 Filter 會對請求的哪些資源進行攔截,使用 @WebFilter 注解進行配置。如: @WebFilter("攔截路徑")

攔截路徑有如下四種配置方式:

  1. 攔截具體的資源: /index.jsp:只有訪問index.jsp時才會被攔截
  2. 目錄攔截:/user/*:訪問/user下的所有資源,都會攔截
  3. 后綴名攔截:*. jsp:訪問后綴名為jsp 的所有資源,都會被攔截
  4. 攔截所有:/*:訪問所有資源,都會被攔截

1.5 過濾器鏈

過濾器鏈是指在一個Web應用,可以配置多個過濾器,這多個過濾器稱為過濾器鏈。

代碼案例中為什么是先執(zhí)行 FilterDemo ,后執(zhí)行 FilterDemo2 呢?

  • 我們現在使用的是注解配置Filter,而這種配置方式的優(yōu)先級是按照過濾器類名(字符串)的自然排序。
  • 比如有如下兩個名稱的過濾器 : BFilterDemo 和 AFilterDemo 。那一定是 AFilterDemo 過濾器先執(zhí)行。

二、Listener

2.1 概述

  • Listener表示監(jiān)聽器,是JavaWeb三大組件(Servlet、Filter、Listener) 之一
  • 監(jiān)聽器可以監(jiān)聽就是在 application , session , request 三個對象創(chuàng)建、銷毀或者往其中添加修改刪除屬性時自動 執(zhí)行代碼的功能組件。

application 是 ServletContext 類型的對象。

ServletContext 代表整個web應用,在服務器啟動的時候,tomcat會自動創(chuàng)建該對象。在服務器關閉時會自動銷毀該 對象。

2.2 分類

JavaWeb 提供了8個監(jiān)聽器:

 這里面只有 ServletContextListener 這個監(jiān)聽器后期會接觸到, ServletContextListener 是用來監(jiān)聽 ServletContext 對象的創(chuàng)建和銷毀。

2.3 ServletContextListener的使用

1. 定義類,實現 ServletContextListener 接口并重寫所有的抽象方法

2. 在類上添加 @WebListener 注解

package com.learn.web.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/**
 * @author 咕咕貓
 * @version 1.0
 */
@WebListener
public class ContextLoaderListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        //加載資源
        System.out.println("ContextLoaderListener...");
    }
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        //釋放資源
    }
}

到此這篇關于JavaWeb之Filter與Listener使用解析的文章就介紹到這了,更多相關Filter與Listener使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于SpringMVC攔截器實現接口耗時監(jiān)控功能

    基于SpringMVC攔截器實現接口耗時監(jiān)控功能

    本文呢主要介紹了基于SpringMVC攔截器實現的接口耗時監(jiān)控功能,統計接口的耗時情況屬于一個可以復用的功能點,因此這里直接使用 SpringMVC的HandlerInterceptor攔截器來實現,需要的朋友可以參考下
    2024-02-02
  • java 對文件夾目錄進行深度遍歷實例代碼

    java 對文件夾目錄進行深度遍歷實例代碼

    這篇文章主要介紹了java 對文件夾目錄進行深度遍歷實例代碼的相關資料,需要的朋友可以參考下
    2017-03-03
  • SpringBoot項目如何訪問jsp頁面的示例代碼

    SpringBoot項目如何訪問jsp頁面的示例代碼

    本篇文章主要介紹了SpringBoot項目如何訪問jsp頁面的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • SpringMVC使用JsonView針對統一實體返回不同信息

    SpringMVC使用JsonView針對統一實體返回不同信息

    這篇文章主要為大家介紹了SpringMVC使用JsonView針對統一實體返回不同信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • JavaSE面試題之this與super關鍵字的區(qū)別詳解

    JavaSE面試題之this與super關鍵字的區(qū)別詳解

    this關鍵字用于引用當前對象的引用,super關鍵字用于引用父類對象的引用,下面這篇文章主要給大家介紹了關于JavaSE面試題之this與super關鍵字區(qū)別的相關資料,需要的朋友可以參考下
    2023-12-12
  • Java 對接飛書多維表格使用詳解(微服務)

    Java 對接飛書多維表格使用詳解(微服務)

    本文詳細介紹了如何基于飛書開放平臺在微服務項目中操作飛書多維表格,包括應用創(chuàng)建、授權、多維表數據操作(新增、查詢、刪除)以及Java SDK實現等步驟,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Java 面向對象的特征解析與應用

    Java 面向對象的特征解析與應用

    Java 是面向對象的編程語言,對象就是面向對象程序設計的核心。所謂對象就是真實世界中的實體,對象與實體是一一對應的,也就是說現實世界中每一個實體都是一個對象,它是一種具體的概念
    2021-11-11
  • Jenkins自動部署Net Core過程圖解

    Jenkins自動部署Net Core過程圖解

    這篇文章主要介紹了Jenkins自動部署Net Core過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • 詳解Java中Collection集合的常用方法

    詳解Java中Collection集合的常用方法

    本篇文章給大家?guī)淼膬热菔顷P于Java中Collection集合的常用方法詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。下面我們就來學習一下吧
    2021-11-11
  • 基于JDOM生成解析XML過程解析

    基于JDOM生成解析XML過程解析

    這篇文章主要介紹了基于JDOM生成解析XML過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10

最新評論