A Servlet 3.0 specifikációban egy erőforrás web-fragment.xml fájlban meghatározott <injection-target> elemei csak akkor kerülnek hozzáadásra a szülő web.xml fájlhoz, ha az azonos nevű web.xml erőforrás-hivatkozás meghatározásban nincsenek <injection-target> elemek. A Servlet 3.1 specifikáció pontosítja, hogy egy azonos nevű erőforrás-hivatkozás esetén a web-fragment.xml leírókban lévő összes <injection-target> elem hozzáadásra kerül az <injection-target> elem szülő web.xml leíróinak listájához. A Servlet 3.1 szolgáltatás módosíthatja az alkalmazás jelenlegi viselkedését a web.xml fájlból korábban kizárt beszúrási célok aktiválásával.
Ez a szabály megjelöli az <injection-target> elemet a web-fragment.xml fájlban, ha a web.xml fájl tartalmaz egy <injection-target> elemet egy <resource-ref> elemen belül, amely ugyanazzal a névvel van meghatározva, mint a web-fragment.xml fájlban lévő <resource-ref> elem.
A következő példák bemutatják a viselkedésváltozást egy web.xml fájl és egy web-fragment.xml fájl kombinációjának használatakor:
web.xml:
<resource-ref> <res-ref-name>ReferenceName</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> <injection-target> <injection-target-class>Class1</injection-target-class> <injection-target-name>Resource1</injection-target-name> </injection-target> </resource-ref>
web-fragment.xml:
<resource-ref> <res-ref-name>ReferenceName</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> <injection-target> <injection-target-class>Class2</injection-target-class> <injection-target-name>Resource2</injection-target-name> </injection-target> </resource-ref>
A Servlet 3.0 változatban a kombinált eredmény figyelmen kívül hagyja a Class2 beszúrási célját:
<resource-ref> <res-ref-name>ReferenceName</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> <injection-target> <injection-target-class>Class1</injection-target-class> <injection-target-name>Resource1</injection-target-name> </injection-target> </resource-ref>
A Servlet 3.1 változatban a kombinált eredmény használja a Class2 beszúrási célját:
<resource-ref> <res-ref-name>ReferenceName</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> <injection-target> <injection-target-class>Class1</injection-target-class> <injection-target-name>Resource1</injection-target-name> </injection-target> <injection-target> <injection-target-class>Class2</injection-target-class> <injection-target-name>Resource2</injection-target-name> </injection-target> </resource-ref>
A Servlet 3.1 viselkedésváltozásaival kapcsolatos további információkért tekintse meg a következőt: Servlet 3.1 viselkedésváltozások.