3 <jsp:forward page="" />
|| !"ok".equals(session.getAttribute("flag"))) {
response.sendRedirect("login.jsp");
return;
//pageContext.forward("login.jsp");
}
//success.jsp
<%@ page contentType="text/html;charset=Shift_JIS" session="true"
isErrorPage="false" errorPage="err.jsp" %>
//a 包含方法a
<!-- jsp:include page="logincheck.jsp" flush="true"/---->
//b 包含方法b
<%@ include file="logincheck.jsp"%>
<html>
<head>
<title>Success.jsp</title>
</head>
<body>
This is my JSP page. Success! <br>
Welcome
<%
out.print("SCHOOL : "+request.getAttribute("school")+"<br>");
out.print("AGE : "+session.getAttribute("age")+"<br>");
out.print("CITY : "+application.getAttribute("city")+"<br>");
%>
</body>
<A href="logout.jsp">ログ アウト</A>
</html>
我将文件的包含方式和文件的调转方式作了组合测试。
结果如下
--------------------------------------------------
包含方法 | 跳转方法 | 结果
-------------------------------------------------
a | 1 | 注1
------------------------------------------------
------------------------------------------------
a | 2 | 注2
------------------------------------------------
------------------------------------------------
注1
不做任何调转
注2
只有将
<jsp:include page="logincheck.jsp" flush="true"/>
放在代码的第一行才可以。
否则
java.lang.IllegalStateException: Cannot forward after response has been committed at org.apache.catalina.core.ApplicationDispatcher.doForward
日文环境
java.lang.IllegalStateException: レスポンスをコミットした後でフォワードできません at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:324) at
这个错误往往是在forward执行之前,response已经返回了!
不明的原因!有空上网上再找找!