반응형
필터가 정상 작동하는지 확인하기 위해 모든 요청을 남기는 필터를 개발했다.
public class LogFilter implements Filter
먼저 필터는 Filter 인터페이스를 구현해야 한다.
ublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HTTP 요청이 오면 doFilter가 호출된다. ServletRequest request는 HTTP 요청이 아닌 경우까지 고려한 인터페이스인데 HTTP를 사용하면
HttpServletRequest httpRequest = (HttpServletRequest) request;
이렇게 다운 캐스팅하여 사용하면 된다.
try {
log.info("REQUEST [{}][{}]", uuid, requestURI);
chain.doFilter(request, response);
} catch (Exception e) {
throw e;
} finally {
log.info("RESPONSE [{}][{}]", uuid, requestURI);
}
출력 로그인다.
여기서 가장 중요한 부분이 chain.doFilter(request, response); 이라고 한다. 다음 필터가 있으면 필터를 호출하고 필터가 없으면 서블릿을 호출한다. 이 로직을 호출하지 않으면 다음 단계로 진행되지 않는다. ( 필터는 체인 형식으로 이루어질 수 있는 점을 떠올리면 이해가 될 것이다.)
만약, 같은 HTTP 요청건에 대해 모두 같은 식별자를 남기고 싶다면 logback mdc로 검색을 해보는 것을 추천한다고 한다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 스프링 인터셉터 (0) | 2022.02.23 |
---|---|
[Spring Boot] : Servlet Filter 인증 체크하기 (0) | 2022.02.22 |
[Spring Boot] : Servlet Filter (0) | 2022.02.22 |
[Spring Boot] : Session TimeOut 설정하기 (0) | 2022.02.22 |
[Spring Boot] : 서블릿 HTTP 세션을 활용해 로그인 처리하기(2) (0) | 2022.02.22 |
댓글