Forward&Redirect

무삭이의 개발일지·2023년 5월 25일
0

Forward에 대해 알아보자


포워드란 최전방 공격수를 말한다. 현재 이피엘을 부수고 있는 우리의 홀붕이. 볼 때마다 잘생겼다.

forward 방식의 특징 중 하나는 request와 response가 유지된다는 점이 아닐까싶다. servletContext를 이용해 공유된 데이터나 request, response를 유지할 수 있는 것이다! forward는 WAS내에서 페이지를 전달하는 방식이다. 서버 내부에서 직접 처리되기 때문에 클라이언트에게는 전체적인 이동이 눈에 보이지 않는다.(URL 상의 변경이 없음) 클라이언트가 재동작 즉, 재요청(새로고침)을 할 경우 request와 response가 유지되므로 기존 동작이 반복된다. 그래서 주로 정보 조회(select)시에 이용된다. 사용할 땐 보통 RequestDispatcher를 사용하여 forward 작업을 수행한다.

✔ forward를 사용할 때 주의할 점이 있는데, 데이터가 다시 저장될 수 있는 상황이나 조회수가 오를 수 있는 게시물 등에서 사용할 경우 새로고침만으로 조회수가 증가하고, 데이터 저장이 가능한 곳에선 계속해서 저장을 시도하기 때문에 forward가 아닌 Redirect를 선택해야한다🤐

Redirect에 대해 알아보자.

리다이렉트에 대한 좋은 사진을 구하지 못했다..

Redirect는 "다시 보내다" 라는 뜻을 가지고 있다.
redirect는 forward와는 다르게 요청을 받고 응답시 클라이언트에게 이동할 url을 지정하여 클라이언트가 이동하게 하는 방식이다. 그렇기 때문에 요청을 한 클라이언트는 서버로부터 url를 받게 되고, 받은 새로운 url로 요청을 보낸다. 이 때 클라이언트는 처음 요청한 페이지와 다른 페이지로 이동하는 것을 인식하며, 주소창에는 새로운 URL이 표시된다. servletContext 덕분에 request, response를 유지하지만, redirect는 request 와 response를 유지 하지 않는다. HttpServletResponse의 sendRedirect()메서드를 이용해 redirect 작업을 수행한다.
리다이렉션 후에는 클라이언트와 서버 간에 새로운 요청과 응답이 이루어지므로, 공유된 데이터나 상태를 유지하기 위해서는 쿠키, 세션, URL 매개변수 등을 활용해야한다.

😛 redirect는 재요청시(새로고침) 기존 동작이 반복되지 않는다. 그래서
서버 상태변경( insert , delete , update 를 통한 데이터 변경 )에 적합하다.

profile
No. Try not. Do or Do not. There is no try.

0개의 댓글