본문 바로가기
🕸웹

[20210909] "응답이 커밋 된 후 sendRedirect()를 호출할 수 없습니다."

by 캔 2021. 9. 9.

"응답이 커밋 된 후 sendRedirect()를 호출할 수 없습니다."

이 메시지는 페이지에서 이미 응답을 마쳤으나 그 이후에 페이지를 리다이렉트할 경우 발생하는 오류 메시지이다.

본인의 경우 컨트롤러에서 HttpServletResponse로 자바스크립트 alert를 띄운 후 return 값으로 redirect를 주었더니 이런 에러가 발생하였다.

HTTP 통신에서 클라이언트의 request를 받고 서버가 response를 전달하면 통신이 끝나게 된다. 그러나 그 이후에 요청에 대한 응답으로 redirect를 수행하려고 하면 서버는 이미 통신이 끝났다며 오류 메시지를 발생시키는것이다.

이 오류를 해결하려면 redirect를 기존의 response 수행 시 처리하도록 고치거나 redirect하지 않는 방향으로 수정해야 한다.