搜索 K
Appearance
博客正在加载中...
Appearance
本文演示如何输出二进制数据给浏览器
使用步骤:
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);
}
}重启 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"));
} 重启 Tomcat,访问效果:

一般我们很少使用字节输出流来输出字符,而是输出图片(例如图形验证码)或其他文件,后续我们会介绍