Servlet过滤器Fileter是一个小型的web组件,它们通过拦截请求和响应,以便查看、提取或以某种方式操作客户端和服务器之间交换的数据,实现“过滤”的功能。
原理:调用目标资源之前,让一段代码执行。web服务器在调用doFilter方法时,会传递一个filterChain对象进来,filterChain对象是filter接口中最重要的一个对象,它也提供了一个doFilter方法,开发人员可以根据需求决定是否调用此方法,调用该方法,则web服务器就会调用web资源具体的servlet,即web资源就会被访问,否则web资源不会被访问。
每一个过滤器中有一个filterChain对象,这个对象就是过滤器的链,doFilter, - 放行,如果这个方法被调用则说明可以访问下一个过滤器,如果不调用这个方法,此时请求就停止
注意: 当在web.xml中配置了一个filter之后,在web容器(tomcat服务器)启动的时候会自动加载该filter,这个时候filter就会初始化,那么后续的只要有匹配的路径来访问web资源时,就会调用doFilter方法。其destroy方法在web容器关闭,或web应用移除时会调用。