springboot - 映射HTTP Response Status Codes 到 静态 HTML页面

1、总览

 

 

2、代码

1)、pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

</dependencies>
View Code

2)、MyController.java

package com.ebc.controller;

import com.ebc.error.NotYetImplemented;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MyController {
    /**
     * response status code=500,导航到5xx.html
     */
    @RequestMapping("/")
    public void handleRequest() {
        throw new RuntimeException("test exception");
    }
    /**
     * response status code=501,导航到5xx.html
     */
    @RequestMapping("/app")
    public void handleAppInfoRequest() throws NotYetImplemented {
        throw new NotYetImplemented("The request page is not yet implemented");
    }

}

3)、ForbiddenException.java

package com.ebc.error;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@ResponseStatus(HttpStatus.FORBIDDEN)
public class ForbiddenException extends Exception {
    public ForbiddenException(String message) {
        super(message);
    }
}
View Code

4)、NotYetImplemented.java

package com.ebc.error;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@ResponseStatus(HttpStatus.NOT_IMPLEMENTED)
public class NotYetImplemented extends Exception {
    public NotYetImplemented(String message) {
        super(message);
    }
}
View Code

5)、5xx.html

<html>
<body>
<h1>My 5xx Error Page</h1>
<div id="locationDiv"></div>
<script>
    document.getElementById("locationDiv").innerHTML = "Location: " + window.location.href;
</script>
</body>
</html>

6)、404.html

<html>
<body>
<h1>My 404 Error Page</h1>
<div id="locationDiv"></div>
<script>
    document.getElementById("locationDiv").innerHTML = "Location: " + window.location.href;
</script></body>
</html>

3、执行

 

 

 

 

总结:

1、如果出现了非5xx、404返回码如403时,怎么办?使用error.jsp,并将其放在根下,如本例需放在static目录下。

2、5xx.html、404.html需放在error目录下。

 

posted @ 2019-11-16 20:22  遥远2  阅读(836)  评论(0编辑  收藏  举报