如何删除/替换ServletRegistration?

时间:2013-05-29 16:26:24

标签: servlet-3.0

是否可以通过servlet-api替换ServletRegistration?

以下代码只能为给定的servlet名称注册新的Servlet,但是如果存在名称的servlet,它什么都不做。

ServletContext.addServlet( "servletName", ServletClass.class );

所以我正在寻找替换注册(同名的其他ServletClass)或删除名称的可能性。

1 个答案:

答案 0 :(得分:0)

在servlet上下文初始化期间提供了添加servlet的工具。 鉴于it is impossible to add new servlets at runtime i.e. anytime after the Servlet Context is initialised,您应该在servlet上下文初始化期间添加正确的servlet集。

在servlet上下文初始化中添加一个带有名称的servlet然后将其替换为另一个servlet实际上没有意义。不是吗? 你看到它的用例吗?

@Balusc实际建议good alternative

a single controller servlet in combination with command pattern is much better suited. 
You could then add commands (actions) during runtime and intercept on it based on the request URI.