Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSP out.flush()问题_Jsp_Jspinclude - Fatal编程技术网

JSP out.flush()问题

JSP out.flush()问题,jsp,jspinclude,Jsp,Jspinclude,我今天有个奇怪的问题。我有一个head.jsp(以out.flush结尾),它被其他页面包含。大多数页面都没有这个问题。flush();但是我的一个页面在jboss 4.2.2 GA上出现了非法状态异常 我想我检查了相关的java文件ResponseFacade.java。并查看由于if(isCommitted)检查而出现的问题 我刚刚从我的问题页面中删除了include语句,它现在正在工作。 但问题是;为什么其他页面与此页面没有问题,而只有一个页面有问题 或者,如果其他页面包含jsp文件。是否

我今天有个奇怪的问题。我有一个head.jsp(以out.flush结尾),它被其他页面包含。大多数页面都没有这个问题。flush();但是我的一个页面在jboss 4.2.2 GA上出现了非法状态异常

我想我检查了相关的java文件ResponseFacade.java。并查看由于if(isCommitted)检查而出现的问题

我刚刚从我的问题页面中删除了include语句,它现在正在工作。 但问题是;为什么其他页面与此页面没有问题,而只有一个页面有问题


或者,如果其他页面包含jsp文件。是否需要在此包含的页面中清除.flush()?

您的web容器当然会在需要时刷新响应的输出流。你不需要打电话来冲水。顺便说一句,JSP中的Java代码是一种糟糕的做法。

您的web容器当然会在需要时刷新响应的输出流。你不需要打电话来冲水。顺便说一句,JSP中的Java代码是一种糟糕的做法。

我没有相同的设置,但有一个类似的问题

在我的jsp中使用了
不再工作了。未包含指定的页面

我用


希望这有帮助。

我没有相同的设置,但有类似的问题

在我的jsp中使用了
不再工作了。未包含指定的页面

我用

希望这有帮助。

当您刷新()时,您将缓冲区的内容发送到客户端,然后清空缓冲区。 在这方面没有什么不好的做法,你可以根据需要冲洗多少次

请记住,JSP页面的第一个flush()也将发送HTTP头,缓冲区标记为已提交(status->isCommitted)。 意思是:在这一点上,你不能再发送HTTP头(比如页面转发,cookies)

很可能在flush()完成后(包括之后),您试图在页面中发送一些HTTP头。

当flush()时,您将缓冲区的内容发送到客户端,然后清空缓冲区。 在这方面没有什么不好的做法,你可以根据需要冲洗多少次

请记住,JSP页面的第一个flush()也将发送HTTP头,缓冲区标记为已提交(status->isCommitted)。 意思是:在这一点上,你不能再发送HTTP头(比如页面转发,cookies)


在flush()完成之后(在include之后),您可能试图在页面中发送一些HTTP头。

这是唯一对我有效的方法(通过Tomcat/Apache的JSP)

Main.jsp

<jsp:include page="flush.jsp" flush="true" />

Flush.jsp(空白)


这是唯一适合我的方法(通过Tomcat/Apache的JSP)

Main.jsp

<jsp:include page="flush.jsp" flush="true" />

Flush.jsp(空白)



您不需要在JSP中刷新。Flush用于在呈现整个页面之前向客户端发送一些内容。但是不管怎样,内容最终都会刷新,即使您没有显式地编写
flush
,也不需要在JSP中刷新。Flush用于在呈现整个页面之前向客户端发送一些内容。但无论如何,内容最终都会被刷新,即使你没有明确地编写
flush
。如果你是说ResponseFacade之类的东西,那么它是应用服务器的一部分,而不是我的jsp页面。如果输出已经被刷新,你的jsp页面肯定会做一些无法工作的事情(例如重定向)。我的回答是,你不需要手动冲洗。应用服务器会帮你做的。如果你是说ResponseFacade,那它是应用服务器的一部分,而不是我的jsp页面。如果输出已经刷新,你的jsp页面肯定会做一些无法工作的事情(比如重定向)。我的回答是,你不需要手动冲洗。应用程序服务器将为您执行此操作。