标签:
HttpServletResponse有两个向客户端回送数据的方法,一个是getWriter(),一个是GetOutputStream(),这两个方法都是用来向客户端发送响应数据的方法。
getWriter()方法可以向客户端发送字符数据响应,getOutputStream()方法不仅可以发送字符(必须将字符转化为字节才可以使用该方法),而且可以发送字节数据也就是二进制数据,因此,在传送文件时,只能使用getOutputStream()方法。
但是在使用getOutputStream()方法传送字符时,需要将字符转化为二进制字节才可以通过getOutputStream()方法传送,例如:
OutputStream os = response.getOutputStream();
os.write("Hello World".getBytes());
使用getWriter()方法则可以直接输出字符数据,例如:
PrintWriter out = response.getWriter();
out.println("Hello World");
但是一定要记住一点,这两个流是不可以同时使用的,如果同时使用则会报错,当服务器发现os.write("Hello World".getBytes())这个方法时,他会将字符串封装成response对象返回给web服务,web服务器再将response对象拆分并封装成http响应返回给浏览器,当这一系列动作完成之后,web服务器就会去检查response的流是否被关闭,如果没有关闭,服务器会自动帮你关闭流,这时,out.println("Hello World")就不会被返回,因为流已经被关闭,所以服务器就会报错。
标签:
原文地址:http://www.cnblogs.com/Draeen/p/4867176.html