본문 바로가기
java/spring

spring - redirect , forward

by rewind 2024. 7. 5.

Redirect

상태코드가 300 redirect -> 다른 url로 재요청(응답 헤더만 존재하고 바디가 없다)

브라우저가 자동으로 헤더의 로케이션으로 요청을 보낸다

첫 요청 객체와 응답에 의한 요청 객체는 서로 다른 객체

 

ex) 고객이 전화 -> 받은쪽에서 담당부서가 아니라 다시 연결

요청 두번 응답 두번

 

Forward

요청 -> write.jsp ←---------------------------------------→ login.jsp

컨트롤러 처리 -> 결과 모델에 담아서 뷰에 전달 -> 뷰가 응답

 

스프링에서의 처리 과정

요청 ->DispatcherServlet <----> Controller

  응답↖           ↓

            RedirectView(응답헤더)

 

JSTLView

요청 -> DispatcherServlet -> Controller

                        ↓

                 JstlView(응답헤더)

                        ↓

응답 ↖   registerForm.jsp

InternalResourceViewResolver -> 뷰 이름 ↓

servlet-context.xml 내에

 

4. InternalResourceViewResolver

forward

csv comma seperated value

 

5. 포워드 예시

입출력 내역을 다운받을때

파일 타입이 pdf, excel, csv 등등 이면 각각의 뷰로 만들어서 포워드 해줘야..

 

리다이렉트는 주소변경, 포워드는 주소 바뀌지 않음

 

register/save가 register/add로 포워드

 

포워드는 요청이 하나다