在web.xml中实现ServletContainerInitializer的类

Ayy*_*udy 3 java web.xml java-ee

您是否可以指向ServletContainerInitializerweb.xml文件中实现接口的类,或者您是否必须在其下添加一个文件以使META-INF/services/javax.servlet.ServletContainerInitializerJ2EE服务器获取它?

如果可以通过web.xml文件,请解释如何.

pal*_*int 8

我已经检查了Java Servlet规范3.0,但我没有找到任何可以通过它配置的线索web.xml.我认为唯一的方法是 META-INF/services/javax.servlet.ServletContainerInitializer文件.

请注意,这META-INF/services/javax.servlet.ServletContainerInitializer是一个文件(不是目录),必须包含initalizer的完全限定名称,如:

com.example.MyServletContainerInitializer
Run Code Online (Sandbox Code Playgroud)

它也可能在战争中(用Tomcat 7.0.21测试).

这是一个完整的例子:http://nullhaus.com/2011/03/using-servlets-3-0-servletcontainerinitializer/

  • 为了进一步证实,不可能在`web.xml`中配置`ServletContainerInitializer`.从_Servlet 3.0 Spec,8.2.4_:"容器/应用程序启动时容器通过jar服务API查找`ServletContainerInitializer`的实例.提供`ServletContainerInitializer`实现的框架必须在jar文件的"META-INF/services目录"是一个名为`javax.servlet.ServletContainerInitializer`的文件,根据jar服务API,它指向`ServletContainerInitializer`的实现类. (4认同)