#7. Spring_ Redirect , Forward

박주현·2023년 11월 15일
0

Spring

목록 보기
9/12
post-thumbnail

오늘은 Redirect 와 Forward를 사용한 것을 정리하며 복습해보려한다.

Spring Framework 사용시 controller에서 View의 이름 대신 "redirect"를 사용하여 해당 주소를 리다이렉트 하는 경우가 있다.
이러한 경우에 스프링이 어떤식으로 Redirect를 하는 지 처리 과정에 대해 알아보자.

1. Redirect

  • 특징
  1. Request 가 필요없다.
  2. URL 변화가 있다.
  3. 외부에서 변화를 확인할 수 있다.

이러한 특징으로 본다면,
Redirect는 웹 브라우저에게 다른 페이지로 이동할 것을 명령하고 이동한 페이지에서 Request나 Response의 객체가 생성된다.

내가 사용한 코드를 설명하자면,
1 ) 213 ~ 214 번째 줄에서 Redirect되는 Request에 담을 파라미터를 지정한다.
2 ) 216번째에서 age를 파라미터로 지정하고 QueryString에 담겨져간다.
3 ) 여기서 강조되는 것은! View를 리턴하는 것이 아닌 Redirect를 된다는 점!

  • 처리 방식

2. Forward

  • 특징
  1. 코드의 흐름을 서버에서만 이동
  2. 브라우저는 다른 곳으로 흐름이 이동한 것을 인지하지 못하기 때문에 URL은 변경되지 않는다.
  3. HttpServletRequest, HttpSession 모두 유지가능하다. 하지만, HttpServletRequest는 소멸 후 다시 생성된다.

이렇게만 들었을때는 나 조차 이해하기 어려웠다.
하지만, 구글링을 통해서 다양한 사람들이 예시를 작성한 것을 토대로 내용을 이해할 수 있었는데 예시 중 하나가 바로
"카드 분실 신고" 이다.

우리가 카드를 분실하게 되면 어떠한 방법으로 처리를 할까?
첫번째로, 카드사에 전화를 하게된다. 하지만, 고객센터이다보니 다른부서에서 전화를 받는 경우가 많다.
두번째, 앞서말한대로 다른부서에서 전화를 받았을 경우에 분실신고부서로 연결해준다.
세번째, 최종적으로 분실신고부서에서 처리해준다.

이처럼, 요청을 보내고 서버내에서 이동하여 처리하는 것이 Forward 이다.

profile
빌드업 막 시작하는 개발자

0개의 댓글