티스토리 뷰
반응형
404, 500 등 에러가 발생했을 때 처리할 페이지를 만드는 방법을 알아보겠습니다.
web.xml에 URL 매핑
에러가 발생했을 때 어떤 URL로 redirect 할 것인지 web.xml에 작성할 수 있습니다. Servlet 버전 3.0 이상이어야 이용 가능한데, 요즘엔 걱정 안해도 될 것 같습니다. 혹시라도 그 아래 버전을 사용하고 있다면 다른 방법을 찾아보겠습니다.
아래처럼 error-page 태그 하위에 어떤 에러인지, 어디로 매핑할지를 작성할 수 있습니다.
<error-page>
<location>/errors</location>
</error-page>
위와 같이 작성하면 default로 사용할 에러 처리 URL을 만든 것입니다.
만약 404, 500을 따로 처리하고 싶다면 아래처럼 에러 종류와 함께 error-page 태그를 여러개 작성하면 됩니다.
<!-- Error -->
<error-page>
<error-code>404</error-code>
<location>/error/no-resource</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/server-error</location>
</error-page>
<error-page>
<location>/error</location>
</error-page>
404 에러가 발생하면, http://도메인/error/no-resource에 요청을 보내고,
500 에러가 발생하면, http://도메인/error/server-error로 요청을 보냅니다.
만약 그 외에 다른 에러면 http://도메인/error로 요청을 보냅니다.
Controller
@Controller
@RequestMapping(path = "/error")
public class ErrorController {
@GetMapping
public String defaultError() {
return "error/default";
}
@GetMapping("/no-resource")
public String noResource() {
return "error/noResource";
}
@GetMapping("/server-error")
public String serverError() {
return "error/serverError";
}
}
View
위에 작성한 ErrorController에서 내보내는 문자열에 따라 view resolver가 view를 사용자에게 내보내므로, 그에 맞게 html view 리소스를 작성하면 됩니다.
참고
반응형
'Server' 카테고리의 다른 글
Redis Stream 을 사용해보려 합니다. (0) | 2021.12.05 |
---|---|
Mysql 문자열 자르기와 나누기 함수 (4) | 2021.12.03 |
[Java] JSON String to Map (4) | 2021.12.02 |
[Java] Map의 확장 형태인 NavigableMap (0) | 2021.11.27 |
[Java] Lists 의 partition 메소드 사용법 (7) | 2021.11.25 |
[Java] JPA 사용시 Truncate 사용방법 (4) | 2021.11.25 |
댓글
공지사항