Are Java Filter Singleton

jakarta-ee, java, servlet-filters

Solution

First, let's review the definition of Singleton Pattern (emphasis mine):

In software engineering, the singleton pattern is a design pattern that restricts the instantiation of a class to one object.

When you declare a class that implements the `Filter` interface, it needs a `public` constructor (usually the default constructor) so the application server could instantiate it. Thus, by doing this, the `Filter` is not a singleton.

Note that the application server will maintain a single instance per application context e.g. per a deployed web application, but this is not the same as having a singleton. Why? Because you or another programmer can carelessly create an instance of this class (even if it doesn't make use of the instance).

Problem

I am implementing a Java enterprise application and declared a Filter for every request, so how does the server tracks this request, do it create a new filter object for every request, or their is only one filter handling all request, in other words are java web filter singletone?

Original source

Related problems