weblogic下通過ajax解析不了xml文件(通過IE可能是可以打開的),這是因為xmlhttp.responseXML.documentElement返回空造成的,
這個問題原因分兩種情況:
1.動態(tài)生成文件需要通過respnse.setContentType("text/xml;charset=UTF-8")來顯示的聲明文檔類型;
2.靜態(tài)xml,這需要在web.xml中加入下面的聲明
<mime-mapping>
<extension>xml</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
這時再次訪問時weblgoic就給加上contentType了。
注意此時如果以前訪問過一次這個靜態(tài)的xml,ie會緩存,所以一般設置完后ajax還是不能解析,這時
需要清除ie緩存,然后再試一次就ok了:)。
對于直接通過在ie下打開文件,比如word(xml也是一樣的),默認weblogic訪問xxx.doc時返回如下的響應,沒有contentType
HTTP/1.1 200 OK
Date: Thu, 25 Oct 2007 07:22:26 GMT
Content-Length: 10752
Last-Modified: Thu, 25 Oct 2007 07:20:04 GMT
Accept-Ranges: bytes
所以也需要在web.xml加入mime-type才行
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
這時weblogic的響應信息:
200 OK
Date: Thu, 25 Oct 2007 07:28:38 GMT
Content-Length: 10752
Content-Type: application/msword
Last-Modified: Thu, 25 Oct 2007 07:20:04 GMT
Accept-Ranges: bytes
這樣可以通過提示用戶打開還是保存,而不是一堆亂碼了。
對于下載的需求,可以在servlet設置response的header
response.setHeader("Content-Disposition","attachment;filename=xxx.xxx");
關(guān)于Content-Disposition的說明:http://www.ietf.org/rfc/rfc2183.txt
界面可以通過<a href="download?file=xxx">下載</a>實現(xiàn)