• Filter过滤器


    Filter过滤器

    Filter概述:

    Filter代表过滤器,是java的三大组件(Servlet、Filter、Listener)之一

    Filter 过滤器它的作用是:拦截请求,过滤响应。

    拦截请求常见的应用场景有:
    1、权限检查
    2、日记操作
    3、事务管理
    ……等等

    如下图所示:在浏览器访问服务器WEB资源之前使用过滤器拦截来下

    在这里插入图片描述

    过滤器一般完成一些通用的操作。比如每个资源都要写一些代码完成某个功能,我们总不能在每个资源中写这样的代码吧,还有权限控制也可以用拦截器拦截下来,
    而此时我们可以将这些代码写在过滤器中,因为请求每一个资源都要经过过滤器。

    过滤器入门:

    过滤器开发步骤:

    第一步:定义类,实现 Filter接口,并重写其所有方法

    第二步:配置Filter拦截资源的路径:

    ​ 1.在类上定义 @WebFilter 注解。而注解的 value 属性值 /* 表示拦截所有的资源

    ​ 2.在web.xml文件中配置

    第三步:在doFilter方法中使用chain.doFilter(request,response);放行

    案例1:

    @WebFilter("/*")
    public class FirstFilter implements Filter {
        /**
         * 过滤器的初始化方法
         * 过滤器是随着服务器的初始化而初始化
         */
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            System.out.println("---Filter初始化---");
        }
        /**
         * 过滤器的处理服务
         */
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse 
    servletResponse, FilterChain filterChain) throws IOException, 
    ServletException {
            //过滤器处理请求
            System.out.println("---Filter处理请求---");
            //使用过滤器链放行
            filterChain.doFilter(servletRequest, servletResponse);
        }
        /**
         * 过滤器的销毁
         * 过滤器的销毁是随着服务器的关闭而销毁
         */
        @Override
        public void destroy() {
            System.out.println("---Filter销毁---");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    生命周期:

    Filter 的生命周期包含几个方法
    1、构造器方法
    2、init 初始化方法
    第 1,2 步,在 web 工程启动的时候执行(Filter 已经创建)
    3、doFilter 过滤方法
    第 3 步,每次拦截到请求,就会执行
    4、destroy 销毁
    第 4 步,停止 web 工程的时候,就会执行(停止 web 工程,也会销毁 Filter 过滤器)

    FilterConfig 类

    在上面案例1可以知道Filter的init初始化方法的参数为FilterConfig,那么他的用法是什么呢?

    FilterConfig 类见名知义,它是 Filter 过滤器的配置文件类。
    Tomcat 每次创建 Filter 的时候,也会同时创建一个 FilterConfig 类

  • 相关阅读:
    内网环境基于 k8s 的大型网站电商解决方案(一)
    【论文记录】Boosting Detection in Crowd Analysis via Underutilized Output Features
    猿创征文|超实用的前端开发工具分享
    git--修改用户名和邮箱的方法(全局修改和局部修改)
    确保使用正确的CSI提交HW问题
    JavaEE-线程基础(上)
    BUUCTF:8月做题记录
    基于.net C# Socket WinForm MQTT 客户端开发
    财报中连创佳绩,饿了么做对了什么?
    MySQL总复习
  • 原文地址:https://blog.csdn.net/weixin_57726902/article/details/127935416