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

转载于:https://www.cnblogs.com/Draeen/p/4867176.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值