页面调转有如下几种方式
1 RequestDispatcher.forward()
2 response.sendRedirect()
3 <jsp:forward page="" />
4 修改HTTP header的Location属性来重定向
5 pageContext.forward()
我把检验用户是否登录的代码写在一个JSP文件中
代
码如下
logincheck.jsp
<%
if (session.getAttribute("flag") == null
|| !"ok".equals(session.getAttribute("flag"))) {
//1 跳转方式1
response.sendRedirect("login.jsp"); return;
//2跳转方式2
//pageContext.forward("login.jsp"); }
%>
//success.jsp <%@ page contentType="text/html;charset=Shift_JIS" session="true" //a 包含方法a //b 包含方法b 我将文件的包含方式和文件的调转方式作了组合测试。 结果如下 -------------------------------------------------- 包含方法 | 跳转方法 | 结果 ------------------------------------------------- a | 1 | 注1 ------------------------------------------------
b | 1 | ok
------------------------------------------------ a | 2 | 注2 ------------------------------------------------
b | 2 | ok
------------------------------------------------ 注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
|