클라이언트가 잘못된 요청을 보내오는 경우 404 에러 페이지로 보낸다.
Spring @ControllerAdvice 어노테이션을 이용한 에러 처리
어떤 요청으로 사용자들이 계속 실수를 하는가 등을 파악하기 위해서는 에러 핸들러를 만드는 경우를 필요로 할 수 있다.
package com.yuri.studyolle.modules.main;
import com.yuri.studyolle.modules.account.Account;
import com.yuri.studyolle.modules.account.CurrentAccount;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@ControllerAdvice
public class ExceptionAdvice {
@ExceptionHandler // 어떤 사용자, 어떤 요청으로 보내는가
public String handleRuntimeException(@CurrentAccount Account account, HttpServletRequest req, RuntimeException e) {
if (account != null) {
log.info("'{}' requested '{}'", account.getNickname(), req.getRequestURI());
} else { // account가 없다고 하더라도 !
log.info("requested '{}'", req.getRequestURI());
}
log.error("bad request", e); // error 로깅
return "error"; // 만들어놓은 error 페이지로 보내기
}
}
어떤 사용자가 어떤 url로 요청을 했는지 로그를 볼 수 있다.
출처 : 인프런 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발
https://tram-devlog.tistory.com/entry/Spring-ControllerAdvice-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%97%90%EB%9F%AC-%EC%B2%98%EB%A6%AC
https://freefrontend.com/html-css-404-page-templates/