Java 以编程方式添加Servlet或过滤器的优点或用例是什么?

Java 以编程方式添加Servlet或过滤器的优点或用例是什么?,java,jakarta-ee,servlets,servlet-3.0,Java,Jakarta Ee,Servlets,Servlet 3.0,这让我感到奇怪,因为我没有看到使用contextListener(据我所知,它只运行一次)以编程方式添加servlet比DD或注释更具优势。我想知道一个常见的用例,它有助于以编程方式添加它们 如果有一种在运行时(在应用程序运行期间)以编程方式添加servlet的方法,我可能会想到一些情况,但似乎只有通过contextListener或 来自ServletContainerInitializer的onStartup方法 实施 正如Servlet 3.0所述。在运行时添加Servlet等功能主要是为

这让我感到奇怪,因为我没有看到使用contextListener(据我所知,它只运行一次)以编程方式添加servlet比DD或注释更具优势。我想知道一个常见的用例,它有助于以编程方式添加它们

如果有一种在运行时(在应用程序运行期间)以编程方式添加servlet的方法,我可能会想到一些情况,但似乎只有通过contextListener或

来自ServletContainerInitializer的onStartup方法 实施


正如Servlet 3.0所述。

在运行时添加Servlet等功能主要是为框架创建者设计的

如果您创建了一个框架,可以使用普通的POJOJava对象,那么您需要在某个时候创建servlet——它们必须为web访问公开POJO类。因为您可以动态创建servlet,所以不需要POJO类的配置文件。很好

通用框架可能还具有可动态“打开/关闭”的过滤器,例如,可能存在负责用户授权/身份验证的可切换过滤器


在“普通”应用程序中,通常所有servlet、过滤器都是预先知道的,因此几乎不需要编程添加。

这是一个很棒的答案,我真的很困惑