响应正文输入输出流方法
2007-09-05 11:05
225 查看
响应正文输入输出流有如下两个方法,这两个方法相互排斥,只能调用其一。
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>换行标志
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>换行标志
相关文章推荐
- 用指针方法编写一个程序,输入3个整数,将它们按由小到大的顺序输出
- python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
- 浅谈c++中的输入输出方法
- JAVA 输入输出txt三种方法
- Ex5_2_2 输入十个数,输出最大者,不用数组(方法二)
- 2.2题目:输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
- 输入字符串和输出字符串的方法
- java 输入一个数字,反转输出这个数字的值(实现方法)
- JS中常用的输入输出方法
- Java输入一个数字跟次数进行拼接方法(可计算结果),输出2+22+222+2222.........
- switch和数组两种方法对不同输入做不同响应
- [置顶] C语言基本变量语法输出和输入方法
- 输入一串字符串,运用输出方法计算其中大写 小写 数字 和其他字符的个数
- 一维数组元素的输入输出方法总结
- Java常用的输入输出方法
- Linux 输入命令后获输出的内容方法
- 输出Quit the server with CTRL-BREAK后,在cmd中继续输入命令方法
- 建一棵二叉树,能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数
- C语言中不同进制数的输入输出及表示方法
- excel内一键进行sql查询(使用方法 1.选择’需要进行sql查询区域 包括字段名 2 输入sql语句 3.选择输出数据的单元格)