Servlet中的HttpServletResponse对象封装了服务器端响应给客户端的信息,包括:
- 状态行 包括协议版本、状态码、状态描述 由Tomcat服务器作响应,不需设置
- 应答头 留意 content-type 即可
- 响应实体 用流写出给客户端
查询API可以获取相应的方法
Demo如下:
package cn.berger.servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
public class TestResponse extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// HttpServletResponse 对象用于封装服务器端响应的信息
/**
* 响应信息包括:
* 1.状态行 包括协议版本、状态码、状态描述 由Tomcat服务器作响应,不需设置
* 2.应答头 留意 content-type 即可
* 3.响应实体 用流写出给客户端
*/
// 设置应答头
resp.setHeader("content-type", "text/html charset=utf-8");
resp.setHeader("content-type", "jpeg");
// PrintWriter out1 = resp.getWriter(); // 写出响应实体字符流
// out1.write("hello resp!");
ServletOutputStream out2 = resp.getOutputStream(); // 写出响应实体字节流
FileInputStream in = new FileInputStream("C:\\Users\\berger\\Pictures\\desk.jpg");
int len = 0;
byte[] data = new byte[1024];
while ((len = in.read(data)) != -1) {
out2.write(data);
}
out2.flush();
out2.close();
in.close();
}
}