我知道WEB-INF下的任何资源都不在公有领域,这是通过设计。
我可以访问WEB-INF下的资源,比如说一个HTML,通过在web.xml将其配置为Javascript中XSL/XML加载时出现奇怪错误
<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文件创建API .createDocument无法拍摄弃用警告,而是建议使用XMLHttpRequest。我想使用这个API XSL/XML文档如下
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非常空且未填充。如果成功,我会在响应头文件和xmlFile对象中看到application/xml。请帮助
重要的是要注意的是,如果我直接在WebContent或WebRoot下放置资源,但在web.xml中配置为 /resource.xsl url-pattern>,暗示它直接位于根目录下,它仍然失败。 XSL或XML以text/html格式加载,xmlFile对象未填充。如果我在web.xml中删除配置,它是成功的。 –
deepSymmetry
2012-04-27 14:31:37