

Table of Contents
1. Overview
During web application development, Resource playing important roles so many times those resources may be moved to somewhere else or not available at the particular location at that time server will return default error page to the browser, handle those types of pages are too much important and display a proper message to the user. Spring boot provide easy was to custom error pages. Here is complete example of Spring boot custom error pages:
For example, if 404 want to override then inside resources public/error/
create 404.html
page, Name of page like STATUS_CODE.html
and remaining things will be handled by spring boot.
src/ +- main/ +- java/ | + <source code> +- resources/ +- public/ +- error/ | +- 404.html +- <other public assets>
2. Example

spring boot custom error page example
2.1 pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>spring-boot-example</groupId> <artifactId>spring-boot-custom-error-page-example</artifactId> <description>here is example of spring boot custom error page example</description> <version>1.0-SNAPSHOT</version> <!-- Inherit defaults from Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version> </parent> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!-- Package as an executable jar --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.2 404.html
<html> <head> <title>Spring boot custom error page example</title> </head> <body> <h1>This is Spring boot custom error page demo page - 404 status code</h1> </body> </html>
2.3 500.html
<html> <head> <title>Spring boot custom error page example</title> </head> <body> <h1>This is Spring boot custom error page demo page - 500 status code</h1> </body> </html>
2.4 ErrorPageController
package com.javadeveloperzone.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * Created by Lenovo on 19-07-2017. */ @RestController public class ErrorPageController { @RequestMapping("/demo") public String SpringBootHello() { int i=5/0; // it will throws exception ArithmeticException: / by zero return "demo"; } }
2.5 SpringBootConfig
package com.javadeveloperzone; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; /** * Created by JavaDeveloperZone on 19-07-2017. */ @SpringBootApplication @ComponentScan // Using a root package also allows the @ComponentScan annotation to be used without needing to specify a basePackage attribute public class SpringBootConfig { public static void main(String[] args) throws Exception { SpringApplication.run(SpringBootConfig.class, args); // it wil start application } }
2.6 Output:
http://localhost:8080/unknow.html
The application does not contain unknow.html
so spring boot application will return 400 error code and return 400.html to the browser.

spring boot custom error page example – 404
http://localhost:8080/demo
/demo will throws ArithmeticException
so spring boot will return 500(Internal Server Error) status code and display 500.html
page.

spring boot custom error page example – 404
3. References
4. Source Code
2 comments. Leave new
Very good article. It solved my issue. Thank you.
Welcome Gouri Shankar. JavaDeveloperZone is trying to make developer life easy.