是Java Filter Singleton

Pha*_*jee 7 java java-ee servlet-filters

我正在实现一个Java企业应用程序并为每个请求声明一个Filter,所以服务器如何跟踪这个请求,为每个请求创建一个新的过滤器对象,或者它们只是一个处理所有请求的过滤器,换句话说就是java网页过滤单线?

Lui*_*oza 15

首先,让我们回顾一下Singleton Pattern的定义(强调我的):

在软件工程中,单例模式是一种设计模式,它将类的实例化限制为一个对象.

当您声明一个实现Filter接口的类时,它需要一个public构造函数(通常是默认构造函数),因此应用程序服务器可以实例化它.因此,通过这样做,Filter 不是单身人士.

请注意,应用程序服务器将为每个应用程序上下文维护单个实例,例如,根据部署的Web应用程序,但这与单个应用程序不同.为什么?因为您或其他程序员可能会不小心创建此类的实例(即使它没有使用该实例).

  • 不是单身,而是基本上等同于CDI中的"@ApplicationScoped". (4认同)