2022 01 30 - oneso123456789/2022 GitHub Wiki

other

404에러 페이지

WAS의 구동 중 가장 흔한 에러와 관련 HTTP 상태 코드는 404&500 에러코드임 500 메시지는 Internal Server Error이므로 @ExceptionHandler를
이용해서 처리되지만, 잘못된 URL을 호출할 때 보이는 404 에러 메시지의 경우 조금 다르게 처리
하는것이 좋음
서블릿이나 JSP를 이용했던 개발 시에는 web.xml을 이용해서 별도의 에러
페이지를 지정할 수 있음
에러 발생 시 추가적인 작업을 하기는 어렵기 때문에 스프링을 이용해서
404와 같이 WAS 내부에서 발생하는 에러를 처리하는 방식을 알아두는 것이 좋음

스프링 MVC의 모든 요청은 DispatcherServlet을 이용해서 처리되므로
404 에러도 처리할 수 있도록 web.xml을 수정합니다

web.xml 수정

web.xml의 servlet설정 아래에 init-param태그로

            <param-name>throwExceptionIfNoHandlerFound</param-name>
            <param-value>true</param-value>

내용 추가함

CommonExceptionAdvice 클래스 내용추가

퍼블릭형 handler404()메서드 생성 리턴 타입은 String 파라미터는
NoHandlerFoundExcetpion으로 만듬 @ExceptionHandler어노테이션으로 NoHandlerFoundException.class지정
@ResponseStatus어노테이션으로 HttpStatus.NOT_FOUND속성 사용해서
HTTP의 상태를 NOT_FOUND 상태로 바꿔줌
리턴 값은 "custom404"니까 custom404.jsp페이지 생성해줌

custom404.jsp 생성

태그 수정하고 UTF-8로 인코딩 해준후 보디에 h1태그로 해당 URL은 존재
하지 않습니다 넣어줌

⚠️ **GitHub.com Fallback** ⚠️