[Java EE 7] Web Fragments

Web Fragments 是 Java EE 7 引入的一种新特性,允许开发者将 Web 应用程序的部分配置从 web.xml 文件中分离出来。这些配置文件(web-fragment.xml)可以放置在应用程序或 JAR 包的 META-INF 目录下,由容器自动加载。Web Fragments 支持大多数 web.xml 文件中可用的配置项,并可通过特定元素定义资源的顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

web fragment 文件可以是一部分或者全部的 web.xml 文件,它放在工程或者 jar 包的 META-INF 文件夹下。Web 容器将会自动加载全部的 web fragment 文件,而不需要开发者参与。

它可以定义几乎全部 web.xml 文件可以定义的内容。但它的根元素是 web-fragment,并且文件名必须是 web-fragment.xml。有了 web fragment 可以对应用程序做更好的逻辑分离。

<web-fragment>
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>org.example.MyFilter</filter-class>
<init-param>
<param-name>myInitParam</param-name>
<param-value>...</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-fragment>


开发人员可以通过 web.xml 文件中的 元素来指定资源的绝对顺序。也可以使用 web-fragment.xml 文件中的 元素来指定资源的相对顺序。当绝对顺序和相对顺序发生冲突的时候,绝对顺序将覆盖相对顺序。 在绝对顺序中,使用 元素表示资源的名称并且制定资源的顺序:

<web-app>
<name>MyApp</name>
<absolute-ordering>
<name>MyServlet</name>
<name>MyFilter</name>
</absolute-ordering>
</web-app>


上面的 web.xml 片段制定了资源的顺序是先 MyServlet 再 MyFilter。

在 web-fragment.xml 文件的 中可以使用零个或一个 和 元素,用来制定相对顺序。这两个元素用来指定当前资源的顺序是在指定的资源之前还是在指定的资源之后。可以使用 元素来表示其它的所有资源。

<web-fragment>
<name>MyFilter</name>
<ordering>
<after>MyServlet</after>
</ordering>
</web-fragment>


上面的代码定义了 MyFilter 的顺序在 MyServlet 之后。

如果 web.xml 中的 metadata-complete 设置为 true,那么 web-fragment.xml 将不会被处理。web.xml 拥有最高的优先级,当配置发生冲突的时候,以 web.xml 为准。

如果在 web-fragment.xml 中没有 元素,并且 web.xml 中也没有 元素,那么资源将会处于无序的状态。

文章来源:[url]http://www.aptusource.org/2014/04/java-ee-7-web-fragments/[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值