Servlet过滤器

本文详细介绍了Java中的Filter过滤器概念及其作用,包括如何通过Filter对HTTP请求和响应进行预处理和后处理,以及Filter接口的生命周期方法。同时列举了Filter在实际应用中的多种用途。

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

1.过滤器的概念

Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。

主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。


优点:过滤链的好处是,执行过程中任何时候都可以打断,只要不执行chain.doFilter()就不会再执行后面的过滤器和请求的内容。而在实际使用时,就要特别注意过滤链的执行顺序问题。


2.过滤器的作用描述

在HttpServletRequest 到达Servlet 之前,拦截客户的HttpServletRequest 。

根据需要检查HttpServletRequest ,也可以修改HttpServletRequest 头和数据。

  在HttpServletResponse 到达客户端之前,拦截HttpServletResponse 。

根据需要检查HttpServletResponse ,可以修改HttpServletResponse 头和数据

3.Filter接口

  1.如何驱动

在 web 应用程序启动时,web 服务器将根据 web.xml 文件中的配置信息来创建每个注册的 Filter 实例对象,并将其保存在服务器的内存中 

2.方法介绍

 init()  Init 方法在 Filter 生命周期中仅执行一次,web 容器在调用 init 方法时

 destory()  在Web容器卸载 Filter 对象之前被调用。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。 

doFilter() Filter 链的执行。

4.FilterChain接口web.xml配置



<!-- 编码过滤器 -->  
    <filter>  
        <filter-name>setCharacterEncoding</filter-name>  
        <filter-class>com.filter.EncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>utf-8</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>setCharacterEncoding</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
   
<!-- 请求url日志记录过滤器 -->  
    <filter>  
        <filter-name>logfilter</filter-name>  
        <filter-class>com.filter.LogFilter</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>logfilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>


5.过滤器的一些常见应用

1:认证过滤:对用户请求进行统一的认证。

2:登录和审核过滤:对用户的访问请求进行记录和审核。

3:图像转换过滤:转换图像格式。

4:数据压缩过滤 :对用户发生的数据进行压缩,从而减少传输量。

5:加密过滤:对请求和响应进行加密解密处理。

6:令牌过滤

7:资源访问触发事件过滤

8:XSLT过滤

9:MIME-type过滤 


























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值