O Servlet 3.1 introduz uma alteração na forma como o elemento <absolute-ordering> é processado quando o arquivo web.xml contém o atributo metadata-complete="true" atributo.
No Servlet 3.0, quando o atributo metadata-complete é definido como "true", todos os arquivos de fragmentos da Web são usados são usados. No Servlet 3.1, o elemento <absolute-ordering> é considerado completo, o que faz com que os fragmentos da Web que não estão listados no elemento <absolute-ordering> sejam excluídos do processamento.
O recurso do Servlet 3.1 pode mudar o comportamento do aplicativo
existente, excluindo fragmentos da web que foram anteriormente incluídos.
Essa regra sinaliza o elemento <name>B</name> no arquivo web-fragment.xml se o arquivo web.xml contiver o atributo metadata-complete="true" e o elemento <absolute-ordering> não contiver uma entrada para o nome do fragmento da Web.
O exemplo a seguir demonstra a mudança de comportamento quando você usa uma combinação de um arquivo web.xml e um arquivo web-fragment.xml:
web.xml:
< span class= "XmlElement"> < absolute-ordering> < /span> < span class= "XmlElement"> < name> < /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>
No Servlet 3.0, o fragmento da web B é incluído no processamento. No Servlet 3.1, ele não é incluído. Para incluir o fragmento fragmento B no processamento, adicione um elemento <name>B</name> na posição apropriada dentro do elemento <absolute-ordering> no arquivo web.xml.
Para obter informações adicionais sobre mudanças de comportamento do Servlet 3.1, veja o recurso a seguir: Mudanças de comportamento do Servlet 3.1.