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月前
|
数据处理 C语言 开发者
Filter函数有哪些的高级用法
`filter()`函数是Python中用于从序列中按条件筛选元素的内置函数。它接受一个函数和一个可迭代对象作为参数,返回一个迭代器,该迭代器包含应用函数后返回`True`的元素。基本语法是`filter(function, iterable)`。可以使用`lambda`表达式简化条件,例如筛选偶数:`filter(lambda x: x % 2 == 0, numbers)`。文章还讨论了使用自定义函数、处理多个条件的情况,并对比了`filter()`与列表推导式的用法。
191 3
|
5月前
|
安全 Java Spring
SpringSecurity6从入门到实战之Filter过滤器回顾
该文主要介绍了SpringSecurity框架中的过滤器Filter,探讨了在没有SpringSecurity时如何检查用户登录状态以保护资源。文中通过流程图展示了过滤器在HTTP请求处理中的位置,并提供了官方和中文文档链接。过滤器需实现Filter接口,用于拦截请求并进行预处理和后处理,例如强制登录检查。过滤器链FilterChain则是一系列Filter和资源的组合,通过doFilter方法逐个调用下一个过滤器或传递到目标资源。
|
5月前
|
缓存 自然语言处理 监控
elasticsearch过滤器filter:原理及使用
elasticsearch过滤器filter:原理及使用
|
5月前
|
缓存 监控 索引
Elasticsearch中的post_filter后置过滤器技术
Elasticsearch中的post_filter后置过滤器技术
|
6月前
|
索引
说说 Elasticsearch filter 和 post_filter 的区别?
说说 Elasticsearch filter 和 post_filter 的区别?
60 0
|
6月前
|
缓存
SpringBootRestFul快速入门
SpringBootRestFul快速入门
41 0
|
Java 调度
一张思维导图带你学会SpringBoot自定义Filter
一张思维导图带你学会SpringBoot自定义Filter
117 0
|
Java
Filter概述、接口及配置
Filter概述、接口及配置
10768 0
|
Java
【JavaWeb】【学习】【过滤器】Filter 的简单应用
【JavaWeb】【学习】【过滤器】Filter 的简单应用
134 0
【JavaWeb】【学习】【过滤器】Filter 的简单应用