2.过滤器的基本使用

1.过滤器的生命周期( 实现的是Javax.Servlet这个包中的Filter)

/** 第一个过滤器 */ public class FirstFiter implements Filter{ public FirstFiter(){ System.out.println("过滤器的构造方法"); } @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("过滤器的初始化方法init"); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("过滤器的doFiter"); } @Override public void destroy() { System.out.println("过滤器的destroy方法"); } } =================================== 执行的顺序: 在部署项目的使用,构造方法和init初始化方式就创建好了,然后就是调用dofiter的过滤任务,最后就是执行了销毁的任务了! 销毁任务:当服务器重新部署,或者服务器崩溃就是执行销毁任务

2.在web.xml中部署过滤
FirstFiter com.zhu.Demo.FirstFiter FirstFiter/FirstServlet

3.FiterConfig这个对象(过滤器的初始化参数对象)
@Override public void init(FilterConfig filterConfig) throws ServletException { //FiterConfig得到初始化的参数 //得到一个参数 System.out.println(filterConfig.getInitParameter("AAAA")); //得到全部的参数 Enumeration enumeration =filterConfig.getInitParameterNames(); while (enumeration.hasMoreElements()){ String paraName =enumeration.nextElement(); String paraValue =https://www.it610.com/article/filterConfig.getInitParameter(paraName); System.out.println(paraName+":"+paraValue); } } 在web.xml中配置如下: ConfigFiter com.zhu.Demo.ConfigFiterAAAAaaaaValue BBBB【2.过滤器的基本使用】bbbbValue ConfigFiter /FirstServlet

4.过滤器链(就是多个过滤器在一起组合在一起了)
doFilter(ServletRequest request, ServletResponse response, FilterChain chain): 执行过滤任务 参数一: ServletRequest是HttpServletRequest的父接口。实际上传入的是HttpServletRequest接口的实现类。 参数二: ServletResponse是HttpServletResponse的父接口。实际上传入HttpServletResponse接口的实现类。 参数三: FilterChain 过滤器链接口 doFilter(ServletRequest request, ServletResponse response):执行过滤器链中的下一个过滤器,如果没有下一个过滤器则执行目标资源。 *****过滤器链: 一个目标资源可以被多个过滤器过滤,那么形成一个过滤器链。*** 注意:过滤器链中的过滤器执行顺序问题:由web.xml中filter-mapping的配置决定顺序。先配置的优先被执行

    推荐阅读