本文共 2230 字,大约阅读时间需要 7 分钟。
在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResponse接口,专门用来封装HTTP相应消息。由于HTTP相应消息分为状态行、响应消息头、消息体三部分,因此,在HttpServletResponse接口中定义了向客户端发送响应状态码、响应消息头、响应消息体的方法。
因为response代表响应,所以我们可以通过该对象分别设置Http响应的响应行,响 应头和响应体
当Servlet向客户端发送响应消息时,由于HTTP协议的响应头字段有很多种,为此,在HTTPServletResponse接口中,定义了一系列设置HTTP响应头字段的方法,如下表所示:
需要注意的是,在上述方法中,addHeader()、serHeader()、addIntHeader()、setIntHeader()方法都是用于设置各种头字段的,而serContentType()、setLocale()和setCharacterEncoding()方法用于设置字符编码,这些设置字符编码的方法可以有效解决乱码问题。
由于在HTTP响应消息中,大量的数据都是通过响应体传递的,因此,ServletResponse遵循以IO流传递大量数据的设计理念。在发送响应消息体时,定义了两个与输出流相关的方法,具体如下:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String binaryData = "binaryData"; //获取字节输出流对象 OutputStream outputStream = response.getOutputStream(); outputStream.write(binaryData.getBytes());}
浏览器访问,页面显示:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String strData = "strData"; //获取字符输出流对象 response.getWriter().write(strData); }
浏览器访问,页面显示:
转载地址:http://xnsqb.baihongyu.com/