简单说,使用 response.setContentType() 可以设置返回客户端的 data 的类型。
技术定义:
在向客户端发送数据之前,Servlet 容器会通知客户端浏览器现在正在发送什么类型的数据。
可以发送的数据可以是简单的纯文本、html、xml、gif或jpg类型的图像形式、excel表格等等。
为了发送信息,Servlet 容器使用带有 setContentType() 方法的响应对象。
setContentType(String) 方法接受一个字符串参数并且不返回任何内容(返回 void)。
在“text/html”中,“text”称为类型,“html”称为子类型。 一个类型包含许多子类型
使用方法的一些方法:
response.setContentType("text/html"); // the most popular one
response.setContentType("text/plain");
response.setContentType("text/css"); // Cascading Style Sheet
response.setContentType("application/html");
response.setContentType("image/gif");
response.setContentType("application/zip");
response.setContentType("application/pdf");
经验总结
最近在做一个小需求,即在 markdown 中插入图片,图床使用的 aws s3 。开始时候,根据 s3 oss fileId 获取了一个自己写的文件下载 url(java 后台接口),将链接放入 markdown 中,不能加载图片成功,然而使用阿里云 oss 提供的图像链接就可以正常加载图片。后来对比了一下两个链接返回情况,发现 response ContentType 不同。于是修改自己的图片文件下载 url,将接口返回类型改为 “application/octet-stream”,就可以正常加载图片了。
修改前的 ContentType:
response.setContentType(“application/x-msdownload”);
修改后的 ContentType:
response.setContentType(“application/octet-stream”);
参考:
网友评论