0

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

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

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

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

4

1 回答 1

0

添加 servlet 的功能是在 servlet 上下文初始化期间提供的。鉴于不可能在运行时(即在 Servlet 上下文初始化后的任何时间)添加新的 servlet,您应该在 servlet 上下文初始化期间添加正确的 servlet 集。

添加一个带有名称的 servlet 然后用另一个 servlet 替换它确实没有意义,所有这些都在 servlet 上下文初始化中。不是吗?您看到它的任何用例吗?

@Balusc 实际上提出了一个不错的选择

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.
于 2013-05-29T20:10:19.693 回答