response 输出字节数据
# 60.response 输出字节数据
本文演示如何输出二进制数据给浏览器
# 入门案例
使用步骤:
- 获取字节输出流
- 输出数据
代码:
package com.peterjxl.response;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 演示输出字节数据
*/
@WebServlet("/responseDemo5")
public class ResponseDemo5 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1. 获取字节输出流
ServletOutputStream sos = resp.getOutputStream();
// 2. 输出数据
sos.write("hello".getBytes());
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
重启 Tomcat,访问,效果如下:
注意,如果要输出中文,也涉及到编码问题,因此也得告诉浏览器使用什么编码,并且输出数据时指定编码:
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
// 1. 获取字节输出流
ServletOutputStream sos = resp.getOutputStream();
// 2. 输出数据
sos.write("hello".getBytes());
sos.write("你好".getBytes("UTF-8"));
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
重启 Tomcat,访问效果:
一般我们很少使用字节输出流来输出字符,而是输出图片(例如图形验证码)或其他文件,后续我们会介绍
上次更新: 2024/10/1 21:14:36