1.5 ServletResponse
javax.servlet.ServletResponse接口表示一个Servlet响应。在调用一个Servlet的service方法之前,Servlet容器会先创建一个ServletResponse,并将它作为第二个参数传给service方法。ServletResponse隐藏了将响应发给浏览器的复杂性。
ServletResponse中定义的其中一个方法是getWriter方法,它返回可以将文本传给客户端的java.io.PrintWriter。在默认情况下,PrintWriter对象采用ISO-8859-1编码。
在将响应发送给客户端时,通常将它作为HTML发送。因此,你对HTML一定要非常熟悉。
提示 还有一个方法可以用来将输出传给浏览器:getOutputStream。但是,这个方法是用来传输二进制数据的,因此,在大多数时候,需要使用getWriter,而不是getOutputStream。关于如何传输二进制内容的说明,可查看第12章中关于文件下载的内容。
在发送任何HTML标签之前,应该先通过调用setContentType方法来设置响应的内容类型,比如,将text/html作为参数传递,这是在告诉浏览器内容类型为HTML。如果没有设置内容类型,那么大多数浏览器将会默认以HTML的形式显示响应的内容。但是,如果没有设置响应的内容类型,有些浏览器则会将HTML标签显示为普通文本。
代码清单1-1的MyServlet中使用了ServletResponse。在本章及后续章节的其他应用程序中,你还会看到它的用法。