반응형
Java 웹 애플리케이션에서 페이지 이동에는
'Redirect'와 'Forward'라는 두 가지 방법이 있는데
이 두 방법은 서로 다른 동작을 한다.
a.jsp 로 클라이언트가 요청을 보내면 a.jsp 는 로직에 맞게 작업할 것이다.
그 다음 response.sendRedirect("b.jsp");로 이동을 하라고 명령을 내리면
서버가 브라우저한테 b.jsp 로 이동하라는 응답을 보낸다.
응답을 받은 클라이언트는 다시 한번 b.jsp 요청을 다시 보내는데
마찬가지로 로직에 맞게 작업 후 다시 응답을 클라이언트에게 보낸다.
네트워크 상의 두 번의 요청과 응답이 발생하는 것을 알 수 있다.
즉, a.jsp 에서 담은 값을 b.jsp 로 전달할 수 없다.
HTTP 프로토콜이 상태를 공유할 수 없기 때문에 발생한다.
a의 결과값을 b로 전달하고 싶다면 지금부터 설명할
Forward 방식을 사용하면 된다.
RequestDispatcher를 이용할 경우 한번의 요청으로 인해
모든 작업이 서버에서 처리되기 때문에
실행 속도는 Response의 sendRedirect를 사용할 때보다 빠르다.
(Response의 sendRedirect를 이용할 경우에는 String 밖에 전달할 수 없다.)
- 굳이 데이터를 전달할 필요가 없는 경우 Redirect 방식을 사용해 페이지를 이동해도 무방하다.
- 서블릿 간의 데이터를 전달하고 싶을 땐 네트워크상에서 데이터를 유실 우려가 있기 때문에
반드시 Forward를 사용해야한다.
반응형
'활동 > 호기심' 카테고리의 다른 글
Spring Boot 게시글 업데이트 기능 구현 (Thymeleaf 활용 가이드) (0) | 2023.09.22 |
---|---|
스프링 게시판 CRUD 만들기 (HTTP Method / GET방식과 POST방식) (0) | 2023.09.21 |
메서드 오버로딩(Overloading) 언제 쓰는지 깔끔하고 간단히 정리 (0) | 2023.09.04 |
Integer은 어떨 때 사용하는가 (내가 봐도 정리 깔끔) (0) | 2023.09.01 |
for문과 foreach문은 어떨 때 쓰면 좋을까 (0) | 2023.09.01 |