本文共 806 字,大约阅读时间需要 2 分钟。
本节书摘来异步社区《Java EE 7精粹》一书中的第2章,第2.6节,作者:【美】Arun Gupta,更多章节内容可以访问云栖社区“异步社区”公众号查看。
包含在库或框架JAR包的META-INF目录中的一个web fragment片段是部分或全部在web.xml文件中。如果这个框架绑定在WEB-INF/lib目录中,容器会选择和配置框架,而无需开发人员显示地做到这一点。
Web Fragment可以包括几乎所有web.xml中指定的元素。然而,其顶级元素必须是web-fragment,并且相应的文件必须命名为webfragment.xml。这将允许Web应用程序逻辑分区:
开发人员可以指定在web.xml和web-fragment.xml中定义的资源的加载顺序。web.xml中的元素用于指定资源加载的确切顺序,web-fragment.xml中的元素用于指定相对排序。这两个命令是互斥的,绝对顺序覆盖相对顺序。
绝对顺序包含一个或多个元素用于指定资源的名称,元素定义的顺序即是加载顺序。元素允许指定其他没有命名的资源的加载顺序:
在这段代码中,web.xml中指定的资源先被加载,随后是MyServlet和MyFilter。
元素中的零个或一个和元素用于指定资源,使web-fragment命名的资源在其之前、之后被加载:
这段代码将要求容器在加载MyServlet资源(在其他地方定义的)之后,加载MyFilter资源。
如果web.xml中metadata-complete设置为true,那么web-fragment.xml文件不会被处理。解决web.xml和web-fragment.xml之间的冲突时,web.xml文件具有最高的优先级。
如果一个web-fragment.xml文件没有元素并且web.xml没有元素,资源被假定不具有任何顺序依赖性。
转载地址:http://rcato.baihongyu.com/