Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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中的RequestDispatcher包含静态内容在GAE Java SDK上不起作用_Java_Google App Engine_Jsp - Fatal编程技术网

使用JSP中的RequestDispatcher包含静态内容在GAE Java SDK上不起作用

使用JSP中的RequestDispatcher包含静态内容在GAE Java SDK上不起作用,java,google-app-engine,jsp,Java,Google App Engine,Jsp,我有一个web应用程序运行在app Engine Java SDK 1.7.2上。除了提供静态内容和JSP的默认设置外,该应用程序没有过滤器和servlet 在JSP文件中,我有一行内容如下: <% request.getRequestDispatcher( "a.html" ).include( request, response ); %> 这会引发java.lang.IllegalStateException:“getOutputStream已被调用” 如果我将“a.ht

我有一个web应用程序运行在app Engine Java SDK 1.7.2上。除了提供静态内容和JSP的默认设置外,该应用程序没有过滤器和servlet

在JSP文件中,我有一行内容如下:

<% request.getRequestDispatcher( "a.html" ).include( request, response ); %>

这会引发java.lang.IllegalStateException:“getOutputStream已被调用”

如果我将“a.html”更改为像“a.jsp”这样的动态内容,那么一切都可以正常工作。文档中说RequestDispatcher应该适用于动态和静态内容


OBS:我仍在学习servlet和所有相关的东西,但我知道还有其他方法可以实现我在这里所做的事情——这只是一个示例,而不是真实世界的场景。我只是想知道这是否是预期的行为以及原因。或者这只是一个bug?

为什么要在JSP中添加scriplets,这是一种可怕的方式,会让JSP的维护成为噩梦。无论如何,在您调用此方法之前,您的请求似乎已经被发送。

在谷歌搜索之后,我了解到此错误已经存在很长时间了。看看
虽然看起来很奇怪,但下面的方法很有效

<%@page buffer="none"%>
<%
   request.getRequestDispatcher("a.html").include(request,response);
%>


Wow!你是对的。我在我的开发系统上确认了它。我认为这是一个错误。希望GAE的人能对此有所启发。我做了更多的测试。这不是因为GAE。我在一个独立的Tomcat中也遇到了同样的例外。这不是一个真正的应用程序,我不关心这个问题中的良好设计原则,但我感谢你的强化:)关于已经发送的响应-这是一个单行JSP,即使在这种情况下,我也不确定它在包含“a.JSP”而不是“a.html”。感谢您所做的进一步调查。我也倾向于相信这确实是一个bug。我已在此处提交了一份问题报告:。