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("<html>");
pw.println("<head><title>Hello World</title></title>");
pw.println("<body>");
pw.println("<h1>Hello World</h1>");
pw.println("</body></html>");
}
}
HTTP响应中包括内容类型,因为内容中相同的逐字节值序列可以用多种方式解释。(*)
请记住,http可以传输的不仅仅是HTML(js、css和图像就是明显的例子),在某些情况下,接收者不知道将接收什么类型的对象。
(*)这里最明显的是XHTML,即XML。如果它的内容类型为application/xml
,那么接收者应该将其视为xml。如果它作为应用程序/xhtml-xml
提供,那么它应该被视为xhtml。
从JavaEE文档ServletResponse#setContentType
>
如果响应尚未提交,则设置发送到客户端的响应的内容类型。
给定的内容类型可以包括字符编码规范,例如,
响应。setContentType(“text/html;charset=UTF-8”)代码>
>
如果在调用getWriter
之前调用此方法,则仅从给定的内容类型设置响应的字符编码。
可以重复调用此方法以更改内容类型和字符编码。
如果在响应提交后调用此方法,则此方法无效。如果在调用了getWriter
之后或在提交了响应之后调用响应,则不会设置响应的字符编码。
如果协议提供了这样做的方法,容器必须将用于servlet响应编写器的内容类型和字符编码传递给客户端。对于HTTP,使用内容类型头。
它表示您希望发送给客户端的响应类型,某些内容类型如下:
res.setContentType("image/gif");
res.setContentType("application/pdf");
res.setContentType("application/zip");