Filter快速入门

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

Filter

Filter简介

  • 概念:Filter表示过滤器,是Javaweb三大组件之一(Servlet,Filter,Listener)之一
  • 过滤器可以把资源的请求拦截下来,从而实现一些特殊的功能
  • 过滤器一般完成一些通用的操作,比如:权限控制,统一编码处理,敏感字符处理等等...

Filter快速入门

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

publicclassFilterDemo1implementsFilter {

   @Override

   publicvoiddoFilter(ServletRequestservletRequest, ServletResponseservletResponse, FilterChainfilterChain) throwsIOException, ServletException {}

   @Override

   publicvoidinit(FilterConfigfilterConfig) throwsServletException {}

   @Override

   publicvoiddestroy() {}

}

  1. 配置Filter拦截资源的路径,在类上定义@WebFilter注解

@WebFilter("/*")

publicclassFilterDemo1implementsFilter {

  1. 在doFilter方法中输出一句话,并放行

publicvoiddoFilter(ServletRequestservletRequest, ServletResponseservletResponse, FilterChainfilterChain) throwsIOException, ServletException {

       //1放行前,对request数据进行处理

       System.out.println("filter,被执行了。。。");

       //放行

       filterChain.doFilter(servletRequest, servletResponse);

       //2放行后,对response数据进行处理

       System.out.println("3.FilterDemo...");

   }

Filter执行流程

  1. 放行后访问对应资源,资源访问完成后,还会回到Filter中
  2. 如果回到Filter中,是重头执行还是执行放行后的逻辑?
    当然是放行后的逻辑,顺序是执行放行前逻辑->放行->访问资源->执行放行后逻辑

Filter拦截路径配置

  • Filter可以根据需求,配置不同的拦截资源路径

@WebFilter("/*")这里设置拦截不同的资源

  1. 拦截具体的资源:/index.jsp:只有访问index.jsp时才会被拦截
  2. 目录拦截:/user/*:访问/user下的所有资源,都会被拦截
  3. 后缀名拦截:*.jsp:访问后缀名为jsp的资源,都会被拦截
  4. 拦截所有:/*:访问所有资源。都会被拦截

过滤器链

  • 一个web应用,可以配置多个过滤器,着多个过滤器称为过滤器链
  • 注解配置的Filter,优先级按照过滤器类名(字符串)的自然排序
相关文章
|
5月前
|
存储 SpringCloudAlibaba 负载均衡
|
5月前
|
安全 Java Spring
SpringSecurity6从入门到实战之Filter过滤器回顾
该文主要介绍了SpringSecurity框架中的过滤器Filter,探讨了在没有SpringSecurity时如何检查用户登录状态以保护资源。文中通过流程图展示了过滤器在HTTP请求处理中的位置,并提供了官方和中文文档链接。过滤器需实现Filter接口,用于拦截请求并进行预处理和后处理,例如强制登录检查。过滤器链FilterChain则是一系列Filter和资源的组合,通过doFilter方法逐个调用下一个过滤器或传递到目标资源。
|
5月前
|
缓存 自然语言处理 监控
elasticsearch过滤器filter:原理及使用
elasticsearch过滤器filter:原理及使用
|
6月前
|
索引
说说 Elasticsearch filter 和 post_filter 的区别?
说说 Elasticsearch filter 和 post_filter 的区别?
60 0
|
6月前
|
XML PHP 数据格式
小课堂 -- xss filter过滤器
小课堂 -- xss filter过滤器
91 0
|
6月前
|
缓存
SpringBootRestFul快速入门
SpringBootRestFul快速入门
41 0
|
Python
Python高级过滤器:掌握filter函数从入门到精通
Python高级过滤器:掌握filter函数从入门到精通
186 0
|
Java
Filter概述、接口及配置
Filter概述、接口及配置
10771 0
|
Java Scala 开发者
Match 基本介绍和快速入门 | 学习笔记
快速学习 Match 基本介绍和快速入门
Match 基本介绍和快速入门 | 学习笔记
|
Java
【JavaWeb】【学习】【过滤器】Filter 的简单应用
【JavaWeb】【学习】【过滤器】Filter 的简单应用
134 0
【JavaWeb】【学习】【过滤器】Filter 的简单应用