본문 바로가기
코딩도전기/JAVA

Interceptor / RequestDispatcher - forward() VS Response - sendRedirect()

by 코도꼬마 2023. 12. 21.

Interceptor 

Interceptor : 클라이언트의 요청 전, 후 특정 작업을 처리하고자 할 때 사용하는 기능

  • ex) 로그인 처리, PC/모바일 분기 처리 등
  • AOP의 @Around와 비슷한 성격
  • AOP는 메소드 단위 (코드)로 설정, 인터셉터는 특정한 URL 단위로 설정
  • Filter : 주로 인코딩 처리 시 사용(선처리만 가능)
  • 실행순서 : Filter > DispatcherServlet > Interceptor > AOP

 

RequestDispatcher/forward()

 

RequestDispatcher : 전달 받은 요청을 다른 리소스(servlet, html, jsp)로 넘겨주는 역할을 하는 인터페이스
forward() : 요청에 의해 컨테이너에서 생성된 request와 response를 다른 리소스(servlet, jsp, html)로 넘겨주는 역할



forward와 sendRedirect의 차이
sendRedirect("Redirect Path") : request를 response하고 난 뒤 "Redirect Path"로 이동

  • forward()와의 차이점은 sendRedirect() 후 클라이언트와 서버 간 통신이 종료됨
  • RequestDispatcher의 forward()는 Request이기 때문에 통신을 유지하며 요청을 여러 서블릿에서 공유할 수 있음

 

 

참조 블로그

 

인터셉터 (Interceptor)

- Interceptor (인터셉터) - 클라이언트의 요청 전,후에 특정 작업을 처리하고자 할 때 사용하는 기능 (간단하게 컨트롤러 같은 계층이라고 생각하면 됨) 매개변수 - HttpServletRequest, HttpServletResponse 용

dlgkstjq623.tistory.com

 

참조 블로그

 

forward와 sendRedirect 차이

RequestDispatcher와 forward란? 클라이언트로부터 요청을 받고 이를 다른 리소스(서블릿, html, jsp)로 넘겨주는 역할을 하는 인터페이스. RequestDispatcher는 javax.servlet 패키지에 포함된 인터페이스로 위 정

sgcomputer.tistory.com