响应正文输入输出流方法

来源:互联网 发布:渭南网络宽带那家好 编辑:程序博客网 时间:2024/06/04 07:44

响应正文输入输出流有如下两个方法,这两个方法相互排斥,只能调用其一。

1)  ServletResponse.getOutputStream

      返回一个ServletOutputStream对象,实现字节流的输出,它可以直接输出字节数组中的二进制数据。

2)  ServletResponse.getWriter

      返回一个PrintWriter对象,可以直接输出字符内容,所以,它专用于输出内容为文本字符的网页。

      在使用这两个方法进行响应消息输出前,最好先对指定响应内容的MIME类型的Cintent-Type头字段进行设置。

如何选择使用这两个方法

1)  PrintWriter在输出字符文本时内部需要将字符串转换成某种字符集编码的字节数组,使用他的好处就是不需要自己来完成从字符串到字节数组的转换。转换的字符集编码是通过设置setContentTpye或setCharacterEncoding或setLocale等方法实现的。

2)  使用ServletOutputStream对象直接从一个字节输入流中读取出来,然后再原封不动的输出到客服端,这时候如果采用PrintWriter对象输出,还需要将字节数组读入到程序中,在读取时候还要牵涉到字节到字符的编码转换过程,这样造成效率问题,且易出错。

注意的一些细节

1)  多次调用PrintWriter和ServletOutputStream返回的都是同一个PrintWriter对象或ServletOutputStream对象

2) PrintWriter.print和PrintWriter.println的区别在于后者相当于多输出一个<br>换行标志

原创粉丝点击