티스토리 뷰

language/Servlet&JSP

redirect / forward

북항 2019. 2. 22. 08:59
donaricano-btn
반응형

지금까지는 하나의 URL 요청에 하나의 서블릿이 모든 작업을 처리해서 응답하는 모델만을 생각했습니다. 하지만 다른 서블릿에서 처리해야 하는 일이라면 요청을 완전히 다른 URL로 방향을 바꾸거나 다른 컴포넌트(보통 JSP)에게 처리를 위임할 수도 있습니다.


요청을 다른 URL로 방향을 바꾸는 것을 servlet redirect 라고 합니다. HttpServletResponse 객체에 있는 sendRedirect() method를 호출해 이 작업을 수행할 수 있습니다. servlet redirect의 특징은 브라우저가 작업을 한다는 것입니다. 서블릿은 브라우저에게 URL을 바꿔서 다시 요청을 보내도록 유도합니다. 그렇기 때문에 클라이언트 주소창의 값이 바뀝니다. 이것은 마치 고객에게 다른 상담원에게 전화를 하라고 부탁하는 것과 같습니다.


반면 서버에서 일어나는 일도 있습니다. 바로 request dispatch 입니다. 이 방법은 주로 JSP 에게 처리를 위임할 때 사용합니다.


이것은 마치 전화를 받은 상담원이 일을 다른 직원에게 부탁하는 것과 비슷합니다. 고객 입장에서는 실제로 그 일을 누가 했는지 모릅니다. 마찬가지로 브라우저 주소창의 값이 바뀌지 않으니 어떤 서블릿이 응답을 보냈는지 알 수 없죠.


send redirect는 브라우저에서 다른 URL로 다시 요청을 보내는 것이기 때문에 굳이 같은 container에 있는 서블릿이나 페이지일 필요는 없습니다 하지만 request dispatch 방법은 동일한 컨테이너에 있는 서블릿이나 페이지로만 이동할 수 있습니다. 덕분에 response 객체와 request 객체를 공유할 수 있죠.

반응형
donaricano-btn
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함