• Filter


    Filter

    • 概念:Filter表示过滤器,是Javaweb三大组件(Servlet,Filter,Listener)之一。

    • 过滤器可以把对资源的请求拦截下来从而实现一些特殊的需求。

    • 过滤器一般完成一些通用的操作,比如:权限控制,统一编码处理,敏感字符处理等等…

    在这里插入图片描述

    Filter 快速入门

    1. 定义类:实现Filter接口,并重写所有方法

      public class FilterDemo implements Filter{
          public void init(FilterConfig filterConfig){};
          public void doFilter(ServletRequest request,ServletResponse response,Chain chain){};
          public void destrory(){};
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
    2. 配置Filter 拦截资源的路径,在类的定义@WebFilter注解

      @WebFilter("/*")
      public class FilterDemo implements Filter{}
      
      • 1
      • 2
    3. 在doFilter方法中输出一句话,并放行

      public void doFilter(ServletRequest request,ServletResponse response){
      	System.out.println("filter被执行了...");
      	//放行
      	chain.doFilter(request,response);
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5

    Filter 执行流程

    在这里插入图片描述

    1. 放行后访问对应资源,资源访问完成后是否还会回到Filter中?

      会。

    2. 如果回到Filter中,是重头执行还是执行放行后逻辑?

      执行放行后逻辑。

    3. 执行流程:

      执行放行前逻辑==》放行==》访问资源==》执行放行后逻辑

    Filter 使用细节

    Filter拦截路径配置

    • 拦截具体资源:/index.jsp:只有访问index.jsp时才会被拦截
    • 目录拦截:/user/*:访问/user下的所有资源,都会被拦截
    • 后缀名拦截:*.jsp:访问后缀名位jsp的资源,都会被拦截
    • 拦截所有:/*:访问所有资源,都会被拦截
    @WebFilter("/index.jsp")
    public class FilterDemo implements Filter {
    
    • 1
    • 2

    过滤器链

    在这里插入图片描述

  • 相关阅读:
    Idea断点调试(debug)详解
    Git系列之删除文件
    前端基础知识
    pat basic 1050 螺旋矩阵
    VUE 笔记 基础语法篇
    15:00面试,15:06就出来了,问的问题有点变态。。。
    机器学习:十大算法快速回顾
    汽车屏幕色彩与亮度评估指标(Fliker测试)
    1. Linux基础知识
    8寸Windows 10/Android 4.4系统三防平板电脑
  • 原文地址:https://blog.csdn.net/weixin_50659410/article/details/126412220