过滤器类的运行
package filter; import jakarta.servlet.*; import jakarta.servlet.annotation.WebFilter; import java.io.IOException; @WebFilter(value="/t")//拦截的路径 public class Servlet implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("拦截"); } @Override public void destroy() { } }
过滤器两种配置方式
第一种:
<filter> <filter-name>LogFilter</filter-name> <filter-class>com.test.LogFilter</filter-class> <init-param> <param-name>Site</param-name> <param-value>*</param-value>//需要拦截的类 </init-param> </filter>
第二种:
@WebFilter("/*")
关于拦截路径
过滤器的拦截路径通常有三种形式:
1、精确拦截匹配,比如/index.jsp/myservlet1
2、后缀拦截匹配,比如* .jsp、*.html、* .jpg
3、通配符拦截匹配/*,表示拦截所有。注意过滤器不能使用/匹配。
4、/aaa/ bbb/*允许