此處作一下小的彙總,
針對Jetty容器內,存在excel的xlsx文件直接經過連接的方式下載的時候,若是是在Chrome瀏覽器時,則直接觸發瀏覽器的下載行爲,
可是在IE11的瀏覽器上,則瀏覽器會直接進行打開該文件,重點是瀏覽器進行打開該文件的時候,打開後必然是亂碼的,這中狀況必然是錯誤的,
可是若是是xls的Excel文件也是就2007老版本的excel文件,則IE瀏覽器便會提示進行下載,因此緣由即是當瀏覽器支持該文件格式的預覽的時候,
則直接打開,不支持時則默認爲下載提示,(由於此處是直接訪問Jetty容器中的excel文件,而不是代碼中經過流的方式返回的文件流,若是是代碼中
返回文件流,則直接設置對應的response的響應類型爲download便可,但此處既然是經過Jetty默認的方式進行的文件下載,則1.更改Jetty的默認配置,
配置使其在下載指定類型的流文件時,使其重複瀏覽器的下載行爲,而並不是直接打開的行爲,2.則是設置瀏覽器IE的行爲,針對某一類型的文件流,默認不進行打開的設置,
此處使用設置Jetty方式進行調整,即設置Jetty的MIME協議類型映射,針對xls和xlsx文件類型,統一映射的MIME類型爲application/msexcel,
Jetty中的配置方式則爲:更改Jetty下etc目錄下的webDefault.xml的配置,增長MIME類型的協議映射,
截圖配置以下:

此處主要另外還說明一點則是:針對Jetty中間件對請求的編碼的映射,等等也是在該webdefault.xml中進行配置,如該文件中的: <locale-encoding-mapping-list>用於配置指定編碼映射,
可參考:https://www.cnblogs.com/gis2s/articles/3321893.html,包括對應的Jetty對靜態文件的緩存的去除也是能夠配置該文件的useFileMappedBuffer屬性,參考:
https://blog.csdn.net/wwsscc168/article/details/51095099,而對於配置當前Jetty對線程數量的支持,以及訪問的超時時間等,能夠詳細了接下jetty.xml的一些配置信息,
附上百度百科對MIME協議的講解截圖:

轉自:https://blog.csdn.net/wxwlife2006/article/details/8115273#commentBoxjavascript
這幾天一貫很納悶,在Tomcat安排的網站中的下載文件中,如果文件是rar類型的,一點擊下載rar文件就直接打開,而且呈現亂碼,右鍵另存爲瀏覽器也是默認爲html格局,一貫認爲是瀏覽器IE的題目,後來發明其實不關瀏覽器的題目,而是Tomcat辦事器設備的題目,具體以下:php
web.xml文件中設備<mime-mapping>下載文件類型
TOMCAT在默認景象下下載.rar的文件是把文件算做text打開,以致於IE打開RAR文件爲亂碼,如果碰到這種景象時沒必要認爲是瀏覽器的題目,大多半瀏覽器應當不會逝世皮賴臉地把二進制文件算做文本打開,通常都是辦事器給什麼瀏覽器就開什麼.解決辦法: css
打開conf/web.xml,參加下面的代碼. html
<mime-mapping> <extension>doc</extension> <mime-type>application/msword</mime-type> </mime-mapping> <mime-mapping> <extension>xls</extension> <mime-type>application/msexcel</mime-type> </mime-mapping> <mime-mapping> <extension>pdf</extension> <mime-type>application/pdf</mime-type> </mime-mapping> <mime-mapping> <extension>zip</extension> <mime-type>application/zip</mime-type> </mime-mapping> <mime-mapping> <extension>rar</extension> <mime-type>application/rar</mime-type> </mime-mapping> <mime-mapping> <extension>txt</extension> <mime-type>application/txt</mime-type> </mime-mapping> <mime-mapping> <extension>chm</extension> <mime-type>application/mshelp</mime-type> </mime-mapping> <mime-mapping> <extension>mp3</extension> <mime-type>audio/x-mpeg</mime-type> </mime-mapping>
重啓TOMCAT,清除IE緩存,再打開RAR的文件時就能夠正常下載了. java
不合的ContentType 會影響客戶端所看到的結果.web
默認的ContentType爲 text/html 也就是網頁格局.瀏覽器
代碼如:緩存


顯示的爲網頁,而app


則會顯示html原代碼.koa
如下爲一些經常使用的 ContentType




























下面是更具體的ContentType
















































































































TXT文件作下載的JS實現
<%...@ page contentType="text/html; charset=gb2312" language="java" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>無題目文檔</title> <script language="JavaScript">... function openfile(url) ...{ var a =window.open(url,"_blank",""); a.document.execCommand("SaveAs"); a.close(); } </script> </head> <body> <p><a href="#" onclick=""openfile("aa.txt")"">下載</a></p> </body> </html> 轉載請註明出處[http://samlin.cnblogs.com/]