过滤器Filter讲解-以及两种配置⽅式
filter过滤对象数组⽂章⽬录
1. 担任的⾓⾊
拦截请求、响应的作⽤ — 像⼩区的保安
2. 运⾏的流程
请求的预处理: 改变客户端请求的内容
响应的后处理: 改变Servlet、JSP等给⽤户的响应内容
作⽤功能: 设置⽤户访问权限、记录⽤户操作、对请求进⾏编码、压缩给客户端响应的资源
由上⾯的过滤器流程可知、⼀个服务器可能设置了多个过滤器,但⼀个请求并不需要经过⼀个服务器的所有过滤器,每个过滤器都有⾃⼰的过滤条件来进⾏请求过滤
3. ⽣命周期
4. 三⼤过滤器核⼼接⼝
4.1 Filter
接⼝
4.3 FilterChain接⼝
5. 过滤器的使⽤
5.1 代码实现
public class TestFilter implements Filter{
public TestFilter(){
System.out.println("实例化对象TestFilter()");
}
@Override
public void init(FilterConfig fc)throws ServletException {
System.out.println("初始化过滤器init(FilterConfig)");
//过滤器的配置参数在下⾯⽂章中
String name = fc.getFilterName();
String user = fc.getInitParameter("user");
String Year = fc.getInitParameter("Year");
String ParameterNames = Collections.list( fc.getInitParameterNames()).toString();
System.out.println(name +"\n"+ user +"\n"+ ParameterNames);
Filter.super.init(fc);
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {
System.out.println("过滤操作doFilter(req, resp, FilterChain)");
// 传给下⼀个过滤器,如果没有过滤器匹配,则直接访问资源
chain.doFilter(request, response);
}
@Override
public void destroy(){
System.out.println("销毁过滤器destory()");
Filter.super.destroy();
}
}
  运⾏结果
Totmcat服务器启动时:输出
实例化对象TestFilter(
初始化过滤器init(FilterConfig)
TestFilter1
⼩明
2019
[year, user]
每次有向服务器请⽰时:输出
过滤操作doFilter(req, resp, FilterChain)
Tomcat服务器关闭时:输出
销毁过滤器destory()
5.2 声明配置
过滤器匹配的URL:urlPatterns + servletName( 注意这⾥是servletName不是servlet-class )
5.2.1 注解@WebFilter

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。