Jetty,Tomcat對MIME協議的配置參數說明

 
       此處作一下小的彙總,
針對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  也就是網頁格局.瀏覽器


 代碼如:緩存



  <%  response.ContentType  = " text/html "   %>   
 
<!-- #i nclude virtual = " /ContentType.html "   -->

 顯示的爲網頁,而app



  <%  response.ContentType  = " text/plain "   %>   
 
<!-- #i nclude virtual = " /sscript/ContentType.html "   -->

 則會顯示html原代碼.koa


 如下爲一些經常使用的 ContentType



GIF images 
 
<%  response.ContentType  = " image/gif "   %>   
 
<!-- #i nclude virtual = " /myimage.gif "   -->  
 JPEG images 
 
<%  response.ContentType  = " image/jpeg "   %>   
 
<!-- #i nclude virtual = " /myimage.jpeg "   -->  
 TIFF images 
 
<%  response.ContentType  = " image/tiff "   %>   
 
<!-- #i nclude virtual = " /myimage.tiff "   -->  
 MICROSOFT WORD document 
 
<%  response.ContentType  = " application/msword "   %>   
 
<!-- #i nclude virtual = " /myfile.doc "   -->  
 RTF document 
 
<%  response.ContentType  = " application/rtf "   %>   
 
<!-- #i nclude virtual = " /myfile.rtf "   -->  
 MICROSOFT EXCEL document 
 
<%  response.ContentType  = " application/x-excel "   %>   
 
<!-- #i nclude virtual = " /myfile.xls "   -->  
 MICROSOFT POWERPOINT document 
 
<%  response.ContentType  = " application/ms-powerpoint "   %>   
 
<!-- #i nclude virtual = " /myfile.pff "   -->  
 PDF document 
 
<%  response.ContentType  = " application/pdf "   %>   
 
<!-- #i nclude virtual = " /myfile.pdf "   -->  
 ZIP document 
 
<%  response.ContentType  = " application/zip "   %>   
 
<!-- #i nclude virtual = " /myfile.zip "   -->  

 下面是更具體的ContentType



application / andrew - inset ez  
 application
/ mac - binhex40 hqx  
 application
/ mac - compactpro cpt  
 application
/ mathml + xml mathml  
 application
/ msword doc  
 application
/ octet - stream bin dms lha lzh exe  class  so dll  
 application
/ oda oda  
 application
/ ogg ogg  
 application
/ pdf pdf  
 application
/ postscript ai eps ps  
 application
/ rdf + xml rdf  
 application
/ smil smi smil  
 application
/ srgs gram  
 application
/ srgs + xml grxml  
 application
/ vnd.mif mif  
 application
/ vnd.mozilla.xul + xml xul  
 application
/ vnd.ms - excel xls  
 application
/ vnd.ms - powerpoint ppt  
 application
/ vnd.wap.wbxml wbxml  
 application
/ vnd.wap.wmlc .wmlc wmlc  
 application
/ vnd.wap.wmlscriptc .wmlsc wmlsc  
 application
/ voicexml + xml vxml  
 application
/ x - bcpio bcpio  
 application
/ x - cdlink vcd  
 application
/ x - chess - pgn pgn  
 application
/ x - cpio cpio  
 application
/ x - csh csh  
 application
/ x - director dcr dir dxr  
 application
/ x - dvi dvi  
 application
/ x - futuresplash spl  
 application
/ x - gtar gtar  
 application
/ x - hdf hdf  
 application
/ x - httpd - php .php .php4 .php3 .phtml  
 application
/ x - httpd - php - source .phps  
 application
/ x - javascript js  
 application
/ x - koan skp skd skt skm  
 application
/ x - latex latex  
 application
/ x - netcdf nc cdf  
 application
/ x - pkcs7 - crl .crl  
 application
/ x - sh sh  
 application
/ x - shar shar  
 application
/ x - shockwave - flash swf  
 application
/ x - stuffit sit  
 application
/ x - sv4cpio sv4cpio  
 application
/ x - sv4crc sv4crc  
 application
/ x - tar .tgz tar  
 application
/ x - tcl tcl  
 application
/ x - tex tex  
 application
/ x - texinfo texinfo texi  
 application
/ x - troff t tr roff  
 application
/ x - troff - man man  
 application
/ x - troff - me me  
 application
/ x - troff - ms ms  
 application
/ x - ustar ustar  
 application
/ x - wais - source src  
 application
/ x - x509 - ca - cert .crt  
 application
/ xhtml + xml xhtml xht  
 application
/ xml xml xsl  
 application
/ xml - dtd dtd  
 application
/ xslt + xml xslt  
 application
/ zip zip  
 audio
/ basic au snd  
 audio
/ midi mid midi kar  
 audio
/ mpeg mpga mp2 mp3  
 audio
/ x - aiff aif aiff aifc  
 audio
/ x - mpegurl m3u  
 audio
/ x - pn - realaudio ram rm  
 audio
/ x - pn - realaudio - plugin rpm  
 audio
/ x - realaudio ra  
 audio
/ x - wav wav  
 chemical
/ x - pdb pdb  
 chemical
/ x - xyz xyz  
 image
/ bmp bmp  
 image
/ cgm cgm  
 image
/ gif gif  
 image
/ ief ief  
 image
/ jpeg jpeg jpg jpe  
 image
/ png png  
 image
/ svg + xml svg  
 image
/ tiff tiff tif  
 image
/ vnd.djvu djvu djv  
 image
/ vnd.wap.wbmp .wbmp wbmp  
 image
/ x - cmu - raster ras  
 image
/ x - icon ico  
 image
/ x - portable - anymap pnm  
 image
/ x - portable - bitmap pbm  
 image
/ x - portable - graymap pgm  
 image
/ x - portable - pixmap ppm  
 image
/ x - rgb rgb  
 image
/ x - xbitmap xbm  
 image
/ x - xpixmap xpm  
 image
/ x - xwindowdump xwd  
 model
/ iges igs iges  
 model
/ mesh msh mesh silo  
 model
/ vrml wrl vrml  
 text
/ calendar ics ifb  
 text
/ css css  
 text
/ html .shtml html htm  
 text
/ plain asc txt  
 text
/ richtext rtx  
 text
/ rtf rtf  
 text
/ sgml sgml sgm  
 text
/ tab - separated - values tsv  
 text
/ vnd.wap.wml .wml wml  
 text
/ vnd.wap.wmlscript .wmls wmls  
 text
/ x - setext etx  
 video
/ mpeg mpeg mpg mpe  
 video
/ quicktime qt mov  
 video
/ vnd.mpegurl mxu  
 video
/ x - msvideo avi  
 video
/ x - sgi - movie movie  
 x
- conference / x - cooltalk ice 

 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/]
相關文章
相關標籤/搜索