Adeel's answer covered it. A Filter's life cycle is like a servlet's For more information read section SRV.6.2.1 in the servlet specification:
SRV.6.2.1 Filter Lifecycle After deployment of the Web application, and before a request causes the container to access a Web resource, the container must locate the list of filters that must be applied to the Web resource as described below. The container must ensure that it has instantiated a filter of the appropriate class for each filter in the list, and called its init(FilterConfig config) method. The filter may throw an exception to indicate that it cannot function properly. If the exception is of type UnavailableException, the container may examine the isPermanent attribute of the exception and may choose to retry the filter at some later time. Only one instance per <filter> declaration in the deployment descriptor is instantiated per Java Virtual Machine (JVMTM) of the container. The container provides the filter config as declared in the filter�s deployment descriptor, the reference to the ServletContext for the Web application, and the set of initialization parameters.