반응형
강의 전에 사용했던 DispatcherType에 대해 조금 더 자세히 공부했다.
요청 중 오류가 발생하게 되면 오류 페이지 출력을 위해 WAS 내부에서 다시 한 번 호출이 일어난다. 이때 필터, 서블릿, 인터셉터 또한 모두 다시 호출된다. 이때, 클라이언트로부터 발생한 호출인지 오류 페이지를 출력하기 위해 발생한 내부 요청인지 구분이 필요한데 그런 문제를 해결하기 위해 DispatcherType라는 추가 정보를 제공한다.
필터는 dispatcherType라는 옵션을 제공하는데 디폴트 값은 dispatcherType=REQUEST이다. 이 외에 여러 옵션이 있는데 내용은 아래와 같다.
REQUEST : 클라이언트 요청
ERROR : 오류 요청
FORWARD : 서블릿에서 다른 서블릿이나 JSP를 호출할 때
RequestDispatcher.forward(request, response);
INCLUDE : 서블릿에서 다른 서블릿이나 JSP의 결과를 포함할 때
RequestDispatcher.include(request, response);
ASYNC : 서블릿 비동기 호출
filterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST,DispatcherType.ERROR);
코드에선 이렇게 REQUEST와 ERROR을 둘 다 넣어 사용했다. 이 경우 클라이언트와 오류 페이지에서도 필터가 호출된다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : BasicErrorController 오류 페이지 (0) | 2022.02.28 |
---|---|
[Spring Boot] : 인터셉터 예외 처리 (0) | 2022.02.25 |
[Spring Boot] : 서블릿 예외 처리 오류 페이지 작동 원리 (0) | 2022.02.25 |
[Spring Boot] : 서블릿 예외 처리 오류 화면 제공 기능 구현하기 (0) | 2022.02.25 |
[Spring Boot] : Servlet Exception, 서블릿 예외 처리 시작하기 (0) | 2022.02.24 |
댓글