以编程方式添加Servlet或Filter的优点或用例是什么?

时间:2012-04-22 22:45:49

标签: java java-ee servlets servlet-3.0

这个Question让我想知道,因为我没有看到使用contextListener(据我所知运行一次)以DD或Annotations方式添加servlet。我希望了解一个常见的用例,它有助于以编程方式添加它们。

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

来完成
  

来自ServletContainerInitializer的onStartup方法   实施

正如Servlet 3.0所述。

1 个答案:

答案 0 :(得分:1)

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

如果您创建一个框架,例如,使用普通的POJO Java对象,那么您需要在某些时候创建servlet - 它们必须为Web访问公开POJO类。因为您可以动态创建servlet,所以不需要POJO类的配置文件。尼斯!

通用框架可能还有可以动态“打开/关闭”的过滤器,例如可以使用可切换的过滤器来处理用户授权/身份验证。

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