采用<JSP:FORWORD>
该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在<JSP:
FORWORD>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意.
如下面的例子中(1)会输出index.html的内容,2
不会输出index.html的内容,而是输出out.println("@@@@@@@@@@@@@@@@@");
中的内容,并且在服务端会抛出:java.lang.IllegalStateException: Response already
committed 异常,但客户端没有任何错误输出。
(1)
<%@page buffer="1kb"%>
<%
long i=0;
for(i=0;i<10;i++)
{
out.println("@@@@@@@@@@@@@@@@@");
}
%>
<jsp:forward page="./index.html" />
(2)
<%@page buffer="1kb"%>
<%
long i=0;
for(i=0;i<600;i++)
{
out.println("@@@@@@@@@@@@@@@@@");
}
%>