filter是过滤器,要实现javax.Servlet.Filter接口,Filter接口中有三个方法,init(),doFilter(),destory()三个方法,在web.xml中配置filter接口来实现过滤哪些URL.他是在Servlet容器启动后初始化的,web.xml中的映射配置顺序按照配置条件从后向前调用,层次调用doFilter()方法中FilterChain.doFilter()之前的内容,然后调用servlet()中service()方法,service()方法执行完毕后再层次调用FilterChain.doFilter()之后的方法。filter销毁是在服务器停止之前销毁的,但是是在servlet之前销毁。他的作用是①HttpServletRequest进去Servlet之前起到拦截客户的HttpServletRequest。 根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据,②在HttpServletResponse到达客户端之前,拦截HttpServletResponse,也可以修改HttpServletResponse头和数据。
servlet要实现HttpServlet接口,Servlet接口中也有三个方法,init(),service(),destory()三个方法,也是在web.xml中配置servlet接口,是在Servlet类被调用后进行初始化,初始化是要在filter之前进行的,是按照web.xml映射配置进行调用第一个满足条件的Servlet,调用之前要先执行满足条件的Filter,主要是处理服务器端处理后的信息发从给客户端的信息。
前两者都是针对URL进行过滤处理的,而Listener是针对对象来进行操作的,例如Session之类的。