Filter介绍

Filter可以认为是Servlet的一种加强版,主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。

Filter的作用有:

  • 拦截客户的HttpServletRequest, 修改其头和数据
  • 拦截到达客户的HttpServletResponse,修改其头和数据

1 创建Filter类

创建Fileter类必须实现javax.servlet.Filter接口,在这个接口中有三个方法,init, destroy, doFilter

@WebFilter(filterName="log",urlPattern={"/*"})
public class LogFileter implements Filter
{
    private FilterConfig config;
    public void init(FilterConfig config)
    {
        this.config = config;
    }
    public void destroy()
    {
        this.config = null;
    }
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException
    {
     }

2 配置Filter

配置方法除了上面用@WebFilter注解来进行配置之外,还可以通过web.xml来配置


    log
    kevin.LogFilter


    log
    /*

在实际项目中很多Servlet中涉及到的权限控制、记录日志等代码是重复的,这样就可以放到Filter中进行。

你可能感兴趣的:(Filter介绍)