1

根据文档,接口的setContentLength(int len)方法ServletResponse设置响应中内容主体的长度在 HTTP servlet 中,该方法设置 HTTP Content-Length 标头。

  • 参数: len- 一个整数,指定返回给客户端的内容的长度;设置 Content-Length 标头

这是doGet()扩展类的方法HttpServlet

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/plain");
    response.setContentLength(6);
    PrintWriter out = response.getWriter();
    out.write("What's your name? ");
    out.write("" + response.isCommitted());
}

当我在 Chrome 浏览器上运行它时,输出是:What's your name? false

我很困惑计算here长度的度量标准是什么setContentLength(),无论是字节,字符还是其他东西,如果它设置了正文的内容长度,为什么response.isCommitted()返回false和我想要输出的文本的长度没有被截断吗?谢谢。

4

1 回答 1

1

我很困惑这里计算 setContentLength() 长度的度量标准是什么,无论是字节、字符还是其他

它在byte

请查看规范的Section#14.13 Content-Length以 获取详细信息。

当我在 Chrome 浏览器上运行它时,输出是:你叫什么名字?错误的

我怀疑你说的话的有效性。

下面是我的 Chrome 浏览器的屏幕截图:

在此处输入图像描述

下面是我的 Firefox 浏览器的屏幕截图:

在此处输入图像描述

于 2020-08-09T17:32:32.540 回答