但是只能跳到当前主机下,跳转后浏览器地址栏不变,此语句后面的语句执行完成后才会跳转。
使用JSP页面跳转大约有下列三种方式:
response.sendRedirect;
""; response.setHead"Location".
<jsp:forwardpage=""/>
经过试验得到下面的一些规则:
JSP页面跳转规则一.response.sendRedirect
会有异常:此语句前不允许有out.flush如果有。
java.lang.IllegalStateException:Can'tsendRedirectafterdatahacommittotheclient.
atcom.caucho.server.connection.A bstractHttpResponse.sendRedirectAbstractHttpResponse.java:558
...
跳转后浏览器地址栏变化;
跳转后,如果要跳到不同主机下。此语句后面的语句会继续执行,如同新开了线程,但是对respons操作已经无意义了
此语句后面的语句执行完成后才会跳转;如果要跳到相同主机下。
""JSP页面跳转规则二.response.setHead"Location".
页面不会跳转。此语句前不允许有out.flush如果有。
此语句后面的语句执行完成后才会跳转。跳转后浏览器地址栏变化。
JSP页面跳转规则三.<jsp:forwardpage="">
会有异常:此语句前不允许有out.flush如果有。
java.lang.IllegalStateException:forwardnotallowafterbufferhacommitted.
atcom.caucho.server.webapp.RequestDispatcherImpl.forwardRequestDispatcherImpl.java:134
atcom.caucho.server.webapp.RequestDispatcherImpl.forwardRequestDispatcherImpl.java:101
atcom.caucho.jsp.PageContextImpl.forwardPageContextImpl.java:836