리다이렉션 방법

jungnoeun·2022년 8월 9일
0

jsp

목록 보기
14/14
post-thumbnail

리다이렉션 방법으로는 크게 두가지가 있다.
1. request.sendRedirect("..") 사용

  • 보통 데이터 없이 페이지만 이동할때 사용한다.
  1. RequestDispatcher.forward(req,resp) 사용
  • 보통 데이터와 함께 이동할때 사용한다.





🧶문제 상황

필터로 *.jsp 경로로 들어오는 경우, 잘못된 페이지라고 알려주도록 만들었다. 그런데 모든 .jsp페이지로 들어오는 경우 잘못된 페이지라고 뜬다.
이 문제를 해결하고자 한다.





⚾문제 이유

문제가 발생한 경우를 보면, 리다이렉션 방법은 sendRedirect("..")을 사용한 경우였다.



🌞sendRedirect("..")

sendRedirect("..")는 바깥으로 빠져나갔다가 다시 입구를 통해 들어오고 원하는 페이지로 이동한다. 입구를 다시 들어오게 되면, 필터를 다시 거치게 되고, 톰캣은 다시 request, response 객체를 만들게 된다.

-> *.jsp 페이지에 대해 필터를 안 거치게 할 부분들은 sendRedirect("..")를 사용하면 안된다. 대신 RequestDispatcher.forward(req,resp)를 사용한다.



🌈RequestDispatcher.forward(req,resp)

RequestDispatcher.forward(req,resp)는 request, response 객체가 다시 만들어지지 않고, 원래 있던 것을 계속 쓰면서 내부적으로 다시 흐름을 탄다. 그리고 입구를 통해 들어오지 않으므로, 필터도 다시 거치지 않는다.



그림은 아래와 같다.



필터를 사용하는 경우, sendRedirect("..")의 사용보다 RequestDispatcher.forward(req,resp)의 사용이 편할때가 있다.

profile
개발자

0개의 댓글