response.getOutputStream() response.getWriter()区别

`response.getOutputStream()` 和 `response.getWriter()` 是 Java Servlet API 中的两个方法,用于获取响应的输出流。这两个方法的主要区别在于它们返回的输出流类型和用途。
**response.getOutputStream()**
`response.getOutputStream()` 方法返回一个 `ServletOutputStream` 对象,这是一个字节流,可以用来发送二进制数据(如图片、音频或视频)到客户端。如果需要发送非文本数据,应该使用此方法。
例如,以下代码使用 `response.getOutputStream()` 来发送一张图片:
```java
// 设置响应类型为图片
response.setContentType("image/jpeg");

// 打开输出流
ServletOutputStream out = response.getOutputStream();

// 读取图片文件并发送到客户端
InputStream in = new FileInputStream(new File("/path/to/image.jpg"));
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
    out.write(buffer, 0, length);
}

// 关闭输入和输出流
in.close();
out.close();
```

在这个示例中,我们首先设置了响应类型为图片,然后打开了输出流。接着,我们从磁盘上读取一张图片文件,并将其内容写入输出流,最后关闭了输入和输出流。
**response.getWriter()**
`response.getWriter()` 方法返回一个 `PrintWriter` 对象,这是一个字符流,可以用来发送文本数据(如 HTML、XML 或 JSON)到客户端。如果需要发送文本数据,应该使用此方法。
例如,以下代码使用 `response.getWriter()` 来发送一个简单的 HTML 页面:
```java
// 设置响应类型为 HTML
response.setContentType("text/html; charset=UTF-8");

// 打开字符输出流
PrintWriter writer = response.getWriter();

// 发送 HTML 数据
writer.println("<html>");
writer.println("<head><title>Hello World</title></head>");
writer.println("<body>");
writer.println("<h1>Hello World!</h1>");
writer.println("</body>");
writer.println("</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值