티스토리 뷰

반응형

오늘 JSP(최범균님의 JSP2.2웹프로그래밍) 스터디 하다가 궁금한 점이 생겨서 테스트 해보았습니다.

책 222 쪽에는 버퍼가 없을 때는 <jsp:foword> 액션 태그를 사용하면 에러가 발생하며, 또한 버퍼가 차서 버퍼의 내용이 웹 브라우저에 한번 전송한 이후에 <jsp:foword> 액션 태그를 사용하는 경우에도 JSP 규약에 따라 에러가 발생한다고 나와있습니다. 과연 어떻게 에러가 날까요?




이렇게 코드를 작성했습니다. 버퍼의 크기는 1kb로 설정했어요. 그 다음에 반복문으로 "reimaginer"라는 문자열을 계속 출력하도록 했고요, 반복문이 끝난 이후에 <jsp:foword> 액션 태그를 사용하여 같은 경로에 있는 foword.jsp로 이동하도록 구현했습니다.


그럼 결과는 ?





엥 잘 나오네요? 그런데 가만 보니 마지막에 "r"만 남아있습니다. 버퍼를 플러시 한 후 어떠한 예외/에러가 발생하여 더 이상 결과가 출력되지 않은 것입니다. 그럼 어떤 일이 생긴 걸까요? 서버를 보았습니다.






이런 에러가 났네요.

Error: Attempt to clear a buffer that's already been flushed

에러가 버퍼 플러시 된 후에 나오니까 응답 코드는 200이 떨어져서 플러시된 데이터는 브라우저에 노출되었지만, 다음 버퍼에서는 에러가 나서 플러시 되지 못하고 끊겼네요. (끊겨서 "r"만 나옴)

신기 방기 합니다 ㅋㅋ



반응형
댓글
댓글쓰기 폼