@WebFilter 的使用
@WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器
方法介绍:
1 public void doFilter (ServletRequest, ServletResponse, FilterChain)
该方法完成实际的过滤操作,当客户端请求方法与过滤器设置匹配的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain用户访问后续过滤器。
2 public void init(FilterConfig filterConfig)
web 应用程序启动时,web 服务器将创建Filter 的实例对象,并调用其init方法,读取web.xml配置,完成对象的初始化功能,从而为后续的用户请求作好拦截的准备工作(filter对象只会创建一次,init方法也只会执行一次)。开发人员通过init方法的参数,可获得代表当前filter配置信息的FilterConfig对象。
3 public void destroy()
Servlet容器在销毁过滤器实例前调用该方法,在该方法中释放Servlet过滤器占用的资源。
代码
/**
-
使用注解标注过滤器
-
@WebFilter将一个实现了javax.servlet.Filte接口的类定义为过滤器
-
属性filterName声明过滤器的名称,可选
-
属性urlPatterns指定要过滤 的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性)
/
@WebFilter(filterName=“Servlet3Filter”,urlPatterns="/")
public class Servlet3Filter implements Filter {@Override
public void destroy() {
System.out.println(“过滤器销毁”);
}@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println(“执行过滤操作”);
chain.doFilter(request, response);
}@Override
public void init(FilterConfig config) throws ServletException {
System.out.println(“过滤器初始化”);
}
}