使用@WebFileter注解的过滤器,需要实现Filter接口,其定义如下:
public interface Filter { // 初始化 public void init(FilterConfig filterConfig) throws ServletException; // 过滤方法 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException; // 销毁 public void destroy(); }
以下是个过滤器的例子:
@WebFilter(urlPatterns = "/*") public class MyFilter implements Filter { private static final Logger logger = LoggerFactory.getLogger(MyFilter.class); @Override public void init(FilterConfig filterConfig) { logger.warn("过滤器初始化:{}", filterConfig); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) request; Enumeration<String> headerNames = httpServletRequest.getHeaderNames(); while (headerNames.hasMoreElements()) { String headerName = headerNames.nextElement(); Enumeration<String> headers = httpServletRequest.getHeaders(headerName); while (headers.hasMoreElements()) { String headerValue = headers.nextElement(); logger.warn("{}={}", headerName, headerValue); } } chain.doFilter(request, response); } @Override public void destroy() { logger.warn("过滤器销毁:{}",this); } }
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END