栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于Filter过滤器的理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Filter过滤器的理解

关于Filter过滤器的理解 1.作用
  • 过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理。
  • 通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理。
2.应用实例
  • 自动登录
  • 统一设置编码格式
  • 访问权限控制
  • 铭感字符过滤等
3.创建Filter
  • 创建完成之后,直接使用@WebFilter注解,不用去web.xmi中进行配置了。
  • 创建完成的过滤器实现了Filter接口,实现了3个方法。
package filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter(filterName = "CharsetFilter")
public class CharsetFilter implements Filter {
    public void destroy() {
        
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        
       
        chain.doFilter(req, resp);//交给下一个过滤器或servlet处理
    }

    public void init(FilterConfig config) throws ServletException {

        

    }

}
4.配置Filter

常用配置项

(1) urlPatterns

  • 配置要拦截的资源:
  • 以指定资源匹配。例如"/index.jsp"
  • 以目录匹配。例如"/servlet/*"
  • 以后缀名匹配。例如"*.jsp"
  • 通配符,拦截所有web资源。例如"/*"

(2) initParams

  • 配置初始化参数,跟Servlet配置一样。
  • 例如:initParams = { @WebInitParam(name = "key",value = "value") }

(3) dispatcherTypes

  • 配置拦截的类型,可配置多个。默认为DispatcherType.REQUEST

  • 例如:

  • dispatcherTypes = {DispatcherType.ASYNC,DispatcherType.ERROR}

  • 其中DispatcherType是个枚举类型,有以下几个值:

  • FORWARD,//转发的 INCLUDE,//包含在页面的 REQUEST,//请求的 ASYNC,//异步的 ERROR;//出错的

      注:过滤器是在服务器启动时就会创建的,只会创建一个实例,常驻内存,也就是说服务器一启动就会执行Filter的init(FilterConfig config)方法.
      当Filter被移除或服务器正常关闭时,会执行destroy方法。
    
5.多个Filter执行顺序
  • 在我们的请求到达Servle之间是可以经过多个Filter的,一般来说,建议Filter之间不要有关联,各自处理各自的逻辑即可。这样,我们也无需关心执行顺序问题。
    如果一定要确保执行顺序,就要对配置进行修改了,执行顺序如下:
  • 在web.xml中,filter执行顺序跟的顺序有关,先声明的先执行。
  • 使用注解配置的话,filter的执行顺序跟名称的字母顺序有关,例如AFilter会比BFilter先执行。
  • 如果既有在web.xml中声明的Filter,也有通过注解配置的Filter,那么会优先执行web.xml中配置的Filter。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/922251.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号