我知道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