Servlet向客户端输出数据的方法

     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")就不会被返回,因为流已经被关闭,所以服务器就会报错。

posted @ 2015-10-10 15:25  Draeen  阅读(1234)  评论(0编辑  收藏  举报