You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSP+Tomcat应用在Chrome中出现net::ERR_INCOMPLETE_CHUNKED_ENCODING 200错误求助

解决Chrome中net::ERR_INCOMPLETE_CHUNKED_ENCODING 200异常的方案

嘿,这个问题我之前也碰到过几次,Chrome的这个chunked编码错误通常和响应流处理不当有关,结合你的JSP+Tomcat场景,给你几个排查和解决的方向:

1. 检查Servlet中的响应流是否被提前写入

这是最常见的原因:如果在调用forward之前,你的Servlet不小心向响应流写入了任何内容(哪怕是一个空格、换行,或者调用了resp.flushBuffer()),Tomcat会提前发送响应头,后续转发时就会导致chunked编码的响应不完整,Chrome就会报错。

解决方法:

  • 彻底删除Servlet中所有向resp.getWriter()或resp.getOutputStream()写入内容的代码,确保转发前没有任何输出操作。
  • 比如如果有类似这样的代码,一定要删掉:
    resp.getWriter().println("debug info"); // 这类代码会导致问题
    resp.flushBuffer(); // 同样会触发响应头提前发送
    

2. 修正JSP的contentType配置错误

你的JSP开头的contentType声明存在冲突:

<%@ page contentType="text/html; ISO-8859-1;charset=UTF-8" language="java" %>

这里同时指定了ISO-8859-1和UTF-8两种编码,会导致Tomcat处理响应编码时出现混乱,间接引发chunked编码异常。

解决方法:统一编码为UTF-8,改成:

<%@ page contentType="text/html; charset=UTF-8" language="java" %>

3. 调整Tomcat缓冲区或压缩配置

有时候Tomcat的默认响应缓冲区过小,或者开启了压缩功能,会和chunked编码机制冲突:

  • 调整JSP缓冲区:在JSP页面顶部添加缓冲区设置,调大缓冲区大小并开启自动刷新:
    <%@ page buffer="16kb" autoFlush="true" %>
    
  • 关闭Tomcat压缩:找到Tomcat安装目录下conf/server.xml中的Connector配置,暂时关闭压缩功能(如果开启了的话):
    <!-- 把compression="on"改成compression="off" -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" compression="off"/>
    
    修改后重启Tomcat再测试。

4. 排查JSP页面的输出异常

如果JSP页面中的Java代码块抛出未捕获的异常,或者HTML结构不完整,会导致响应流输出到一半中断,也会触发这个错误:

  • 检查Java代码:页面中导入了ArrayList,如果有使用这个集合的代码(比如迭代输出),确保没有空指针或其他异常,最好用try-catch包裹可能出错的代码段:
    <%
    try {
        // 你的集合操作代码
    } catch (Exception e) {
        e.printStackTrace(); // 或者记录日志,避免输出中断
    }
    %>
    
  • 检查HTML结构:确保所有标签都正确闭合(比如你的<div class="topbar_button">有没有闭合标签</div>),虽然浏览器有容错机制,但极端情况下会影响响应内容的完整性。

先从前面两个方案开始排查,这两个是最容易触发这个问题的原因,一般都能解决。

内容的提问来源于stack exchange,提问作者tecn603

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:38:18