Redirect vs forward

Web Development assistant·2021년 12월 5일
0

# spring

목록 보기
3/32

1.redirect (300번대 응답, 2번 요청)

컨트롤러에서 리턴값으로 redirect을 주면
브라우저가 자동으로 리턴받은 경로를 get방식으로 재요청을한다.

사용자가 아닌 브라우저가 http헤더의 location경로를 읽어서 재요청을 한다.

a라는 컨트롤러에 요청을했으나 리턴(redirect)으로 b의 경로를 받게 되어 브라우저 스스로가 b의 컨트롤러로 재 요청을 하게 된다.

요청을 2번하게되고 응답도 2번 받게 된다.
두번째에 새로운 URI를 요청하니 주소값이 바뀐다.

2.forward (200번대 응답, 1번 요청)
사용자의 요청을 처리한 뒤 그 값을 다른 컨트롤러로 전달해준다.
요청 1번 응답 1번.
주소값이 바뀌지 않음

return "forward:/userJoin/add";

add의 맵핑값을 가진 컨트롤러로 이동하게 되고 그 컨톨러에서 
작업을 처리 한뒤 return "signIn"이라면 ......

리턴값으로 String타입의 jsp 파일 이름을 리턴해주는데
스프링의 view.InternalResourceViewResolver가 경로로 전환해준다.

//servelt-contetx.xml

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<beans:property name="prefix" value="/WEB-INF/views/" />
	<beans:property name="suffix" value=".jsp" />
</beans:bean>
    ```
    

0개의 댓글