본문 바로가기

Java

jsp:include에서 sendRedirect안되는 문제


a.jsp 페이지가 있고
이 페이지에서 include.jsp 페이지를 인클루드한다.

include.jsp 페이지는
if문에 따라서 페이지를 포워딩 시켜준다.

간략한 코드로 적자면


a.jsp
<html>
<jsp:include page="include.jsp" flush="true" ><jsp:param name="go" value="ok" /></jsp:include>
<body>
</body>
</html>


include.jsp
<%
if(currentTime > endTime){ 
  response.sendRedirect("/mente.html"); return;
}
%>


요럴때에는

response.sendRedirect가 작동하지 않는다.
왜냐하면 jsp:include는 response객체의 상태를 변화시킬수 없기 때문이다.

jsp:include시에는 페이지가 생성된후 실행된다.

페이지의 생성순서는

<% %> 로 감싸져있는 스크립트릿
<jsp /> 로 시작하는 액션태그
<html><style><script> 등 html이다. 옆의 순서는 위에서 아래로 간다.

<%%> 사이에서 reqeust와 response등의 요청 응답이 종료되므로
jsp:include에서 response.sendRedirect를 암만써봐야 작동하지 않는다.

잘기억하자.