【问题标题】:I have used write bean tag in jsp file but when i try to create output stream using response object then it gives IllegalStateException?我在 jsp 文件中使用了 write bean 标签,但是当我尝试使用响应对象创建输出流时,它给出了 IllegalStateException?
【发布时间】:2020-07-20 17:04:12
【问题描述】:

我在 jsp 文件中使用了 write bean 标签,但是当我尝试使用响应对象创建输出流时,它会给出 IllegalStateException。

创建输出流并正确运行代码的解决方案是什么。

提前致谢

【问题讨论】:

    标签: java jsp struts


    【解决方案1】:

    ServletReponse对象提供了两种方法,getWriter输出文本数据,getOutputStream输出二进制数据。

    只能调用其中一个,否则会抛出 IllegalStateException。

    在 JSP 中,翻译后的编码在需要输出任何文本时调用 getWriter,因此会出现错误。

    要在 JSP 文件中调用 response.getOutputStream,您必须确保在调用之前不需要写入任何文本,因此您必须删除 <% %> 标记之外的所有文本,甚至是 new line 字符在 JSP 指令之间。

    【讨论】:

    • 我正在从 Action 文件中调用 response .getOutputStream()。
    • 在 jsp 文件中,我正在编写 bean 标记......并且 IllegalStateException 即将出现在 Action java 文件中......我无法在此处附加异常截图
    • 如果 JSP 文件在将响应传递给 Action 对象之前执行了任何写入操作,则该对象无法调用 getOutputStream,因为 JSP 文件内部已经调用了 getWriter
    • 您需要在 Action 对象中使用 getWriter 而不是 getOutputStream,或者,如果您确实需要在 Action 对象中输出二进制数据,则需要确保您的 JSP 没有'在将响应传递给 Action 对象之前不打印任何内容。
    • 那我可以用什么在页面上显示任何东西。
    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多