There are Filters and Listeners functionality in Servlet. I want to know exact difference between Filter and Listener.
One important difference is often overlooked: while listeners get triggered for an actual physical request, filters work with servlet container dispatches. For one listener invocation there may be multiple filters/servlet invocations.

Mapping filters dispatcher types. The link is a bit dated - it doesn't include the Servlet 3.0 Async dispatcher type.
One can also specify dispatcher types with the @WebFilter annotation:
import javax.servlet.DispatcherType;
import javax.servlet.annotation.WebFilter;
@WebFilter(servletNames = { "My Servlet" },
dispatcherTypes = { DispatcherType.REQUEST, DispatcherType.FORWARD })