界面/枚举列出标准的MIME类型常量

174

我正在查找标准库(例如apache commons,jax,jboss,javax)中列出所有标准MIME类型(也称为内容类型)值的接口或枚举。

这个接口不应该和其他类混在一起,以便可以将整个组件包含为GWT源代码。

例如:

interface ContentType{
  String JSON = "Application/JSON";
  blah ... blah ...
}

或者,

enum ContentType{
  JSON("Application/JSON"),
  blah ... blah ...
}

1
我想你已经看过Apache Sling了吧?http://sling.apache.org/site/mime-type-support-commonsmime.html - Jonathan Spooner
11个回答

-4

如早先的回答中所述,大多数常见的MIME类型都是在Web服务器中配置的。例如,在Tomcat的conf/目录下,我们有一个名为web.xml的文件,其中配置了以下MIME:

   <mime-mapping>
      <extension>abs</extension>
      <mime-type>audio/x-mpeg</mime-type>
   </mime-mapping>
   <mime-mapping>
      <extension>ai</extension>
      <mime-type>application/postscript</mime-type>
   </mime-mapping>
   <mime-mapping>
      <extension>aif</extension>
      <mime-type>audio/x-aiff</mime-type>
   </mime-mapping>
...

创建一个启动监听器,当 Web 应用程序启动时触发,并解析此 XML 文件并为您创建 ENUMS,并将其绑定到 Servlet 上下文以在下游共享。

5
这听起来对于一个简单的需求——获取可用的MIME类型列表来说过于复杂了。 此外,MIME类型不会经常更改,所以为什么要一遍又一遍地解析它们呢?这就是枚举和常量的用处。 - Thomas Eizinger
为什么要重复造轮子,当列表已经在Web服务器中了呢?为什么要硬编码 - 只需编写一个简单的XML解析器来读取值并在Web服务器启动时将其缓存。如果明天您需要支持新的MIME类型,则无论如何都需要更新并重新启动Web服务器,使用解析器方法可以帮助应对这些情况。不要在多个位置进行更改,只需更改Web服务器配置即可。 - Bimalesh Jha
1
如果您想支持新的MIME类型,由于没有通用处理新MIME类型的方法,您很可能需要编写一些自定义代码。 (除非您只是将其传递到另一个系统中,在这种情况下,您无需解析它。) - Thomas Eizinger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接