日期:2014-05-16  浏览次数:20313 次

求教 有关jsp的include,forward动作的问题

我的jsp :hello.jsp

?

code1 :

<html>
<OL>

<LI><jsp:include page="/header.jsp" flush="true"/>
		
<LI><jsp:include page="/a.txt" flush="true"/>
	
<LI><jsp:include page="/a.txt" flush="true"/>
<LI><jsp:include page="/a.txt" flush="true"/>
</OL>
</html>

?

?

?

code 2 :

?

<html>
<OL>

<LI><jsp:include page="/header.jsp" flush="true"/>
		
<LI><jsp:include page="/a.txt" flush="true"/>
	
<LI><jsp:include page="/a.txt" flush="true"/>

<jsp:forward page="/a.txt"  />

<LI><jsp:include page="/a.txt" flush="true"/>
</OL>
</html>

?

当加入<jsp:forward page="/a.txt" />后,第三个LI 的内容就不会被显示,why ?。

?

?

生成的 hello_jsp.java 如下 :如果程序按顺序执行的话,应该没有问题的,不懂为什么不显示

?

out.write("<OL>\r\n");
      out.write("\r\n");
      out.write("<LI>");
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/header.jsp", out, true);
      out.write("\r\n");
      out.write("\t\t\r\n");
      out.write("<LI>");
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/a.txt", out, true);
      out.write("\r\n");
      out.write("\t\r\n");
      out.write("<LI>");
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/a.txt", out, true);
      out.write('\r');
      out.write('\n');
      out.write('	');
      if (true) {
        _jspx_page_context.forward("/a.txt");
        return;
      }
      out.write("\r\n");
      out.write("<LI>");
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/a.txt", out, true);
      out.write("\r\n");
      out.write("</OL>\r\n");

?

?