본문 바로가기

Jsp,Servlet

JSP Servlet: response.sendRedirect() 사용시 주의 해야할 점

반응형

response.sendRedirect() 사용시 주의 해야할 점

1. out.print() 무시

sendRedirect가 호출되기 전까지는 앞에서 써왔던 out.print() 들은 무시하게 됩니다.

if(vale)
{
    out.print("<script>alert('접속 불가');</script>");
    response.sendRedirect("main.html");
}

이 위의 예제를 실행시키면 alert()는 실행 되지 않고 main.html로 이동하게된다.

해결방안

원하는 의도를 내려면 sendRedirect를 사용하기 보다는 javascript를 이용해 페이지를 이동합니다.

if(vale)
{
    out.print("<script>alert('접속 불가');</script>");
    out.print("location.href = 'main.jsp';");
}

print()에 location.herf=’이동할곳’ 이런식으로 적어줘 사용하시면 됩니다.


밑의 소스 결과는 어떻게 될까요? hi가 출력할까요?

if(vale)
{
    out.print("<script>alert('접속 불가');</script>");
     response.sendRedirect("main.html");
     System.out.print("hi");

}

답은 hi가 출력된다 입니다.
sendRedirect는 호출되더라도 나머지 코드들은 그대로 실행된다는것입니다.

결론

“sendRedirect가 실행되기전 html이나 javascript로 out put되는 코드들은 모두 실행되지 않습니다. 그러므로 가급적이면 모든 기능들을 실행한 후에 마지막에 써주는것이 좋습니다.”

반응형