Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- MAC
- 권한별메뉴만들기
- csv다운로드
- 재귀구문
- 500에러관리
- 사용자별메뉴
- 데이터업로드
- MySQL
- jue
- cachedbodyhttpservletrequest
- 신사동이자카야
- 데이터베이스
- 오리지널팬케이스하우스 판교점
- 유에이치스위트
- springboot
- 판교테크원타워맛집
- 디너요리추천
- 바디캐싱
- menu만들기
- 시청역숙소
- 시청역놀곳
- 400에러관리
- csv업로드
- httpcode
- 스프링부트
- 유에이치스위트서울스퀘어
- 한남동중식
- xcrunerror
- 오리지널팬케이스하우스
- 컬럼타입변경
Archives
- Today
- Total
IT모저모
[Springboot] 400에러페이지 설정하기 본문
반응형
안녕하세요.
개발하다보면 400, 500, 404 페이지를 보게 되는 경우가 많습니다.
스프링 부트에서는
화이트라벨 에러 페이지로 에러를 리턴해주죠?
하지만 http코드에 맞는 에러페이지를 리턴해주는 것이 좋습니다.
그러므로 404 NOT FOUND 리턴을 해보겠습니다.
구성환경
Springboot 3.0
Java 17
maven
Thymeleaf
Mac OS
application.properties
# server
server.port=8080
server.error.whitelabel.enabled=false
application.properties 파일에 상단에 이미지의 화이트라벨 페이지를 사용하지 않는다고 선언해주어야합니다.
false로 선언해줄게요.
에러 컨트롤러(ErrorHandling) 생성
기본적으로 Springboot는 모든 에러를 적절한 방식으로 처리하는 mapping을 제공하고 있어요.
그래서 에러 페이지를 관리할 컨트롤러를 생성해야합니다.
package com.example.demo.Controller;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class ErrorHandling implements ErrorController {
public String getErrorPath(){
return null;
}
@GetMapping("/error")
public String handleError(HttpServletRequest request){
Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
if(status !=null){
int statusCode = Integer.valueOf(status.toString());
if(statusCode != HttpStatus.NOT_FOUND.value()){
return "error/404";
}else if(statusCode != HttpStatus.INTERNAL_SERVER_ERROR.value()){
return "error/500";
}
}
return "error/normal";
}
}
- 원하는 이름으로 컨트롤러를 생성합니다. 저의 경우는 ErrorHandling!
- ErrorController 인터페이스를 상속(implements) 받습니다.
- @Controller 어노테이션을 붙여줍니다.
- getErrorPath () 메서드를 재정의하여 오류 발생시 호출 할 사용자 지정 경로(에러페이지)를 지정합니다.
server.error.path 속성(/error)을 사용하여 사용자 지정 경로(에러페이지)를 지정하도록 합니다.
getErrorPath () 메서드는 아직 ErrorController 인터페이스에서 완전히 제거되지 않았기 때문에, 재정의는 필수입니다.
그렇지만, 해당 코도는 무시가 될 것이므로
null을 반환하도록 합니다!!
- 저는 Thymeleaf를 사용하고 있으므로 아래 경로에서 error 페이지들을 관리해주고 있어요.
- 원하시는 경로에 설정하시면 됩니다.
- 저는 에러 페이지를 따로 구성하기보다는 만들어진 페이지를 이용했어요. (ex: https://freefrontend.com/500-error-page-html-templates/)
짜잔 결과물을 확인하실 수 있습니다.
감사합니다.
'Develop > SpringBoot' 카테고리의 다른 글
[SpringBoot] ResponseEntity로 Http 코드에 따라 응답데이터 반환하기 (1) | 2024.12.06 |
---|---|
[SpringBoot] getReader 오류 발생 (해결) (2) | 2024.12.02 |
[JSP] File Upload/Download 구현하기 (0) | 2023.05.23 |
[JavaScript] 프로그래머스 - 코딩테스트 준비(1) | 달리기 경주 (0) | 2023.05.03 |
[JavaScript] eval 이란 함수 (0) | 2023.05.02 |
Comments