Я понимаю, что любой ресурс в WEB-INF не находится в общественном достоянии, и это по дизайну.
я могу получить доступ к ресурсу под WEB-INF, скажем, HTML, настроив его в web.xml, какСтранная ошибка при загрузке XSL/XML в Javascript
<servlet>
<servlet-name>resourceId</servlet-name>
<jsp-file>/WEB-INF/resource.xsl</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>resourceId</servlet-name>
<url-pattern>/resource.xsl</url-pattern>
</servlet-mapping>
Но я сталкиваюсь странную ситуацию, когда с помощью создания документа апи на клиентской стороне, т.е. document.implementation .createDocument не снимает предупреждение об устаревании и вместо этого предлагает XMLHttpRequest. Я пытаюсь загрузить и XSL/XML документ, использующий этот API следующим образом
xmlFile = document.implementation.createDocument("", "", null);
xmlFile.async = false;
xmlFile.load("resource.xsl");
И я получаю предупреждение:
Использование Document.load() является устаревшим. Чтобы обновить код, используйте объект DOM XMLHttpRequest. Для получения дополнительной помощи https://developer.mozilla.org/en/XMLHttpRequest *
Но если поместить ресурс под WebContent или папку WebRoot непосредственно и удалить любую конфигурацию web.xml для этого, она работает плавно. Я этого не понимаю. Я тестировал это на FF 3.6.5, 5.0.1, 9, 10. Пожалуйста, объясните это мне.
Я также понимаю, что во время сбоя, то есть, когда появляется предупреждение из-за ресурса, размещенного в папке WEB-INF, браузер действительно выполняет загрузку, несмотря на предупреждение. Firebug показывает это. Но XSL или XML загружаются как text/html, а объект xmlFile довольно пуст и не заселен. В случае успеха я вижу приложение/xml в заголовках ответов и объекте xmlFile, хорошо заполненном. Пожалуйста, помогите
Важно отметить, что если я размещаю ресурс непосредственно в WebContent или WebRoot, но создаю конфигурацию в web.xml как /resource.xsl url-pattern>, подразумевая, что он находится непосредственно под корнем, он все еще выходит из строя. XSL или XML загружаются как text/html, а объект xmlFile не используется. Если я удалю настройку в web.xml, это будет успешным. –
deepSymmetry