Filter&Listener

本文详细介绍了Web开发中的Filter过滤器,包括其作用、配置、执行流程和生命周期方法,以及Listener监听器的基本概念、使用方法和应用场景。深入探讨了如何利用过滤器拦截路径和监听器进行事件监控,为开发者提供了实用的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Filter&Listener

1.Filter :过滤器

一、概念

1、web中的过滤器

当访问服务器资源的时候,过滤器可以将请求拦截下来,完成一些特殊的功能。

2、过滤器的作用

一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤...

二、快速入门

1、步骤

(1)定义一个类,实现接口Filter

(2)复写方法

(3)配置拦截路径

  • 方式一:web.xml

  • 方式二:注解

2.代码

@WebFilter("/*")//访问所有的资源之前,都被执行该过滤器public class FileterDemo1 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("过滤器被执行了......");
        //放行                              filterChain.doFilter(servletRequest,servletResponse;    }
    @Override    
    public void destroy() {
    }
 }

三、过滤器细节

1、web.xml配置

<!-- 配置过滤器,注意,是对URL进行拦截或是过滤 --> <filter> <filter-name>MyFilter01</filter-name> <filter-class>filter.MyFilter01</filter-class> </filter> <filter-mapping> <filter-name>MyFilter01</filter-name> <url-pattern>/MyServlet</url-pattern> </filter-mapping>

2、过滤器执行流程

(1)执行过滤器

(2)执行放行后的资源

(3)回来执行过滤器放行代码下边的代码

3、过滤器生命周期方法

(1)init:在服务器启动后,会创建FIlter对象,然后调用init方法。只执行一次,用于加载资源

(2)doFilter:每一次请求被拦截资源后,会执行

(3)destroy:在服务器关闭后,Filter对象被销毁,用于释放资源

4.过滤器拦截路径

① 具体资源路径:/index.jsp /findUser 只有访问 index.jsp 、findUser 时,过滤器才会被执行

 ② 拦截目录:/user/* 访问 user 目录下的所有资源时,过滤器都会被执行

 ③ 后缀名拦截:*.jsp 访问所有后缀名为 jsp 资源时,过滤器都会被执行

 ④ 拦截所有资源:/* 访问所有资源时,过滤器都会被执行

5.过滤器链

FilterChain 称为过滤器链,web 应用中可以存在很多个 Filter 过滤器,多个 Filter 过滤器组合起来就是一个过滤器链,受同一个 FilterChain 管理。

 

2.Listener:监听器

1.2.1简介

web 监听器是一种 Servlet 中的特殊的类,它们能帮助开发者监听 web 中的特定事件,比如ServletContext、HttpSession、ServletRequest 的创建和销毁;或者监听变量的创建、销毁和修改等。可以在某些动作前后增加处理,实现监控。框架底层已经帮助我们实现了,此处只做简要介绍。

1.2.2 监听器的使用

① 定义一个类,实现 ServletContextListener 接口,并复写方法

 

② 配置

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值