MIME类型
在我们学习servlet的过程中,我们经常会遇到这样的代码
resp.setContentType("text/html;charset = utf-8");
这里的text/html就是我们今天要讲的MIME类型
首先我们来了解一下MIME类型
- 定义:在互联网通信过程中定义的一种文件数据类型,是互联网通信过程中的一种文件类型的,http协议也遵循这种标准标准
- 格式:大类型/小类型
* 例如:text/html:text是指纯文本的,html表示里面定义的是html形式的。
image/jpeg:image表示是图片类型的,jpeg表示里面放的是JPEG格式的 - 获取MIME类型的作用
在http协议响应头中有一个ContentType,它需要设置MIME类型,告知浏览器发送的响应消息体是什么类型或格式,让浏览器用相应的解析引擎去解析数据。 - 获取MIME类型的方法
* String getMimeType(String file)
* 该方法接受一个String类型的文件名称,返回一个String类型,
* 方法通过扩展名(后缀名)来获取 - 获取MIME类型的方法代码实现
- 该方法是在servletContext对象中拿到的,所以先获取servletContext对象。
- 此次实现是自己写的filename,在项目中我们要动态获取文件名。
public class ServletContextDemo extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.获取servletContext对象
ServletContext servletContext = this.getServletContext();
//2.定义文件名称
String filename = "a.jpg";
String filename1 = "a.html";
//获取MIME类型
String mimeType = servletContext.getMimeType(filename);
String mimeType1 = servletContext.getMimeType(filename1);
//打印MIME类型
System.out.println(mimeType);
System.out.println(mimeType1);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
结果展示
整个MIME类型所有的对应关系都在我们的服务器里边存储着,该对象刚好和服务器通信,所以getMimeType可以获取到MIME类型
MIME类型就是在我们的Tomcat配置文件中
apache-tomcat-9.0.39——>conf——>web.xml
这个web.xml是所有项目里面的web.xml的父类,项目中的web.xml都继承了这个web.xml
例如
< extension >html</ extension>:这个表示后缀名是html
< mime-type>text/html< /mime-type>:是这种的MIME类型