JSP

forward와 redirect의 차이점

bang2001 2013. 7. 25. 19:49

 forward와 redirect의 차이점


먼저 forward와 redirect는 jsp에서 페이지를 이동할 수 있도록 하는것을 말한다.

ex) 
 - redirect 방식 : response.sendRedirect("cartList.jsp");
 - forward 방식 : <jsp:forward page="cartList.jsp" />

그런데 이 두가지 방식은 서로 큰 차이를 보인다. 페이지를 이동하는것에는 동일하지만 
다음과 같은 차이가 존재한다.

 - forward 방식은 URL 주소가 변경되지 않는다.
 - redirect 방식은 URL 주소가 변경이 된다.

이 두가지 방식은 큰 차이가 없어보이나  request(요청)을 같이 동반하는가 그렇지 않은가에 
차이가 있다. 예를들어서 POST나 GET방식을 통한 데이터 전송으로 값을 얻어내어
Server DB에 접근하여 데이터를 처리하는 코드를 작성하였다고 가정할 때,

forward 방식은 다른 페이지에서도 이런 데이터 처리를 실행하게 될 것이고,
redirect 방식은 다른 페이지로 이동하게 되면서 URL주소가 변경되기 때문에 해당 페이지에 
맞는 데이터를 처리하도록 될 것이다.

즉 forward 방식은 request(요청)을 같이 동반하기 때문에 만약 쇼핑몰의 장바구니와 같은 페이지에서 forward 방식을 사용한다면 cartList.jsp(장바구니 리스트)페이지를 새로고침을 할 때마다 request(요청)에 반응하여 response(응답)을 보내게 되고 그렇다면 이전 페이지에서 장바구니에 물품수량을 결정짓는 코드가 있다고 가정한다면 장바구니에 추가되는 물품의 수량이 계속 증가할 것이다. 만약 그렇게 된다면 잘못하면 사용자가 원하지 않는 수량의 물품을 청구받게 될 수도 있다. 

그러므로 이점 주의하여 사용하도록 해야 한다.