servlet中“response.setContentType(”text / html“)”的用法是什么?

public class HelloWorld extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ **response.setContentType("text/html");** PrintWriter pw = response.getWriter(); pw.println(""); pw.println("Hello World"); pw.println(""); pw.println("

Hello World

"); pw.println(""); } }

内容类型包含在HTTP响应中,因为内容中字节序列值的相同字节可以多种方式解释。(*)

请记住,http可以传输的不仅仅是HTML(js,css和图像都是明显的例子),在某些情况下,接收器不会知道它将接收哪种类型的对象。


(*)这里显而易见的是XHTML – 这是XML。 如果它与application/xml的内容类型一起提供,接收者应该只将其视为XML。 如果它被提供为application/xhtml+xml ,那么它应该被视为XHTML。

来自JavaEE docs ServletResponse#setContentType

  • 如果尚未提交响应,则设置发送到客户端的响应的内容类型。

  • 给定的内容类型可以包括字符编码规范,例如,

response.setContentType("text/html;charset=UTF-8");

  • 如果在调用getWriter之前调用此方法,则仅根据给定的内容类型设置响应的字符编码。

  • 可以重复调用该方法以改变内容类型和字符编码。

  • 如果在提交响应后调用此方法,则此方法无效。 如果在调用getWriter之后或者在提交响应之后调用它,则不会设置响应的字符编码。

  • 如果协议提供了一种方法,容器必须将用于servlet响应编写器的内容类型和字符编码传递给客户端。 在HTTP的情况下,使用Content-Type标头。

它意味着您要向客户端发送什么类型的响应,一些内容类型如:

  res.setContentType("image/gif"); res.setContentType("application/pdf"); res.setContentType("application/zip"); 
 response.setContenType("text/html"); 

上面的代码将包含在“HTTP响应”中,以通知浏览器响应的格式,以便浏览器可以解释它。

它是MIME类型之一,在这种情况下,你是reponse头MIME类型到text/html它意味着它显示html类型。 这是浏览器的信息。 您可以设置其他类型以显示excel,zip等。有关详细信息,请参阅MIME Type

您必须告诉浏览器您要发回的内容,以便浏览器可以采取适当的操作,如启动PDF查看器(如果正在接收PDF或启动video播放器播放video文件),如果内容类型为简单的html响应,将响应的字节保存为下载文件等。

一些常见的MIME类型是text / html,application / pdf,video / quicktime,application / java,image / jpeg,application / jar等

在您的情况下,因为您要向客户端发送HTML响应,您必须将内容类型设置为text / html