Difference between Filter and Listener in Servlet (Java EE)

前端 未结 10 1148
有刺的猬
有刺的猬 2020-12-22 19:05

There are Filters and Listeners functionality in Servlet. I want to know exact difference between Filter and Listener.

10条回答
  •  悲哀的现实
    2020-12-22 19:34

    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.

    Listeners vs Filters

    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 })
    

提交回复
热议问题