작성
·
284
0
excludePathPatterns("/error-page/**")
자세한 뜻을 잘 모르겠습니다..
결국 /error-page/** 해주면 '제외하기 쉽게 되어 있기 때문에, 이러한 설정을 사용해서 오류 페이지 경로를 excludePathPatterns 를 사용해서 빼주면 된다.' 라고 알고 있습니다.
그리고 /error-page/** 작성하여 실행 시키면 REQUEST가 두번 출력되지 않는 다는 것과 postHandle() 메서드가 출력되지 않는 다는 것만 알고 있습니다.
반대로 /error-page/** 빼고 실행 한다면 REQUEST가 두번 출력되고, postHandle() 가 호출 된다는 것을 알고는 있는데,,
왜 그렇게 동작하는지 자세히 모르겠습니다.
뭔가,, 답만 알고 풀이는 모르고 있단 생각이 듭니다..
둘다 똑같은거 같은데, 차이가 뭔지... 하는 마음입니다.
제가 이해하기론 /error-page/** 는 error-page 밑에 있는 모든 파일을 해당한다고 이해하고 있는데, 그렇다면 templates 밑에 있는 /error-page/404.html 와 /error-page/500.html 이 제외 되어 출력 되면 안되는 것이 아닌가 싶습니다. 그리고 둘다 컨트롤러를 통해 잘 동작하는거 같습니다..
그리고, WAS까지 갔다 두번째 필터에서 제외 된다는 것이 /error-page/** 이렇게 설정하여, 어떻게 필터를 제외한다는 것인지도 모르겠습니다.
/error-page/** 설정 함으로써 제외 된다.. 무슨 말인지 잘 모르겠습니다 ...
답변 1
0
안녕하세요. water_ yoon님
정상 케이스
고객요청 -> 인터셉터 호출 -> 컨트롤러 호출
오류 케이스
고객요청(/request) -> 인터셉터 호출 -> 컨트롤러 호출(오류 발생) -> WAS로 오류 전달 -> WAS는 오류 페이지 호출을 위해 내부 호출(/error-page) -> 인터셉터 호출 -> 컨트롤러 호출(오류 페이지)
여기 보시면 오류 케이스에 인터셉터가 총 2번 호출되게 됩니다.
오류 케이스에서 인터셉터 호출을 하지 않는 것이 목적이기 때문에 제외했습니다.
감사합니다.