api 요청이 실패할 경우에는 html 으로 실패값이 와서는 안된다. 일반 예외와 같이 boot는 BasicError 컨트롤러를 이용해서 api 실패 예외처리도 해준다. Request문서의 Accept가 application/json일 경우 (html이 아닐 경우 아래의 메소드로 작동한다.) 1. html 일경우 2. 그 외 @RequestMapping(produces = MediaType.TEXT_HTML_VALUE) public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) { HttpStatus status = getStatus(request); Map model = Collections .unmodi..
api 예외처리를 위해 간단히 api컨트롤러를 만들었다. package hello.exception.api; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController public class ApiExceptionController { @GetM..
어떠한 등록도 안한 경우 Spring boot에서는 기본적으로 /error를 호출하게 된다. 그 컨트롤러의 정체는 스프링 부트에서 제공하는 BasicErrorController이다. 스프링 부트는 이런 과정을 모두 기본으로 제공한다. ErrorPage 를 자동으로 등록한다. 이때 /error 라는 경로로 기본 오류 페이지를 설정한다. new ErrorPage("/error") , 상태코드와 예외를 설정하지 않으면 기본 오류 페이지로 사용된다. 서블릿 밖으로 예외가 발생하거나, response.sendError(...) 가 호출되면 모든 오류는 /error 를 호출하게 된다. BasicErrorController 라는 스프링 컨트롤러를 자동으로 등록한다. ErrorPage 에서 등록한 /error 를 매핑..
Interceptor에 오류페이지를 타지 않게 하는 방법은 간단하다. 다만 이 방법은 오류페이지에 대한 컨트롤러를 따로 사용 할 때에만 유용한 방법 같다 package hello.exception; import hello.exception.filter.LogFilter; import hello.exception.interceptor.LogInterceptor; import jakarta.servlet.DispatcherType; import jakarta.servlet.Filter; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; impor..
spring 을 사용할 때 에러가 난다면 아래와 같은 모양으로 호출이 된다. 1. WAS(여기까지 전파) 컨트롤러(/error- page/500) -> View 여기서 필터의 경우 2번이나 호출된다. 자원적으로는 낭비이며 굳이 요청할 필요가 없다. 혹은 에러페이지일 때만 요청하는 필터를 필요로 할 수도 있을 것이다. 먼저 로그 필터를 만들어 주었다. package hello.exception.filter; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.util.UUID; @Slf4j pub..
먼저 예제로 에러컨트롤러를 만든다. package hello.exception.servlet; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import java.io.IOException; @Slf4j @Controller public class ServletExController { @GetMapping("/error-ex") public void errorEx(){ throw new RuntimeExcep..
- Total
- Today
- Yesterday
- SpringBoot
- 로그인
- 스프링부트
- thymleaf
- JPA
- jpa api
- 백엔드 개발자 역량
- 향해플러스백엔드
- 항해99
- 스프링공부
- 백엔드 개발자 공부
- React
- exception
- 리터럴
- BindingResult
- 향해플러스
- 항해플러스
- 예외처리
- 향해99
- Intercepter
- 컨트
- rejectValue
- 인터셉터
- filter
- reject
- ArgumentResolver
- react실행
- HTTP
- Java
- hypertexttransferprotocol
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |