我可以拥有一个包含多个web.xml文件的应用程序吗?并且两个应用程序是否可以有父子关系,因此有两个web.xml?
答案 0 :(得分:6)
对于下面的servlet 3.0,你不能。
如果您使用3.0,则会有possibility。
在JSR 315:Java Servlet 3.0规范中,引入了 web-fragment.xml ,用于封装在 WEB-INF / lib 下的库jar的可插拔性。 web.xml和web-fragment.xml的内容几乎相同。可以在那里定义servlet,过滤器和监听器。也可以在给定的 web-fragment.xml 中指定metadata-complete = true。在后一种情况下,将跳过该jar中类的注释处理。使用 web-fragment.xml ,库jar可以是自包含的,并提供与Web相关的元数据信息。
当然,有两个xml
会产生混淆,除此之外,如果你解释了你的确切要求,你会得到一个很好/标准的解决方案。
答案 1 :(得分:0)
Can i Have a single application with more than one web.xml files?
这取决于方法。
方法1
如果你在一个有某些servlet的环境中工作(我记得我在一个有Minification servlet
的旧项目上工作,其目的是在部署时缩小JS / CSS)和类似的设置例如,您不希望在开发环境中配置某些用户约束和领域,因为您将使用爆炸的JS / CSS,并且您希望绕过应用程序中配置的基本安全约束,只是为了便于开发,但您希望它们全部在QA上进行了测试,因此为同一个应用程序配置2个不同的部署描述符是“有点”的。其中只有基本设置才能部署应用程序以进行开发,另一方面,您需要在QA上从A到Z测试所有生产设置。
但是,我想再次明确表示您可以仅使用一个部署描述符来部署应用程序。
方法2
让我们假设您希望将部署描述符分解为一小部分以实现可插拔性,例如将Servlet定义在一个文件中,并在其他文件中定义您的安全性约束。这些文件或web-fragments.xml
只能与Servlet3.0一起使用。如果仔细查看这些片段的使用方式,在部署时,所有这些片段都会被容器合并并作为“单个”文件(部署描述符)读取。
最后,我们再次为应用程序提供了一个SINGLE部署描述符。