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#commentBox

这几天一向很纳闷,在Tomcat安排的网站中的下载文件中,若是文件是rar类型的,一点击下载rar文件就直接打开,并且呈现乱码,右键另存为浏览器也是默认为html格局,一向认为是浏览器IE的题目,后来发明其实不关浏览器的题目,而是Tomcat办事器设备的题目,具体如下:



web.xml文件中设备<mime-mapping>下载文件类型
TOMCAT在默认景象下下载.rar的文件是把文件算作text打开,以至于IE打开RAR文件为乱码,若是碰到这种景象时不必认为是浏览器的题目,大多半浏览器应当不会逝世皮赖脸地把二进制文件算作文本打开,一般都是办事器给什么浏览器就开什么.解决办法: 


 打开conf/web.xml,参加下面的代码. 

 <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的文件时就可以正常下载了. 


 不合的ContentType 会影响客户端所看到的结果.


 默认的ContentType为 text/html  也就是网页格局.


 代码如:



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

 显示的为网页,而



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

 则会显示html原代码.


 以下为一些常用的 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="#" οnclick=""openfile("aa.txt")"">下载</a></p>
</body>
</html>
转载请注明出处[http://samlin.cnblogs.com/]

 


转载于:https://www.cnblogs.com/zh94/p/9963980.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值