此处作一下小的汇总,
针对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/]