day05 Request Response
Posted Spurs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day05 Request Response相关的知识,希望对你有一定的参考价值。
Author:相忠良
Email: [email protected]
起始于:April 18, 2018
最后更新日期:April 18, 2018
声明:本笔记依据传智播客方立勋老师 Java Web 的授课视频内容记录而成,中间加入了自己的理解。本笔记目的是强化自己学习所用。若有疏漏或不当之处,请在评论区指出。谢谢。
涉及的图片,文档写完后,一次性更新。
day05 Request Response
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的 request 对象,和代表响应的 response 对象:
- 要想获取客户机提交过来的数据,只需找 request 对象;
- 要向客户机输出数据,只需找 response 对象就行了。
1. HttpServletResponse 简介
HttpServletResponse
响应,它封装了向客户机 发送数据、发送响应头和发送响应状态码 的方法。例如:
setStatus(int)
setHeader(String, String)
getWriter()
getOutputStream()
1.1 Response 的 OutputStream 输出中文的问题
程序已什么码表输出了,程序就一定要控制浏览器以什么码表打开。
1.用 响应头 的方式控制浏览器的码表,如下:
// servlet 中用 OutputStream 输出中文的问题
public class ResponseDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 通过response对象为浏览器指定码表
// 程序已什么码表输出了,程序就一定要控制浏览器以什么码表打开
response.setHeader("Content-type", "text/html;charset=UTF-8");
String data = "中国";
OutputStream out = response.getOutputStream();
out.write(data.getBytes("UTF-8")); // 以该码表输出
}
}
2.用 html 的<meta>
方式控制浏览器的码表,此方法 没有 向浏览器发送响应头。如下(我试验失败):
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String data = "中国";
OutputStream out = response.getOutputStream();
out.write("<meta http-equiv=‘content-type‘ content=‘text/html;charset=UTF-8‘>"
.getBytes());
out.write(data.getBytes("UTF-8"));
}
to be continued
以上是关于day05 Request Response的主要内容,如果未能解决你的问题,请参考以下文章