Servlet 3.1 introduce una modifica nell'elaborazione dell'elemento <absolute-ordering> quando il file web.xml contiene l'attributo metadata-complete="true".
In Servlet 3.0, quando l'attributo metadata-complete è impostato su "true", vengono utilizzati tutti gli archivi di frammenti web. In Servlet 3.1, l'elemento <absolute-ordering> viene considerato completo, il che determina l'esclusione dall'elaborazione dei frammenti web non elencati nell'elemento <absolute-ordering>.
La funzione Servlet 3.1 potrebbe cambiare il comportamento esistente dell'applicazione attraverso l'esclusione dei frammenti web precedentemente inclusi.
Questa regola contrassegna l'elemento <name>B</name> nel file web-fragment.xml se il file web.xml contiene l'attributo metadata-complete="true" e l'elemento <absolute-ordering> e non contiene una voce per il nome del frammento web.
Il seguente esempio dimostra la modifica al comportamento quando si utilizza una combinazione del file web.xml e del file web-fragment.xml:
web.xml:
< span class= "XmlElement"> < assolute-ordering> < /span> < span class= "XmlElement"> < nome> < /span> A < span class="XmlElement"> < /name> < /span> < span class= "XmlElement"> < others/> < /span> < span class="XmlElement"> < /absolute-ordering> < /span>
web-fragment.xml:
< span class= "XmlElement"> < web-fragment> < /span> < span class= "XmlElement"> < name> < /span> B < span class="XmlElement"> < /name> < /span> < span class= "XmlElement"> < /web-fragment> < /span>
In Servlet 3.0, il frammento web B viene incluso nell'elaborazione. In Servlet 3.1, non è incluso. Per includere il frammento web B nell'elaborazione, aggiungere un elemento <name>B</name> nella posizione appropriata all'interno dell'elemento <absolute-ordering> nel file web.xml.
Per ulteriori informazioni sulle modifiche al comportamento di Servlet 3.1, consultare la seguente risorsa: Servlet 3.1 behavior changes.