Apache Tomcat MimeTypes - 有什么方法可以获取它们吗?
我正在为 Apache Tomcat 编写一个过滤器,我想知道是否有一种方法可以获取放置在 /conf/web.xml 文件配置文件中的 mimetypes,而无需显式读取 xml 文件。 Apache Tomcat 库中是否有可用的内容?
I'm writing a filter for Apache Tomcat, I was wondering if there's a way to fetch the mimetypes placed in the /conf/web.xml file configuration file without reading the xml file explicitly. Is there anything available in the Apache Tomcat libraries perhaps?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自
tomcat/conf/web.xml
:因此它们可以通过 ServletContext.getMimeType 方法:
我还没有找到任何其他公共 API 来获取整个 MIME 类型映射。如果你真的需要
你可以通过这个丑陋的 hack 获得扩展的完整列表:
它适用于 Tomcat 7.0.21。由于它使用 Tomcat 的内部类,因此不能保证它可以与其他 Tomcat 版本一起使用。
请注意,您仍然需要调用 ServletContext.getMimeType 来获取 MIME 类型。
所需的maven依赖:
From the
tomcat/conf/web.xml
:So they are available through the ServletContext.getMimeType method:
I haven't found any other public API for getting the whole MIME type mapping. If you really need
it you can get the complete list of the extensions with this ugly hack:
It works on Tomcat 7.0.21. Since it uses Tomcat's internal classes there is no guarantee that it will work with other Tomcat versions.
Note that you still need to call the
ServletContext.getMimeType
to get the MIME types.The required maven dependency:
为什么不直接这样做:
直接来自 org.apache.catalina.startup.Tomcat.addDefaultMimeTypeMappings()
如果您查看属性文件,它包含我认为您需要的一切
: com/apache/tomcat/blob/master/java/org/apache/catalina/startup/MimeTypeMappings.properties" rel="nofollow noreferrer">https://github.com/apache/tomcat/blob/master/java/org/apache/catalina/startup/MimeTypeMappings.properties
这样你就可以获得特定 mime 类型的所有文件扩展名。
Why not just do this:
Straight from org.apache.catalina.startup.Tomcat.addDefaultMimeTypeMappings()
If you look at the properties file, it has everything I think you'd need:
https://github.com/apache/tomcat/blob/master/java/org/apache/catalina/startup/MimeTypeMappings.properties
This way you can get all the file extensions for a specific mime type.