Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Tomcat 6中的任何文件扩展名设置默认mime tipe?_Tomcat_Mime Types - Fatal编程技术网

如何为Tomcat 6中的任何文件扩展名设置默认mime tipe?

如何为Tomcat 6中的任何文件扩展名设置默认mime tipe?,tomcat,mime-types,Tomcat,Mime Types,Mime类型在Tomcat的conf/web.xml文件中指定。 看起来是这样的: <mime-mapping> <extension>txt</extension> <mime-type>text/plain</mime-type> </mime-mapping> 文本 文本/纯文本 在此之前,我尝试以下内容: <mime-mapping> <extension>*</

Mime类型在Tomcat的conf/web.xml文件中指定。 看起来是这样的:

<mime-mapping>
   <extension>txt</extension>
   <mime-type>text/plain</mime-type>
</mime-mapping>

文本
文本/纯文本
在此之前,我尝试以下内容:

<mime-mapping>
   <extension>*</extension>
   <mime-type>application/octet-stream</mime-type>
</mime-mapping> 

*
应用程序/八位字节流
但这对我没有帮助。
如何为任何文件扩展名指定默认mime类型?

没有办法。您需要自己显式地设置它们。servlet过滤器是一个合适的地方

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    response.setContentType("application/octet-stream");
    chain.doFilter(request, response);
}

然而,我高度质疑企业对此的需求。这对搜索引擎优化和客户都是不利的。如果您的唯一目的是弹出另存为对话,那么您应该这样说。有比强制使用错误的mime类型更好的解决方案。

*不是有效的扩展。您必须指定需要特殊编码的扩展名,否则默认值为text/html。如何将默认值“text/html”更改为类似于“application/octet stream”的值?谢谢。在使用Tomcat 7进行测试时,我发现如果删除所有mime映射条目,那么实际响应将根本不包括内容类型头。如果web浏览器在内容中看到标记,它将查看内容并将其转换为文本/html。谢谢!过滤器是我需要的。我使用它来设置默认的内容类型“application/octetstream”。若并没有指定内容类型,那个么客户端的应用程序会因协议而崩溃,为了欺骗浏览器而强制使用MIME类型可能是一个危险的游戏。