Spring_Redirect & Forward

song·2023년 10월 27일

Spring

목록 보기
9/19

Redirect

  1. 브라우저가 A요청
  2. A : 이거 내가 아니라 B를 보여주라고 응답.
  3. 브라우저가 B요청
  4. B 응답.
  • get방식으로 돈다.
  • return "redirect:/register/add"
  • a태그는 무조건 get방식이다.
  • url에 넣은 값들이 다 표시된다.
  • java에서 링크에 값 넣어서 보내면 jsp에서 param. 해당키값 으로 받아서 사용하면 된다.

Forward

  1. 브라우저가 A요청
  2. A : 이거 내가 아니라 B임. A가 B에게 요청
  3. B 응답.
  • post방식으로 돈다.
  • Spring은 해당 방식을 주로 채택한다.
  • 브라우저는 A가 응답해준건지 B가 응답해준건지 모른다.
  • 요청을 한 번만 하기 때문에 객체를 한 번만 생성해주면 된다.
  • return "forward:/register/add"
  • url에 넣은 값들이 표시되지 않는다.
  • 모델에 값을 넣어서 보내면 jsp에서 해당키값 (param 안쓴다. )으로 받아서 사용하면 된다.
  • 하지만 forward방식도 url에 값넣어서 보낼 수 있다. 해당 경우에도 url에 내용은 표시가 되지 않으며, jsp에서 param. 해당키값 으로 받아서 사용하면 된다.
    하지만 표시가 되지 않으므로 다음에 불러지는 java 파일에서는 인식할 수 없다.

    회원가입사이트에서 DB저장되는 페이지로 가는데 가면서 만약 정보를 잘 못넣으면 가입사이트, 잘 넣었으면 DB 저장 페이지로 가게 한다.
    이때 forward방식으로 보내면 url창에는 회원가입사이트(/add)에서 DB저장되는 페이지(/save)로 가는데 가면서 만약 정보를 잘 못넣으면 가입사이트(/add), 잘 넣었으면 DB 저장 페이지(/save)로 가게 한다.
    이때 forward방식으로 보내면 사용자에게 잘못 넣었으니 add로 가라고 응답하지 않고 자기가 알아서 add화면을 보여준다.
    그래서 url에는 save가 남아있게 된다. (사용자는 save로 가달라고 요청을 했고 forward방식이라서 사용자에게 add로 가라는 응답 안해주니까)

profile
계속 나아가기

0개의 댓글