无法在JSP中设置标头响应已提交

问题描述

提交响应后,这意味着至少已将标头发送到客户端。当响应已经提交时,您不能设置/更改标题,因为为时已晚。

只要满足以下一个或多个条件,就会做出响应:

  • HttpServletResponse#sendRedirect() 已被调用。
  • Servlet或JSP已将超过2K写入响应输出。
  • Servlet或JSP 已写入 flush()在响应输出流上调用了大于0K但小于2K的值。

2K缓冲区限制可在appserver的配置中配置。

您需要重新排列代码逻辑,以便仅在 提交 响应 之前 设置标头。你应该 设置/更改使用响应头 小脚本 内/半路一个JSP。您仅应Filter在继续链之前在或页面控制器中Servlet分派请求之前执行此操作。还请注意,JSP包含文件都不会调用它们。

解决方法

WebSphere记录警告消息“ SRTServletRes
W警告:无法设置标头。一个JSP请求已提交响应。稍后我的代码中需要respone标头。我做了一些研究,并了解到Servlet试图将更多数据发送到输出流,但是该流已经提交。我不明白为什么只在特定的JSP上会发生这种情况,因为此Servlet代码对于其他JSP来说很好用。此页面未重定向,并且没有响应头,但我却获得了响应。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...