Servlet-Response响应字符数据
Servlet-Response响应字符数据
使用:
- 通过Response对象获取字符输出流
PrintWriter writer = resp.getWriter();
- 写数据
writer.write("aaa");
Content-Type 与编码
输出 HTML/JSON/文本时,建议直接设置:
resp.setContentType("text/html;charset=utf-8");
如果要输出 JSON:
resp.setContentType("application/json;charset=utf-8");
通常把 setContentType 放在 getWriter() 之前更稳妥,避免字符集被默认值锁定。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
writer.write("aaa");
writer.write("<h1>aaaa</h1>");
}
输出中文
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
writer.write("你好");
writer.write("<h1>aaaa</h1>");
}
小结
getWriter()适合“字符语义”的响应(HTML/JSON/文本)- 不建议手动
setHeader("content-type", ...),用setContentType更直观 - 通常不需要手动关闭
writer;让容器在请求结束时统一处理即可
关联:Servlet-响应数据 / Ajax / MVC模式