주니 개발 도서관

Spring

[ 에러 페이지 설정 ] @과 xml설정

주니홍 2022. 9. 28. 14:38

 

실무자입장에서는 크게어필이 안될수도 있다

 

 

에러페이지를 설정했을 때의 장점

 

예외페이지를 설정하여 사용자 편의성을 증가시킬수 있다
- 실제로 만날 수 있는 프로젝트 내용 (신입개발자 실무)

 

 

에러 처리

: 에러 자체가 발생되지 않게 선처리(유효성 검사)
  에러가 발생하더라도, 넘어갈수있게 (try-catch) 처리


vs


에러 페이지 설정

: 에러는 발생할수있다
  1) 에러발생시, 왜 발생했는지
  2) 어디로 가야하는지 안내
  ex) 웹툰 유료회차 url에 직접넣었을경우

 

 

 

에러페이지 설정방법 2가지

 

@ 설정 방법

- @을 앞으로 사용할 예정이라고 xml에 등록해야함
- 복잡함 ( @으로 사용하려면 예외처리클래스를 1개이상 만들어야 함 )
- @ControllerAdvice ( 포인트컷 처리와 비슷함 )
- @ExceptionHandler ( 어떠한 요청에 대한 처리를 할때 씀 = Handler  )

 

 

@ 설정이므로 DispatcherSevlet.xml에 작성해야한다

Namespaces의 mvc를 체크하여 등록해주고

@ 을 쓰기위해 등록해주는 모습이다

 

 

 

 

※ 어노테이션을 사용하기 위한 범위를 지정해 주어야하는데

기존 범위였던 com.kim.biz.controller에서 common패키지 안의 @을 읽을 수 있도록

범위를 biz까지 지정해 주었다

( Pointcut과 마찬가지로 common에서 관리하도록 한다 )

 

 

@ControllerAdvice ( 적용 범위 )

클래스를 객체화 해야 안의 메소드를 사용할 수 있는 것이기에

객체생성을 해주는 @ 이다. 인자로는 패키지 적용 범위를 설정한다


@ExceptionHandler ( 어떤에러인지 )

HandlerMapping의 ~~.do 요청을 반응한 것과 같이

NullPointerException의 요청에 반응하도록

어떠한 에러에 요청에 반응할 것인지 @의 input에 작성한다

 

에러내용 + 이동할 경로를 이용하기위해 ModelAndView 클래스 객체를 사용해준 모습이다

 


 

Xml 설정 방법

마찬가지로 DispatcherSevlet에 작성하며

 

1) Spring에서 제공하는 class를 객체화

 

2) exceptionMappings 주입 (Map 컬렉션)

 

Key 값 

어떠한 에러요청에 대해 반응 할 것인지

 

인바디 값

어떠한 페이지로 보낼 것인지

 


 

에러페이지 설정 중 @ 설정과  xml설정을 확인해 보았는데

 

@ 설정은 별도의 예외처리 클래스를 만들어야 하는 반면

xml 설정이 간편하게 사용할 수 있었고

 

실무에서도 xml 설정으로 에러페이지 설정하는 것이 좀더 많을 것으로 예상된다